Kettle取代sqoop,实现hbase2mysql,mysql2hbase(小试)

来源:互联网 发布:淘宝销售属性怎么添加 编辑:程序博客网 时间:2024/06/06 01:14

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!