通过kettle将关系型数据库中表导入hive中

思路
要将关系型数据库中的表通过kettle导入到hive中,主要思路是两种:1.直接配置jdbc连接hiveserver2,通过表输入及表输出组件转换;2.先将关系型数据库中的表导入到hdfs中,再通过hdfs导入hive。现就这两种方式作以示例。
本人使用kettle版本为8.2,关系型数据库为mysql。
示例
一、直接连接hiveserver2
配置hive连接如下:
通过kettle将关系型数据库中表导入hive中_第1张图片
点击测试,成功连接。通过kettle将关系型数据库中表导入hive中_第2张图片
现将mysql中某表导入hive中default库,
通过kettle将关系型数据库中表导入hive中_第3张图片
通过kettle将关系型数据库中表导入hive中_第4张图片
二、先通过hadoop file output组件将mysql中表导出至hdfs,再导入hive表中。
这种方式较上一种稍显复杂。
1、点击kettle工具菜单中的hadoop distribution,查看集群信息。
通过kettle将关系型数据库中表导入hive中_第5张图片
2、
将hadoop集群配置文件core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml复制进kettle目录C:\mount\pdi-ce-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26,并覆盖原有同名文件。hadoop配置文件可在hadoop安装目录下找,本人为/usr/hdp/2.6.5.0-292/hadoop/conf

3.上步中将配置文件复制进了hdp26目录,故将C:\mount\pdi-ce-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin目录中的plugin.properties文件中的hadoop使用配置改成hdp26。在这里插入图片描述
4.配置Hadoop file output组件
首先配置hadoop集群,
通过kettle将关系型数据库中表导入hive中_第6张图片
点击测试,通过。
配置hadoop file output
通过kettle将关系型数据库中表导入hive中_第7张图片
可通过浏览来选择导出的文件位置。
通过kettle将关系型数据库中表导入hive中_第8张图片
注意使用的分隔符以及字符编码,还有是否需要保留文件头部。$[1]为16进制的1,即hive中默认分隔符\001。
通过kettle将关系型数据库中表导入hive中_第9张图片
字段区域可以选择最小宽度,去掉左右空格。
5.文件导出至hdfs后,需要load进hive目标表,使用执行sql脚本组件,通过加载命令加载。
通过kettle将关系型数据库中表导入hive中_第10张图片
配置完成后,执行转换。
通过kettle将关系型数据库中表导入hive中_第11张图片
执行成功。

你可能感兴趣的:(Kettle,Hadoop)