1. 程式人生 > >Kettle取代sqoop,實現hbase2mysql,mysql2hbase(小試)

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!