2015年10月2日 星期五

筆記Apache NiFi(二) - 範例自動Twitter Streaming API與存檔


基本兩個Processor範例Twitter Streaming API接到資料後將json儲存在本機硬碟裡。


1. 至Application Management申請Twitter APP
a. Application Management
https://apps.twitter.com
b. Create New APP
c. 鍵入資料

d. 至App頁面的Keys and Access Tokens分頁

e. Create my access token
f. 取得所需之Consumer KeyConsumer SecretAccess TokenAccess Token Secret


2. 開啟NiFi Web UI
http://localhost:8080/nifi/

3. 建立資料輸入Processor
a. 拉出一個Processor

b. 選擇GetTwitter

c. 右鍵點選Configure

d. 設定資料
i. 輸入tokenkey
ii. 選擇twitter filter的參數,範例為選擇Filter,其他Streaming API用法請參考 https://dev.twitter.com/streaming/overview
iii. Terms to Filter On 空格代表AND ,』代表OR ex. he was, boy』則為『(he AND was) OR boy
iv. Scheduling分頁可選擇TimerCRON方式,如不選擇預設為TimerRun schedule0代表一個task完成後不等待直接下一個taskRun duration為執行完成後會延遲的時間,0代表只會執行一次且不延遲。



4. 建立資料輸出Processor
a. 拉出一個Processor
b. 選擇PutFile

c. 右鍵點選Configure

d. 設定資料
i. Directory範例設為/data/tweets/

e. 選擇為失敗或成功都接收


5. 建立輸入與輸出連結

6. 啟動Processor

7. 檢查資料



筆記Apache NiFi(一) - NiFi架設


Apache NiFi根據官方說法是一個功能強大、操作便利的資料數據處理data flow系統,內含一個Web UI介面建立data flow的Processor與Scheduling。目前為0.3.0版本,尚處於成長階段,故未有使用者登入、管理功能。不過經Johnny測試後的確不用再寫許多程式碼便可操作許多資料流。以下介紹如何架設一個Nifi系統。


*準備好一台Linux,範例建立在CentOS 6上。


1. 下載nifi Binaries (root)
a. 官網下載nifi-0.3.0-bin.tar.gz https://nifi.apache.org/download.html
b. 解壓縮
tar -xvzf nifi-0.3.0-bin.tar.gz 

2. 移至nifi-0.3.0/bin資料夾 (root)
cd nifi-0.3.0/bin

3. 啟動NiFi
./nifi.sh start

4. 關閉NiFi
./nifi.sh stop

5. 檢查NiFi狀態
./nifi.sh status

6. 或者Installing as a Service
a. Install
./nifi.sh install dataflow
b. Start
sudo service nifi start
c. Stop
sudo service nifi stop
d. Status
sudo service nifi status

NiFi Web UI
http://localhost:8080/nifi/