NiFi๋
Apache NiFi๋ ์์คํ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ, ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง ํ๊ธฐ ์ํ ์ต์ ์ ์์คํ ์ด๋ค.
Dataflow๋ฅผ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๊ณ , ์์คํ ๊ฐ์ ๋ฐ์ดํฐ ์ด๋๊ณผ ๋ด์ฉ์ ๋ณผ ์ ์๋ UI๋ฅผ ์ ๊ณต
์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณต
๊ฐ๋ ฅํ ์์๊ณผ ๊ถํ ๊ด๋ฆฌ๋ฅผ ํตํด Multi-tenant(์ฌ๋ฌ ์กฐ์ง์ด ์์์ ๊ณต์ ํด ์ฌ์ฉ)๋ฅผ ์ง์
๋ฐ์ดํฐ๊ฐ ์ด๋ ์์คํ ์ผ๋ก๋ถํฐ ์๋์ง ์ถ์ ๊ฐ๋ฅ
์คํ ์์ค
์ฌ๋ฌ NiFi ์์คํ ๊ฐ ํต์ ์ ์ง์(site to site)
NiFi๋ ํ๋ก์ธ์๋ฅผ ์ด์ฉํด ์์ง, ๋ณํ, ์ ์ฅ์ ์ฌ๋ฌ ๋จ๊ณ์ ๊ฑธ์ณ์ ํ ์ ์๋ค.
์ฃผ์ ์ฉ์ด
NiFi | FBP | ์ค๋ช |
FlowFile | Information Packet | NiFi์์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฐ์ฒด๋ก, Key/Value ํํ์ ๋ฐ์ดํฐ ์์ฑ(Attribute)์ ๋ฐ์ดํฐ(Content)๋ฅผ ํฌํจํ ์ ์๋ค. 0๋ฐ์ดํธ ์ด์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉฐ, FlowFile์ ์ด์ฉํด ์ฌ๋ฌ ์์คํ ๊ฐ ๋ฐ์ดํฐ ์ด๋์ด ๊ฐ๋ฅํ๋ค |
FlowFile Processor | BlackBox | FlowFile์ ์ฌ๋ฌ ๋จ๊ณ์ ๊ฑธ์ณ ์์ฑ์ด ์ถ๊ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. |
Connection | Bounded Buffer | Processor ๊ฐ์ ์ฐ๊ฒฐ์ ๋งํ๋ฉฐ, NiFi์ Connection์ FlowFile์ ๋๊ธฐ์ด(queueing)๋ฟ ์๋๋ผ ๋ผ์ฐํ , ์ฒ๋ฆฌ๋ ์ ํ, ์ฐ์ ์์ ์ ์ด, ๋ชจ๋ํฐ๋ง ๋ฑ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณต |
Flow Controller | Scheduler | Processor๊ฐ ์ด๋ ๊ฐ๊ฒฉ ๋๋ ์์ ์ ์คํํ๋์ง ์ค์ผ์ค๋ง |
Process Group | subnet | ํน์ ์ ๋ฌด, ๊ธฐ๋ฅ ๋จ์๋ก ์ฌ๋ฌ Processor๋ฅผ ๋ฌถ์ ์ ์์ผ๋ฉฐ, Input๊ณผ Output ํฌํธ๋ฅผ ์ ๊ณตํด Process Group๊ฐ ๋ฐ์ดํฐ ์ด๋์ด ๊ฐ๋ฅ |
์ํคํ
์ฒ
Web Server
NiFi๋ UI๋ฅผ ์น ์๋น์ค๋ฅผ ํตํด ์ ๊ณตํ๋ฉฐ, ๊ฐ๋ฐ์ ํน์ ๊ด๋ฆฌ์๋ ์ด๋ฅผ ์ด์ฉํด Dataflow ๊ฐ๋ฐ, ์ ์ด, ๋ชจ๋ํฐ๋ง์ ํ๋ค.
Flow Controller
Processor๊ฐ ์ด๋ ๊ฐ๊ฒฉ ๋๋ ์์ ์ ์คํํ๋์ง ์ค์ผ์ค๋ง์ ๋ด๋นํ๋ค.
Extension
NiFI๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ณธ Processor๋ค ์ด์ธ์ ๊ฐ๋ฐ์๊ฐ Process๋ฅผ ๊ฐ๋ฐํด ํ์ฅํ ์ ์๋ค.
FlowFile Repository
Write-Ahead-Log๋ก FlowFile์ ์์ฑ๊ณผ ์ํ๊ฐ์ ์ ์ฅํ๋ ๊ณณ์ด๋ค. ์์คํ ์ฅ์ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์ง ์๋๋ก ํ๋ค.
Content Repository
FlowFile์ ๋ฐ์ดํฐ(Content)๊ฐ ์ ์ฅ๋๋ฉฐ, ์ฌ๋ฌ ๋๋ ํ ๋ฆฌ์ ๋ถ์ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค. ์ด ๋๋ฌธ์ ์ฉ๋์ด ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๋จ์ผ ๋์คํฌ์ ์ฒ๋ฆฌ๋๋ณด๋ค ๋ง์ ์์ ์ฒ๋ฆฌํ ์ ์๋ค.
Provenance Repository
๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ๋จ๊ณ๋ณ๋ก FlowFile ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ๊ณณ์ผ๋ก, ์ฌ๋ฌ ๋์คํฌ๋ฅผ ์ง์ํ๋ค. ์ด๋ ๊ฐ ๋ฐ์ดํฐ๋ ์ธ๋ฑ์ค ๋์ด ๊ฒ์ํ ์ ์๋ค.
FlowFile, Processor
FlowFile์ Processor์ ์ํด ์์ฑ๋๋ฉฐ, ์์ฑ ์ ๋ณด์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ค.
Cluster Coordinator
๊ฐ NiFi ์๋ฒ๋ค์ ์ ๋ณด(๊ฐ๋์ฌ๋ถ, ์ํ)๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, DataFlow์ ์ถ๊ฐ, ์์ , ์ญ์ ๋ฑ์ ๋ณ๊ฒฝ์ ํด๋ฌ์คํฐ์ ๋ฑ๋ก๋ NiFi ๋ ธ๋๋ค์ ๋ณต์ ํด์ค๋ค.
Primary Node
Primary Node๋ ์ฌ๋ฌ ๋ ธ๋์์ Processor๊ฐ ์คํ๋์ง ์๊ณ , ํน์ ๋จ์ผ ๋ ธ๋์์๋ง ์คํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ๋ํ ๋ ธ๋์ด๋ค.
ZooKeeper Server
์ด๋ฌํ ์ญํ ์ ZooKeeper Server์์ ์๋์ผ๋ก ์ ์ถ๋๋ฉฐ, NiFi 1.0๋ถํฐ Zero-Master Clustering์ด ์ ์ฉ๋์ฌ ํด๋ฌ์คํฐ ๋ด์ NiFi ๋ ธ๋๋ค ์ค ํ๋๊ฐ ์๋์ผ๋ก Cluster Coordinator์ Primary Node๊ฐ ๋๋ค.
Cluster์ ๊ฐ ๋ ธ๋๋ค์ ๊ฐ์ Dataflow๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ฐ ๋ ธ๋์์ ์ค๋ณต๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
๋ค์๊ณผ ๊ฐ์ด ํด๋ฌ์คํฐ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์ฒ๋ฆฌํ ์ ์๋ค. ๋ฐ์ดํฐ ์ค๋ณต ์กฐํ๋ฅผ ๋ง๊ธฐ ์ํด Primary Node์์ ListHDFS๋ฅผ ์คํํ๋ค.
ListHDFS๋ HDFS์ ํน์ ๋๋ ํ ๋ฆฌ ์์ ํ์ผ์ ์กฐํํ๋ฉฐ, ํ์ผ ๋ณ๋ก FlowFile์ ์์ฑํ๋ค. ์ด๋ ๊ฒ ์์ฑ๋ FlowFile์ RPG(Remote Process Group)์ ์ ๋ฌํด ๊ฐ ๋ ธ๋๋ก FlowFile์ ๋ถ์ฐํ์ฌ ์ ๋ฌํ๋ค. FetchHDFS Processor๋ฅผ ์ด์ฉํด HDFS ํ์ผ์ ์กฐํํ๋ค.
HDFS : Hadoop Distributed File System
ํ๋ก์ ๋ํ์ ์ธ ํ์ผ ์์คํ ์ผ๋ก ๋ฒ์ฉ ํ๋์จ์ด๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ์์ ์คํ๋๋ฉฐ, ๋ฐ์ดํฐ ์์ธ์ค ํจํด์ ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ์ง์ํด ๋งค์ฐ ํฐ ํ์ผ์ ์ ์ฅํ ์ ์๋๋ก ์ค๊ณ๋ ์์คํ ์ด๋ค.
์ฐธ๊ณ
Last updated