天天看點

Kettle 添加對應hadoop版本的支援

在hdp的官網上有一個etl工具叫做talend open studio,然後我就下了,并且在群裡詢問了一下,突然間冒出來一群etl高手,經高人指點認識了一款叫做kettle的軟體,經過這兩天的試用,從直覺感受上,kettle更容易使用和上手,資料更多,界面更友好。。。 優點很多,這裡不一一列舉了,關鍵是它對hadoop的支援我覺得是很全面的。

但是這裡面有一個問題出現了,它不支援我現在用的版本,我用的是hortonworks的hdp1.3,好吧,經過不懈的努力,終于被我搜尋到了,哈哈,原來它可以支援的,并且官方已經提供了相應的包提供使用,隻是不太好找罷了!下面把更新的過程和大家分享一下。

先提供文中所需内容的下載下傳位址:

1.插件更新包

<a href="https://support.pentaho.com/entries/24445558-big-data-plugin-version-1-3-3-for-pentaho-ba-server-4-8-1-x-and-pdi-4-4-1-x">https://support.pentaho.com/entries/24445558-big-data-plugin-version-1-3-3-for-pentaho-ba-server-4-8-1-x-and-pdi-4-4-1-x</a>

2.hdp1.3的支援包

<a href="https://pentaho.app.box.com/s/0wqy2qty3szv7j3qt2za">https://pentaho.app.box.com/s/0wqy2qty3szv7j3qt2za</a>

我使用的是4.4版本的kettle,大資料插件更新到了1.3.3.1了,是以要更新一下。

1.删除plugins下的pentaho-big-data-plugin

2.删除libext/jdbc/pentaho-hadoop-hive-jdbc-shim-1.3.0.jar

3.把pentaho-big-data-shimtastic-1.3.3.1.zip解壓到plugins目錄下,可以删掉pentaho-big-data-plugin\hadoop-configurations 中不要的版本

4. 複制pentaho-hadoop-hive-jdbc-shim-1.3.3.jar 到libext/jdbc下

5.解壓pentaho-instaview-templates-shimtastic-1.3.3.zip 到這個目錄下,實際上沒有這個目錄,自己建立一下吧

plugins/spoon/agile-bi/platform/pentaho-solutions/system/instaview/templates/big data

更新完插件之後,我們要添加hdp1.3的支援,使用cdh4的童鞋比較幸福,不需要下載下傳這個包,因為插件預設就帶有cdh42的版本,支援最新的4.2-4.3

1.解壓pentaho-hadoop-shims-hdp13-package-1.3.4.zip放到 plugins\pentaho-big-data-plugin\hadoop-configurations下面

2.編輯plugins/pentaho-big-data-plugin/plugin.properties檔案,設定active.hadoop.configuration為該目錄的名稱

初始值是active.hadoop.configuration=hadoop-20,我的目錄名稱為hdp13,是以修改為active.hadoop.configuratio=hdp13

經過測試,目前hadoop copy files和oozie job executor能正常使用,hadoop job executor不能使用,并且隻支援舊的mapred的api,不支援最新的mapreduce的api,它自帶的demo也運作不起來,報錯了。

詳細報錯如下:

這個問題可能是運作舊的mapred的api導緻的,kettle自身的大資料插件上本身就支援hadoop-0.20版本以及chd4(也是基于0.20版本的),可能是為了相容的問題,運作hdp的程式的時候也是使用的舊的api,然後就引發了這個錯誤,這個錯誤也是報得莫名其妙,源碼裡面裡面都沒有使用壓縮,我的叢集本身也是配置了lzo的,例子運作的時候都能看到加載lzo的類庫成功的提示資訊。。。 我在hadoop裡面運作新版的wordcount例子也是沒問題,但是在kettle上就不行,看來隻能走改源碼的方法了,正好oozie的插件也有不盡如人意的地方,順便把oozie的插件也修改一下,加上重新啟動流程的功能。

不過比較安慰的是hadoop copy files和oozie job executor都可以用,mapreduce我可以配置到oozie裡面執行,不要它那個破玩意兒了,太讓人鬧心了。

如果有用cdh4的童鞋,幫忙試一下你們的能不能用,如果有知道怎麼解決這個問題的更好,感激涕零!

最後發一下原始的位址,e文好的童鞋可以自己去看看,找到适合自己的版本!

<a href="http://wiki.pentaho.com/display/bad/4.4+configuring+pentaho+for+your+hadoop+distro+and+version">http://wiki.pentaho.com/display/bad/4.4+configuring+pentaho+for+your+hadoop+distro+and+version</a>