NiFi是一個易於使用、功能強大、操作便利的數據處理data flow系統。
使用戶可以不用寫很多代碼即可操作各種數據流。
目前關於NiFi的文檔較少,只能一點點看源碼,先把源碼做一個大概的整理,之後再深入研究。
nifi源碼
nifi-api:
nifi的API接口
nifi-bootstrap:
NiFi的啓動、命令處理與監聽
nifi-commons:工具包
data-provenance:
數據源:字段屬性信息查詢
expression-language:
表達式定義、解析
flowfile-packager:
文件流打包格式
hadoop-util:
用戶驗證
query-language:
查詢語言定義
logging-util:
日誌工具,格式,繼承自Logger
processor-utilities:
數據處理器相關的定義與實現:Bin原型與各類監聽(信息分發,事件監聽,處理通道與回覆監聽等)
nifi-properties:
NiFi的常量定義與字符串處理常量函數
nifi-schema-util:
字段類型與記錄類型定義
security-util:
安全方面,證書、密鑰、SSL等
site-to-site-client:
NiFi實例之間傳遞數據的協議
socket-utils:
socket隊列與消費者實現
utils:
異常、文件流、併發等用到的工具類
web-utils:
Web界面用到的工具函數
write-ahead-log:
序列化與反序列化,寫前日誌
nifi-docs:
文檔
nifi-external:
example-bundle:
bundle樣例,自定義數據處理器
spark-receiver:
從NiFi拉取數據包,作爲spark輸入
storm-spout:
NiFi可作爲Storm的spout,爲Storm輸入數據,也可將Storm的數據送入NiFi Bolt處理
nifi-framework-api:
NiFi框架的API
nifi-maven-archetypes:
自定義processor與Service應遵循的maven項目結構
nifi-mock:
貌似單元測試,沒看懂
nifi-nar-bundles: 引用的nar包
elasticsearch-bundle:
elasticsearch數據處理,elasticsearch作爲數據輸入和輸出均可
email-bundle:
郵件數據處理
enrich-bundle:
DNS和Whois數據處理
evtx-bundle:
Windows Event Log文件數據(evtx)處理
flume-bundle:
Flume作爲數據源的數據處理器
framework-bundle:
administration:管理員用戶驗證
authorizer:用戶驗證
client-dto:客戶端組件信息相關
doucumentation:文檔生成
file-authorizer:文件所有者驗證
framework-authorization:數據訪問權限,nifi用戶驗證工具類等
framework-cluster:集羣的協作、事件、管理等實現
framework-cluster-protocol:集羣所使用協議的實現
framework-core:框架核心內容:集羣,組間連接,控制器,處理器,持久化等實現
framework-core-api:框架API
nar-utils:引入nar包的工具類
properties-loader:屬性載入工具
resources:資源引入的腳本
runtime:nifi運行時類,有工具類LimitingInputStream,監聽類BootstrapListener,NiFi類和NiFiServer類
security:安全方面,SSL
site-to-site:site-to-site的異常和協議等的實現
user-actions:用戶行爲改變的信息
nifi-web:
custom-ui-utilities:httpServlet上下文
jetty:jetty服務器
ui-extension:UI擴展
web-api:界面API,Spring,DAO及控制器,過濾器的實現
web-content-access:內容下載的接口
web-content-viewer:界面內容視圖控制器實現,及CSS,JS
web-docs:文檔獲取控制器實現,及CSS,JS
web-error:界面相關錯誤類型實現,及CSS,JS
web-optimistic-locking:樂觀鎖
web-security:安全驗證相關
web-ui:界面定義相關,views,js,CSS等
hadoop-bundle:
與HDFS中數據交互的實現
hadoop-libraries-bundle:
hbase-bundle:
與Hbase中數據交互的實現
hive-bundle:
與Hive中數據交互的實現,包含連接池
hl7-bundle:
與Health Lvevel 7(HL7) 中數據交互
html-bundle:
HTML數據的提取與寫入
ignite-bundle:
Ignite Cache數據處理
jetty-bundle:
jms-bundle:
jms-cf-service:jms(Java消息隊列)連接池
jms-cf-processors:JMS數據處理
kafka-bundle:
kafka0.8,0.9,1.0版本的數據處理
keberos-iaa-providers-bundle:
keberos用戶加密
kite-bundle:
壓縮數據的處理
language-translation-bundle:
語言轉換
ldap-iaa-providers-bundle:
登錄驗證
lumberjack-bundle:
lumberjack數據處理
media-bundle:
圖片數據處理
mongodb-bundle:
mogodb數據處理
mqtt-bundle:
MQ消息隊列數據處理
provenance-repository-bundle:
數據源持久化
ranger-bundle:
ranger插件
riemann-bundle:
Riemann交互
scripting-bundle:
Groovy,Javascript,Jython等腳本的配置運行
site-to-site-reporting-bundle:
site-to-site協議
slack-bundle:
使用Slack發送消息
snmp-bundle:
SNMP代理數據處理
social-media-bundle:
Twitter數據處理
solr-bundle:
Solr數據處理
splunk-bundle:
Splunk交互
spring-bundle:
Spring配置數據處理
standard-bundle:
jolt轉json
standard-service:
dbcp-service-api:dbcp連接池
dbcp-service-bundle:
distributed-cache-client-service-api:分佈式緩存與序列化
distributed-cache-client-services-bundle:NiFi的分佈式緩存服務涉及到的協議,服務器,服務實現等
hbase-client-service-api:與HBase交互的服務
hbase_1_1_2-client-service-bundle:HBaseClientService for HBase 1.1.2.的具體實現
http-context-map-api:
組件間請求交互接口
http-context-map-bundle:組件間請求交互實現
load-distribution-service-api:分佈式服務接口
ssl-context-bundle:標準SSL上下文服務
ssl-context-service-api:SSL上下文服務接口
update-attibute-bundle:
update-attribute-model:XML註解定義
update-attribute-processor:更新文件流屬性
update-attribute-ui:屬性更新界面
websocket-bundle:
websocket-processors:WebSocket數據交互處理
websocket-services-api:websocket服務接口
websocket-services-jetty:WebSocketClientService與Server、session的具體實現
windows-event-log-bundle:
Windows-event-log數據處理
nifi-tookit:
toolkit-assembly:
編譯打包
toolkit-encrypt-config:
加密
toolkit-s2s:
數據包序列化與反序列化
toolkit-tls:
命令行,TLS配置文件等工具類
toolkit-zookeeper-migrator:
從zookeeper導入導出數據