Kettle数据同步导出链接hive2几种方法
Kettle
A. 优缺点
kettle的优点:
1.可视化界面。一个可视化界面足以成为选择kettle的首要原因。毕竟,可视化意味着更方便人的使用。
2.元数据库。元 数据库 用来保存kettle任务的元信息,方便管理任务,通常叫做资源库( repository )。
3.自带工作流并且支持增量抽取。
4.可以配置成一套逻辑。例如:抽取数据时,目标表不存在则插入,存在则更新,而目标表中存在并且数据源中不存在的,可以删除,just like this
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ieNxyjQ5-1583820308952)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200304110421377.png)]
痛点:
然而,事情并不像我们想象的那么美好,在kettle的实际的使用过程中,我们渐渐发现了一些kettle的槽点:
1.全量抽取较大数据量时,抽取时间长。
2.往hdfs导数据出现漏导的情况,造成数据不一致。
3.无法感知namenode的切换,当Hadoop集群重启时,一旦namenode发生切换,就可能造成kettle任务的失败,因为kettle的hdfs地址是在配置文件中配置的。
4.kettle往Greenplum中导数据,速度非常慢(40条每秒)。
当然,kettle提供了另一种方式:gploader方式来向GP中导数据,应该可以解决往GP导数据慢的问题(不过我们并没有尝试过这种方式,因为已经遇到了datax了)
自从我们开始搭建以Greenplum为核心的数据仓库之后,寻找一种高效的ETL工具来代替kettle,已经成为了一种共识
B. mysql导出数据至hive2
Ø 表输入——>表输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2jmZ9GKw-1583820308953)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200304110448210.png)]
连接hive:
https://www.jianshu.com/p/ec45c21a977f
修改plugin.properties 文件:KETTLE_HOME/plugins/pentaho-big-data-plugin/ plugin.properties修改
active.hadoop.configuration=hdp30
下载对应的hive jar包:从服务器下载hive jar文件到之前的hdp30/lib文件夹下,主要hive-开头的
传输速度慢解决办法(试了,没有效果):
提高传输速度输入输出数据库网络传输参数配置:
1、数据库操作:
因为是大批量数据迁移,主要影响抽取速度的是表输出,因此目标数据库要重新启动下,保证目标数据库性能最好,暂时没有其它进程写入数据。
2、表输入jdbc连接操作:
(1)jdbc连接地址配置参数:
?autoReconnect=true&failOverReadOnly=false&connectTimeout=0&socketTimeout=0&allowMultiQueries=true&maxReconnects=100&zeroDateTimeBehavior=convertToNull
(2)增加读速度配置参数:
defaultFetchSize:10000
useServerPrepStmts:true
useCursorFetch:true
cachePrepStmts:true
3、表输出jdbc连接操作:
(1)jdbc连接地址配置参数:
?autoReconnect=true&failOverReadOnly=false&connectTimeout=0&socketTimeout=0&allowMultiQueries=true&maxReconnects=100&zeroDateTimeBehavior=convertToNull
(2)增加批量写速度配置:
defaultFetchSize:5000
rewriteBatchedStatements:true
useServerPrepStmts:false
useCursorFetch:true
useCompression:true
Ø Mysql——>hdfs文件——>hive
配置步骤:
https://ask.hellobi.com/blog/hql15/7286 https://www.jianshu.com/p/60d9a8ddc7b8
- 设置Hadoop file output组件:
新建cluster——配置节点——点击测试——hadoop file connection连接成功即可,verify user home permissions需要添加hdfs访问权限:进入C:\Windows\System32\drivers\etc修改hosts配置dns解析:在hosts文件最后添加hdfs节点即可。
(Cluster Name 自定义集群名字;Hdfs Hostname为集群active Namenode ip,端口默认为8020;JobTracker为集群运用resource manager 权限的节点ip,端口默认为8032;ZooKeeper Hostname为对应节点ip,默认端口为2181;Oozie可不填。)
配置导入到hdfs中文件路径及名称:/user/hdfs/hdpfileoutput.txt
导入规则设置:编码格式及导入格式分别如图设置,减少因为文件导入hive特殊符号报错
最后获取字段:
\2. 设置SQL执行脚本组件:load data inpath ‘/user/hdfs/hdpfileoutput.txt’ into table hist.maoyan_boxoffice;
更多推荐



所有评论(0)