一百五十二、Kettle——Kettle9.3.0本地连接Hive3.1.2(踩坑,亲测有效,附截图)

一、目的

由于先前使用的kettle8.2版本在Linux上安装后,创建共享资源库点击connect时页面为空,后来采用如下方法,在/opt/install/data-integration/ui/menubar.xul文件里添加如下代码

<menuitem id="file-openZiyuanku" label="openZiyuanku" command="spoon.openRepository()"/>

共享资源库创建后又遇到任务Save时为空的问题。

首先,在Windows本地安装的kettle8.2,无论有没有连接共享资源库,kettle任务都可以正常执行;

其次,在Linux上安装的kettle8.2启动后,

如果不连接共享资源库,那么kettle任务可以正常运行,没有问题。

只有在连接共享资源库后,kettle任务才无法保存,save页面为空,如下图所示

 所以,这可能是kettle8.2与Linux的版本匹配问题,因此换成最新的版本kettle9.3尝试一下

二、版本说明

(一)kettle9.3.0   

kettle9.3.0安装包网盘链接

链接:https://pan.baidu.com/s/1MS8QBhv9ukpqlVQKEMMHQA?pwd=dqm0 
提取码:dqm0

(二)Hive3.1.2 

(三)Hadoop3.1.3

三、前提准备

(一)安装前提:掌握Kettle8.2.0本地连接Hive3.1.2

因为我之前一直用的是kettle8.2,所以kettle9.3连接hive3.1.2时我就直接从kettle8.2的文件夹复制jar包

至于kettle8.2如何本地安装后连接hive,详情请参考鄙人拙作

http://t.csdn.cn/qyuDjhttp://t.csdn.cn/qyuDj

(二)Windows本地解压即安装Kettle9.3.0

(三)注意Kettle9.3里MySQL驱动包的版本以及Hive312里MySQL驱动包的版本

1、Hive312的lib里面MySQL驱动包的版本是mysql-connector-java-5.1.37.jar

2、Kettle9.3里MySQL驱动包的版本

mysql-connector-java-5.1.37.jar       ;   mysql-connector-java-8.0.30.jar

 四、安装步骤

(一)根据Hadoop版本在选择对应的文件(千万不要随便选!)

1、文件路径

D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations

 2、Hadoop版本与文件夹对应规则 

3、选择文件,复制文件名(Hadoop版本与文件夹一定要匹配!

因为我的Hadoop版本是Hadoop3.1.3,所以我选择的文件夹是hdp30

注意:kettle9.3的hdp30文件夹里最初只有hdp30\lib\pmr这一个文件夹,与kettle8.2里的hdp30文件夹最初状况大不相同,这也是困扰我许久的原因

(二)修改kettle里pentaho-big-data-plugin文件夹里的源文件plugin.properties

文件路径:D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\plugins\pentaho-big-data-plugin

  只要设置       active.hadoop.configuration=hdp30

(三)根据kettle8.2的hdp30文件夹,把kettle9.3的hdp30文件夹相比而言缺少的部分复制过去

1、第一部分

把kettle8.2的hdp30文件夹里原先的hive、Hadoop的5个配置文件(Hbase文件非必需

如果项目中kettle的使用过程需要用到Hbase则加上hbase-site.xml文件,如果没用到则不需要

 复制到kettle9.3的hdp30文件夹

2、第二部分 

把kettle8.2的hdp30\lib文件夹里除了pmr和client两个所有jar包

 复制到kettle9.3的hdp30\lib文件夹

2023年8月16日续写

注意:经测试,其实还是只需要hive中hive开头的jar包以及hadoop-common-3.1.3.jar

修改后的kettle9.3的hdp30\lib如下

 

 3、第三部分(与kettle8.2不同之处

把hive的安装路径hive312/jdbc里的驱动包

复制到 kettle9.3的data-integration\lib文件下

文件路径:D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\lib

(四)启动Hadoop和Hive服务,打开kettle9.3,连接Hive数据库

kettle9.3连接hive312,连接成功!

 (五)执行从Hive到ClickHouse的kettle任务,测试一下

kettle任务运行成功!

(六)注意kettle里的中文乱码问题 

解决措施:修改kettle9.3\data-integration里的文件Spoon.bat

文件路径:D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration

注意:Kettle9.3的Spoon.bat文件原有的只是

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" 

然后在它后面加上 "-XX:MaxPermSize=256m" "-Dfile.encoding=UTF-8"

其中, "-XX:MaxPermSize=256m"是kettle8.2默认有的堆内存最大值设置;而"-Dfile.encoding=UTF-8"才是解决中文乱码的,但我这边把两个都加上

到这里,Kettle9.3.0本地连接Hive3.1.2就结束了!

我之前查了好多博文,都没找到Kettle9.3.0如何连接Hive3.1.2,困扰许久,终于一朝解决,整理此博文,公诸于众,希望能够帮助和我受到一样困扰的你!

乐于奉献共享,帮助你我他!!!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天地风雷水火山泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值