利用kettle实现hive数据直接导入到mysql

一直想利用kettle工具实现直接连接hive和mysql操作数据,在踩过很多坑后终于实现,故记录分享。
软件环境:
Hadoop-2.7.1(单机)、apache-hive-2.3.5-bin、MySQL-5.6.1、pdi-ce-7.1.0.0-12(kettle)

一、首先需要配置hiveserver2并开启hive2客户端,kettle才能连接到hive。

①、配置hive-site.xml文件,在hive-site.xml中添加一下内容

hive.cli.print.header true hive.server2.thrift.port 10000 hive.server2.thrift.bind.host 192.168.133.135

②、启动Hadoop,通过jps查看进程
利用kettle实现hive数据直接导入到mysql_第1张图片
③、开启hiveserver2,输入命令hiveserver2 或者 hive --service hiveserver2(开启hive的命令是:hive)

hiveserver2 或者 hive --service hiveserver2

如果出现以下xshell内容,别慌张,正常现象,因为启动了一个服务
在这里插入图片描述
jps查看进程,发现多了RunJar,即为hiveserver2服务
利用kettle实现hive数据直接导入到mysql_第2张图片
④、重开一个xshell窗口,输入:beeline(Hive新的命令行客户端工具, 替代HiveCLI
),记得手写输入beeline,拷贝进去可能出现-bash: Beeline: command not found的情况。

beeline
在这里插入图片描述
⑤、连接10000端口,输入用户和密码进入hive客户端

!connect jdbc:hive2://192.168.133.135:10000
利用kettle实现hive数据直接导入到mysql_第3张图片
⑥、测试使用show databases 和 其他命令查看数据库内容
利用kettle实现hive数据直接导入到mysql_第4张图片
⑦、浏览器输入:http://192.168.133.135:10002/ 查看hive使用情况
利用kettle实现hive数据直接导入到mysql_第5张图片
二、kettle连接hive和mysql
①、新建一个转换,表输入端选择连接hive,设置处填写参数
利用kettle实现hive数据直接导入到mysql_第6张图片
②、完毕后点击测试,如果各项参数都正确,那么连接成功,
利用kettle实现hive数据直接导入到mysql_第7张图片
③、编写SQL,点击预览,成功展示hive数据库中的数据
利用kettle实现hive数据直接导入到mysql_第8张图片
注、需要将hive的驱动包拷贝到C:\kettle\data-integration\lib下,否则报以下错误,mysql驱动包也是。
利用kettle实现hive数据直接导入到mysql_第9张图片
三、hive数据插入mysql
①、在mysql数据库中间一张表,字段类型自由指定

CREATE TABLE `coordinate` (
  `code` varchar(50) DEFAULT NULL COMMENT '编码',
  `name` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `longitude` double DEFAULT NULL COMMENT '经度',
  `latitude` double DEFAULT NULL COMMENT '维度'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

②、kettle的插入更新端连接mysql数据库,选择目标表,并指定字段的映射关系(流里的字段代表hive库字段,更新的字段代表mysql库字段)
利用kettle实现hive数据直接导入到mysql_第10张图片
③、点击窗口运行和启动按钮
利用kettle实现hive数据直接导入到mysql_第11张图片
④、运行成功
利用kettle实现hive数据直接导入到mysql_第12张图片
⑤、查看mysql数据并与hive数据做对比,一致。
利用kettle实现hive数据直接导入到mysql_第13张图片利用kettle实现hive数据直接导入到mysql_第14张图片
至此,步骤完成。

你可能感兴趣的:(hive)