Kettle (三):mysql导入hive

一、实现功能

Kettle (三):mysql导入hive
使用kettle将mysql中的数据导入hive,从而实现数据迁移。

二、环境

1.Centos7.4
2.CDH5.7.0
3.Kettle 8.0
4.JDK1.8

三、Kettle中建立数据库连接

1.    建立mysql数据库连接
(1)    新建mysql_local的数据库连接
 
(2)    输入mysql对应的信息
 
(3)    点击“测试”,连接成功后,点击“确认”

2.    建立hadoop连接
(1)    新建hadoop连接
 
(2)    配置hdfs连接信息,因为暂时没有zookeeper和oozie等,所以不用配置
 
(3)    点击“测试”,会依据(2)中填写信息,回复连接结果
 
结果连接成功
3.    创建连接hive的连接
(1)    服务器开启hiveserver2,从而客户端连接hive
(2)    在hive根目录下
bin/hive --service hiveserver2
(3)    配置与kettle相关jar包
参考:https://blog.csdn.net/u010886217/article/details/89509323
(4)    新建hiveserver2的数据库连接
 
(5)    配置hiveserver2的相关信息
 
(6)    点击“测试”连接hive,成功后,点击“确定”保存连接
 
 

四、转换

1.    实现功能
(1)    在hive中创建mysql表对应的表结构
(2)    将mysql中表导出为txt格式,保存到hdfs临时目录
 
2.    创建mysql表输入
选择mysql数据库连接,并且选择需要转移的student表

3.    创建hive表输出步骤,完成建立对应表
(1)选择hive表连接和转移到hive中表的名称,点击SQL

(3)    修改自动生成的SQL语句

CREATE TABLE student_mysql
(
  id INT, name STRING, age INT)
  row format delimited fields terminated by ';'
;


(4)    单击“确定”,此时hive中建表成功。
 
(5)    使mysql-》hive的连接失效,从而不影响后续操作。
点击连线,使之变为灰色
 
4.    mysql表导出为txt文档保存在hdfs
(1)引入“Hadoop file output”步骤

 
(2)输入hdfs相应信息,修改“文件”框
 
(3)    修改“内容”框
 
(4)    修改“字段”框
先点击“获取字段”,然后点击“最小宽度”,否则按照默认宽度,输出txt文件的文字宽度太大。

(5)    运行转换,使mysql表转换到hdfs上
 
结果:

五、创建job实现将txt文档转移hive的目录下

1.    创建job,拖入start、转换、Hadoop copy files组件
 
2.    修改“转换”,将四中的转换填写入
 
3.    修改“Hadoop copy files”组件
设置源文件路径和目标路径
 
4.    执行job
 

六、验证

1.启动hive

bin/hive

2.查询

hive (test)> select * from student_mysql;
OK
student_mysql.id        student_mysql.name      student_mysql.age
1       zhangsan        4
2       lisi    5
Time taken: 0.286 seconds, Fetched: 2 row(s)
hive (test)> select student_mysql.age from student_mysql;
OK
student_mysql.age
4
5
Time taken: 0.074 seconds, Fetched: 2 row(s)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值