1 引言:
項目最近要引入大資料技術,使用其處理加工日上網話單資料,需要kettle把源系統的文本資料load到hadoop環境中
2 準備工作:
1 首先
要了解支援hadoop的Kettle版本情況,由于kettle資料網上較少,是以最好去官網找,官網的url:
http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version
打開這個url 到頁面最下面的底端,如下圖:
archive 下面的from PDI 4.3 、 from PDI 4.4 、 from PDI 5.0 即表示支援hadoop的pdi 版本。pdi即pentaho data integration 又稱kettle。PDI 4.3 、 PDI 4.4 、 PDI 5.0 即是kettle 4.3 、4.4、 5.0 ,這個版本号 包括比其更高的版本(即kettle 5.0.X ,5.1,5.2也支援hadoop)。
2 其次
不同的kettle版本支援的hadoop版本不一樣,以5.1為例子,下面的連結是5.1的支援情況
http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version
下圖為連結打開的頁面的中間部分:
determine the proper shim for hadoop Distro and version 大概意思是 為hadoop版本選擇合适的套件。表格上面的一行:apache、cloudera、hortonworks、intel、mapr指的是發行方。點選他們來選擇你 想連接配接的hadoop的發行方 。上圖 以apache hadoop為例:
Version 指版hadoop版本号 ,shim 指kettle提供給該hadoop套件的名稱,Download 裡面的 included in 5.0,5.1 指kettle的5.0、5.1版本安裝包裡面已經有内置的插件,一句話來講 就是kettle5.1及5.0版本已有插件提供支援apache hadoop版本0.20.x 。不需要額外下載下傳。NS 是不支援的意思 圖檔下面也有解釋。
上圖說明的是對 cloudera的 hadoop支援的情況 ,Download 裡面 download的藍色字型超連結的說明 是要除了下kettle的安裝包外另外下載下傳的 ,帶 included in 5.0,5.1 說明 kettle 5.0,5.1版本的本身就支援(内置有插件)。
由上面兩圖得到的結論是 kettle 5.1 支援 apache hadoop 0.20.x版本 及cloudera hadoop CDH4.0 到CDH5。
3 試驗運作:
1 首先配置工作
目前我用的hadoop 版本是hadoop-2.2.0-cdh5.0 是以用kettle 5.1 且其内置有hadoop插件。去kettle官網下載下傳:
解壓之後 就是:
下載下傳好之後,現在就需要做配置的工作了,配置的工作在kettle安裝檔案裡面做:
配置辦法參考:http://wiki.pentaho.com/display/BAD/Hadoop
進頁面之後 先點選collapse 收縮所有的菜單樹 如上圖。 Configuring Pentaho for your Hadoop Distro and Version 意思是為hadoop 版本做配置 點選進去:頁面的上面 就是上面說過的kettle對hadoop的支援情況。
我們到頁面的中間部分去,如下圖:
1 意思是 你想要連接配接的hadoop發行版 已經被kettle支援了,但是沒有内置插件,需要下載下傳,這種情況最好 看下:Install Hadoop Distribution Shim
2 意思是你想連接配接的hadoop發行版 還有沒有被kettle支援,可以自己填寫相應的資訊 要求pentaho 開發一個。
還有1種情況 就是上面說的hadoop發行版 已經被kettle支援了 且有内置的插件。
3 就是配置了。
3.1 stop application 就是如果kettle在運作 先停掉他。
3.2 打開安裝檔案夾 我們這邊是kettle 是以就是spoon那個的檔案路徑:
3.3 編輯 plugin.properties檔案
3.4 改一個配置值 下圖畫圈的地方
改成 對應你hadoop的shim值 (上圖的表格裡面的shim) 我這邊是cdh50:
改之後儲存:
至此 配置工作做完。
2 然後開發腳本工作
下面開始開發腳本 官方參考:http://wiki.pentaho.com/display/BAD/Loading+Data+into+HDFS
打開 kettle 運作spoon.bat
:
建立一個kjb檔案 拖一個開始圖元
再拖一個
hadoop copy files即是 load資料到 hdfs裡面。
copy files裡面的配置:
意思是目前kjb腳本所在路徑 在我這邊檔案夾是:
目标檔案 是 hdfs://ip:hdfs端口/路徑
填之前可以點選
browse 按鈕 測試
如下圖 :填好server 和port後 點選connect 如果沒有報錯 出現紅框裡面的hdfs://......... 就說明連接配接成功了(如下圖)。
注意隻要連接配接成功,說明kettle對hadoop的配置就沒有問題。
可以運作腳本試試了:
如上圖,腳本運作成功。
在hadoop home bin下面檢視:
檔案成功load.
至此,kettle load文本資料到hdfs成功!
4 備注:
所有的步驟都可以參考官網:
http://wiki.pentaho.com/display/BAD/Hadoop
上圖 1 是配置 2 是加載資料到hadoop 叢集 3 是加載資料到hdfs 還有其他到 hive 到hbase等。
ps:寫一段長的部落格真累,感覺比幹活還累