kettle mysql hdfs_kettle 将mysql 导入到hive(借助Hadoop File Output组件)

本文介绍了如何通过Kettle的Hadoop File Output组件,将MySQL数据库的数据导出为数据文件并上传到HDFS,然后利用Hive的`load data inpath`语句将数据加载到Hive表中。详细步骤包括创建Hive和Hadoop集群连接,配置转换流程,设置Hadoop File Output组件参数,并执行SQL脚本。
摘要由CSDN通过智能技术生成

背景

在使用kettle 的表输出组件的时候,因为服务器hive版本为0.13,不支持insert into values的语法(hive 的0.14版本才支持),所以通过表输出的方式,插入到hive会报错。

所以想了一个其他的办法,通过kettle提供的Hadoop File Output 组件将数据以数据文件的方式导入到hadoop的hdfs。然后通后通过执行sql脚本,使用hive 支持的 load data inpath into table 的方式,将hdfs的数据文件,加载到hive表中。

步骤

1.创建hive 的数据库连接

在kettle的DB连接里面新建数据库连接,连接hive。在我的上篇文章里面有关于kettle里面创建hive连接的步骤,详情请参照我的另一篇文章Data Integration (kettle) 7.0 连接Hive

2.新建hadoop cluster连接

配置kettle hadoop cluster的配置文件

从服务器hadoop etc的配置文件中下载如下4个配置文件,覆盖kettle的plugins\pentaho-big-data-plugin\hadoop-configurations\hdp25中的4个同名文件。

60d9a8ddc7b8

image.png

新建hadoop cluster 连接

填写相应的配置,配置的hostname 和端口号根据上面4个配置文件填写,如下图:

60d9a8ddc7b8

image.png

点击测试连接,如下图:

60d9a8ddc7b8

image.png

有一部分是报些错误,不过不影响,只要Hadoop File System Connection 没报错就行。

3.转换整体流程

整个转换的流程如下:

60d9a8ddc7b8

image.png

通过表输入的方式,从mysql数据库读取表数据,然后通过Hadoop File Output将mysql数据库的数据以数据文件的方式,输出到hadoop的hdfs,然后执行SQL脚本,将数据文件加载到hive的表中。

4.Hadoop File Output组件

hadoop file output 组件配置如下:

60d9a8ddc7b8

image.png

在内容里面注意标红的几个配置,头部是否显示列名,勾选完后表示不显示列名。

60d9a8ddc7b8

image.png

5.执行sql 脚本组件

使用步骤1创建的hive连接,连接hive,然后通过如下脚本,将数据从hdfs里面导入到hive。

60d9a8ddc7b8

image.png

欢迎大家赞赏、转载、点赞、评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值