使用Kettle向CDH集群中Hive导入数据表

使用Kettle向CDH集群中Hive导入数据表

CDH集群搭建好了,需要向Hive中导入数据,环境如下:

  • CDH版本:Hadoop 2.6.0-cdh5.15.0
  • Kettle 6.0
  • JDK 1.8
  • Oracle 11g

步骤概览

  • 下载Hive客户端配置 去Hive服务器下载配置文件:hive-clientconfig.zip
  • 配置Kettle的大数据文件 plugin.properties
  • 引入JAR包 hive-*.jar
  • 配置数据库连接

详细步骤

需求:CDH(Cloudera’s Distribution Including Apache Hadoop)集群搭建完成,安装了Hive和HDFS服务,现在向Hive中导入一个数据表,包含:创建表+数据导入。

环境准备

  • CDH版本:Hadoop 2.6.0-cdh5.15.0
  • Kettle 6.0
  • JDK 1.8
  • Oracle 11g

环境配置

注:先修改host文件C:\Windows\System32\drivers\etc\hosts
10.1.2.158   docker04
10.1.2.159   docker05
10.1.2.160   docker06
10.1.2.138   bigdata01
10.1.2.139   bigdata02
1.修改Kettle的D:\data-integration\plugins\pentaho-big-data-plugin\plugin.properties文件中属性 active.hadoop.configuration=hdp26
    具体值需要根据Hadoop版本自定,查看方法:在集群服务器主节点输入命令:
    hadoop version
    返回:Hadoop 2.6.0-cdh5.15.0
    则active.hadoop.configuration的值为hdp26

CDH版本查询
2.修改Kettle的D:\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp23(这个文件夹名字可能不一样),这里把hdp23改成hdp26即可。
文件夹名称修改
3.下载Hive客户端配置。
在集群管理界面Cloudera Management中,找到Cluster 1 (CDH 5.15.0, Parcel)下面的Hive,点击进入Hive(Cluster 1)–>操作–>下载客户端配置,下载出配置文件:hive-clientconfig.zip




4.替换配置文件。
将第3步下载的文件解压,将里面的如下四个文件,拷贝替换到Kettle目录中(替换前先保存原文件,):D:\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26
core-site.xml
hbase-site.xml
hdfs-site.xml
yarn-site.xml
替换配置文件
5.下载jar包。
先删除Kettle内已有的jar包,避免版本不匹配导致问题。删除D:\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26\lib目录中所有hive-*开头的jar包。然后到安装Hive的服务器中,下载Hive驱动包,一般为CDH安装目录内,例:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib
将所有hive开头的jar包下载出来,复制到D:\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26\lib文件夹中。
下载jar包
替换jar包
6.配置完成,重启Kettle。

数据抽取过程开发

一、配置Hive的数据库连接和HDFS的HadoopCluster连接。
    a.配置Hive的数据库连接:
        在转换的主对象树-->DB连接,右击新建。连接类型选择:Hadoop Hive 2
        主机名:Hive服务器IP地址。
        数据库名称:默认填写default,如果指定数据库,填写对应数据库名。
        端口号:10000
        用户名:hdfs (这里也可以不填,最好填hdfs)
        测试是否正确连接。

Hive数据库连接
b.配置HadoopCluster连接:
在转换的主对象树–>Hadoop Clusters,右击New Cluster
HDFS选项卡:HostName填写HDFS服务器的域名或者IP地址,这个要根据配置文件填写,HDFS的Hostname和Port在core-site.xml中,节点为fs.defaultFS,username填写hdfs。
JobTracker选项卡:JobTracker的Hostname和Port在yarn-site.xml中,节点为yarn.resourcemanager.address。
Zookeeper选项卡:Zookeeper的Hostname和Port在yarn-site.xml中,节点为yarn.resourcemanager.zk-address。
Oozie选项卡:根据Oozie服务器实际情况填写:http://docker05:8080/oozie
Hadoop Clusters连接
二、开发数据抽取转换。
方案1:表输入–>表输出(数据入库非常慢)
直接查询数据库,输出到Hive中,这里可以点击表输出的SQL,生成表结构。

表输入:
SELECT T.*,SYSDATE LOAD_TIME FROM dim_day T WHERE T.START_TIME >= TRUNC(SYSDATE,'YYYY')

表输入-->表输出
这里写图片描述
这里写图片描述
方案2:表输入–>Hadoop File Output(速度尚可)
数据导入HDFS中,再加载到Hive中。
表输入-HDFS-加载数据
表输入
HDFS1
HDFS2
HDFS3
加载数据

加载数据:
DROP TABLE IF EXISTS dim_day;
CREATE TABLE dim_day (DAY_ID DOUBLE, DAY TIMESTAMP, DAY_NAME STRING, START_TIME TIMESTAMP, END_TIME TIMESTAMP, DAY_NUM DOUBLE, MONTH_ID DOUBLE, WORK STRING, WEEK STRING, WEEK_NUM DOUBLE, UPDATE_TIME TIMESTAMP, LOAD_TIME TIMESTAMP) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA INPATH '/user/hive/warehouse/dim_day.txt' OVERWRITE INTO TABLE dim_day;

参考: https://blog.csdn.net/zzq900503/article/details/79077718

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值