Kettle取代sqoop,實現hbase2mysql,mysql2hbase(小試)
Kettle實現hbase和mysql的資料相互轉換
背景:由於之前傳統的資料庫資料採集及整合到hbase,都在用sqoop(1.46),但是發現比較麻煩,雖然指令碼很簡單,但是還是比較繁瑣,且發現各種bug,問題很多,就想採用kettle來做,本文件主要是對kettle可行性的調研
本文采用kettle最新版本:7.1 (傻瓜式安裝)
cdh版本為5.11.0
操作流程:
由於最新版本的外掛kettle7.1只能支援cdh5.10,所以我們要更改kettle的shim外掛,主要操作就是替換jar包,如圖:
首先hadoop的jar包:
把client目錄的hadoop字尾是cdh5.10的jar包全換掉,換成5.11的包,如下圖,其它jar包不用管:
接下來換hbase的jar,同理,在pmr目錄下吧字尾為cdh5.10全換掉,如圖:
由於我只用到了hbase,所以只替換了hadoop和hbase的jar,如果有用到hive或其它元件,直接像上面方法一樣,直接替換jar就可以
接下來,我們要替換hadoop和hbase的xml配置檔案,直接把cdh叢集的配置檔案拽過來就可以了,如圖:
路徑如圖,直接替換掉就可以。
接下來修改config.properties,新增最下面一行,如圖:
最後由於我們要連mysql,所以要引入hive驅動包:
路徑:
jar包:
到這裡,kettle基本配置完成。
測試:(mysql2hbase hbase2mysql)
./spoon.sh ,啟動kettle client,我們測試mysql2hbase,這裡指演示mysql2hbase,hbase2mysql同理,結構如圖:
表輸入配置如圖:
,能測試通過就ok,報錯了就看一下驅動連線活著賬號密碼什麼的,這裡不做贅述。
輸入總體配置如圖:
test表示建的測試表,兩個欄位,id,name
到這裡mysql輸入配置完畢。
接著hbaseoutput,配置hadoop連線,如圖:
只連hbase只配這兩項就可以.
連通後直接配欄位對映就可以了,配置完成,直接run,Success!