Kettle and Hadoop

本節使用的 Hadoop 平台為 Hortonworks Sandbox (HDP 2.3)

設定 Hadoop Congiguration File

因為在 Kettle 中,需對不同 Hadoop Distribution ,在Hadoop Congiguration 設定檔設定不同參數。 Hadoop Configuration 設定檔的位址如下:

path_to_your_pentaho/plugins/pentaho-big-data-plugin/plugin.properties

開啟此檔案後,因本節使用的 Hadoop 平台為 Hortonworks 所釋出,故修改 active.hadoop.configuration=hdp22,若是使用其他廠商的 Hadoop 平台,設定方案請參閱此處。設定結果如下圖所示。

alt text

From CSV Files to HDFS

本部分說明如何將 CSV 檔匯入 HDFS 中。在 Kettle 中,匯入 CSV 的功能是 Input 下的 CSV file input,而匯出到 HDFS 的功能是 Big Data 下的 Hadoop file Output。建立關係如下圖。

alt text

設定 CSV file input,在 Filename 選擇檔案路徑,並使用 Get Fields 檢查是否有成功。

設定 Hadoop file Output,首先設定 Cluster Name 與 HDFS 連線資訊,另可設定 JobTracker 與 ZooKeeper,若不需要設定可留白。設定範例如下圖。

alt text

新增 Cluster 後,點 Browse 可選擇在 HDFS 上的輸出 Folder。

alt text

設定完 CSV file inputHadoop File Output 後按執行即可進行轉換。轉換完後,可進入 HDFS 查看轉換後的資料,指令如下所示。路徑即前一段設定的輸出路徑。

hdfs dfs -ls/path_to_your_file

hdfs dfs -cat /path_to_your_file/file_name.txt

範例結果如下圖所示。

alt text

From HDFS to CSV Files

新增 Transformation , 並拖曳 Big Data 的 Hadoop File Input 與 Output 的 Text file output,並建立關係如下圖。

alt text

接著,設定 Hadoop File Input ,點選 Environment ,選擇 Cluster,若沒有則須先設定。在 File/Folder 選擇輸出檔案的路徑。設定範例如下圖。

alt text

設定 Text file outputfilename 設定輸出檔案路徑。 Extension 設定為 csv 可輸出為 CSV 檔。

alt text

此外,點選 ContentSeparator 可設定資料分隔方式。

alt text

最後執行此轉換作業,就可將HDFS 內的資料匯出為 CSV。