kettle 從資料庫表將資料寫入 hadoop hdfs
kettle 作為一個 java 的開源 ETL 工具,支援的接入源與輸出源很豐富,
下面測試簡單的 資料庫 table -> table -> hdfs 檔案的寫入。
簡介:kettle 主目錄分為作業和轉換
轉換: 用來配置ETL 鏈路資訊,及工作方式。
作業: 用來啟動和控制轉換工作。
1. 安裝環境
kettle 依賴於 java 環境,請安裝好 Java ,並設定好 jdk 環境變數
2. 安裝 kettle
下載地址:http://community.pentaho.com/projects/data-integration/
下載速度有點慢,有條件者可以使用 vpn
下載完成,解壓,雙擊 Spoon.bat 開啟kettle
3. 雙擊轉換新建一個轉換任務。
4. 源端選擇 開啟輸入-> 表輸入,將表輸入拖到右邊工作臺上
5. 雙擊表輸入,輸入源端資料庫基本資訊
此時可以看出提示驅動找不到,下載 mysql 驅動包,放入 lib 目錄下,重啟 kettle
6. 測試資料庫連線成功
7. 輸入源端資料查詢語句,配置完成
8. 點選 輸出 -> 插入/更新 ,拖放到右端工作臺上,並與目標端連線
用滑鼠中建連線源端與目標端,或者選中源端,按 shift 將源端指向目標端
9. 雙擊輸入目標端資料庫資訊
9. 配置裝載規則,點選確認,資料庫裝載配置完成
10. 點選 big data -> Hadoop File output,將此拖放到右邊工作臺,並連線
11. 雙擊 hadoop file output,新增 hadoop 叢集配置
輸入叢集資訊,點選測試
12. 此時會彈出 hadoop 版本的基本資訊,記下此資訊,之後會用到
13. 此時可能你會遇到錯誤
The Active Shim has not been set.
14. 開啟plugins\pentaho-big-data-plugin\plugin.properties 檔案
修改 active.hadoop.configuration 為 active.hadoop.configuration=cdh58
紅字部分,就是我們上面記錄的版本資訊,儲存現有配置,重啟kettle
15. 此時再次測試 hadoop 配置,發現大多數都已通過,但是有一個警告
The Hadoop File System URL does not match the URL in the shims core-site.xml.
16. 複製叢集中的 core-site.xml,
將該 xml 檔案複製到 plugins\pentaho-big-data-plugin\hadoop-configurations\cdh58,
替換原有 core-site.xml
重啟 kettle ,此時發現警告依舊。
17. 不用擔心,現在警告的原因是因為 配置的 url 與 xml 配置檔案裡面的 url 不一樣,
xml 裡面用的 hostname 連線的,而我們配置的時候用的 ip,
將 ip 改為 hostname ,測試通過
注意,用 hostname 時,本地需要 新增 hosts 配置。
18. 配置 hdfs 路徑資訊
19. 輸入輸出檔名,點選確定,配置完成
20. 點選檔案->新建->作業,配置 start,和轉換
21. start 基本不需要配置,雙擊轉換
選擇我們之前儲存的轉換檔案,點選確定,配置完成
22. 點選 run ,啟動 job
23. 執行成功
2.4 檢視寫入情況
至此,配置成功
kettle 中還有很多其他功能的元件,使用時只需根據需求,配置不同功能元件即可