大数据:通过Kettle把传统数据库数据导入到Hive中

自从使用了Kettle工具之后,越来越发现她的强大,上篇文章主要介绍通过Kettle工具在传统数据库之间迁移数据,但很多业务场景是需要放到大数据上去的,如何通过Kettle工具把传统数据库中数据导入到Hive中,这是本文要详细讲解的。

一、准备

系统版本
本地操作系统Windows 10 pro
ETL工具Kettle 7.0.0
数据库SQL Server 2008 R2
HiveHive 2.3.4
  1. 配置Kettle
    1.1 ${KETTLE_HOME}\data-integration\plugins\pentaho-big-data-plugin目录下的plugin.properties文件,Kettle支持的hadoop版本可以在同目录hadoop-configurations下查看到,主要有cdh、emr、hdp、mapr,由于之前搭建的hadoop是apache hadoop 2版本所有配置为hdp25。
    在这里插入图片描述
  2. 配置Hadoop权限
    Hadoop使用代理机制, 在hadoop的core-site.xml中添加如下代码,意思是允许任意主机(第一个*)的任意组((第二个*))的用户使用root这个帐号来访问集群。
    在这里插入图片描述
  3. 启动hiveserver2服务
    hiveserver2是hive提供给外部访问的接口,可以使客户端执行Hive查询的服务,本地可以先验证一下:
    3.1 先启动一个hiveserver2服务,可以通过hiveserver2或者hive --service hiveserver2命令启动。(如果启动失败,检查下系统之前是不是有在运行的hiveserver2进程)
    3.2 复制一个回话,进入${HIVE_HOME}下执行./bin/beeline -u jdbc:hive2://193.168.9.79:10000 命令(如果系统安装过spark的话,一定要到HIVE_HOME目录下执行./bin/beeline,因为SPARK_HOME的bin目录下也有个beeline程序),启动之后会遇到Pemission denied的问题,主要是在分布式文件目录/tmp没有权限访问,可以通过增加权限解决。bin/hdfs dfs -chmod -R 777 /tmp/
    在这里插入图片描述
    解决完这个问题之后,beeline可以正常启动,同时控制台没有错误,另外可以通过http://hiveip:10002访问:
    在这里插入图片描述
    在这里插入图片描述
  4. 拷贝文件到Kettle目录${KETTLE_HOME}\data-integration\plugins\pentaho-big-data-plugin
    4.1 KaTeX parse error: Expected 'EOF', got '\etc' at position 14: {HADOOP_HOME}\̲e̲t̲c̲\hadoop目录下的:cor…{KETTLE_HOME}\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp25
    4.2 KaTeX parse error: Expected 'EOF', got '\jdbc' at position 16: {HIVE_HOME}目录下:\̲j̲d̲b̲c̲\hive-jdbc-x.x.…{KETTLE_HOME}\data-integration/lib/;
    hive-site.xml放置到${KETTLE_HOME}\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp25
    KaTeX parse error: Expected 'EOF', got '\lib' at position 12: {HIVE_HOME}\̲l̲i̲b̲目录下以hive开头的jar文…{KETTLE_HOME}\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp25\lib目录下。
    文件拷贝完成之后,重启Kettle。
  5. Kettle配置Hadoop Hive 2数据库
    在这里插入图片描述

问题
1.通过Kettle无法创建数据表,在hiveserver2方式也不行,提示/user/hive/warehouse权限不够。
解决办法:hdfs dfs -chmod -R 777 /user/hive修改目录的权限
在这里插入图片描述
2.创建带中文字符的表或字段的时候提示莫名奇妙的错误。
解决方案:在中文字段前加 ` 字符。
在这里插入图片描述
在这里插入图片描述
补充:mysql中文字符写入不进去的问题及解决方案

参考文献
1.Pentaho Kettle 连接 Hive2 进行 ETL 的总结
2.Kettle连接HiveServer2配置和常见问题解决

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故郷の雲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值