1. 程式人生 > >kettle 從資料庫表將資料寫入 hadoop hdfs

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 中還有很多其他功能的元件,使用時只需根據需求,配置不同功能元件即可