由于先前使用的kettle8.2版本在Linux上安装后,创建共享资源库点击connect时页面为空,后来采用如下方法,在/opt/install/data-integration/ui/menubar.xul文件里添加如下代码
共享资源库创建后又遇到任务Save时为空的问题。
首先,在Windows本地安装的kettle8.2,无论有没有连接共享资源库,kettle任务都可以正常执行;
其次,在Linux上安装的kettle8.2启动后,
如果不连接共享资源库,那么kettle任务可以正常运行,没有问题。
只有在连接共享资源库后,kettle任务才无法保存,save页面为空,如下图所示
所以,这可能是kettle8.2与Linux的版本匹配问题,因此换成最新的版本kettle9.3尝试一下
kettle9.3.0安装包网盘链接
链接:https://pan.baidu.com/s/1MS8QBhv9ukpqlVQKEMMHQA?pwd=dqm0
提取码:dqm0
因为我之前一直用的是kettle8.2,所以kettle9.3连接hive3.1.2时我就直接从kettle8.2的文件夹复制jar包
至于kettle8.2如何本地安装后连接hive,详情请参考鄙人拙作
http://t.csdn.cn/qyuDjhttp://t.csdn.cn/qyuDj
mysql-connector-java-5.1.37.jar ; mysql-connector-java-8.0.30.jar
D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations
因为我的Hadoop版本是Hadoop3.1.3,所以我选择的文件夹是hdp30
注意:kettle9.3的hdp30文件夹里最初只有hdp30\lib\pmr这一个文件夹,与kettle8.2里的hdp30文件夹最初状况大不相同,这也是困扰我许久的原因
文件路径:D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\plugins\pentaho-big-data-plugin
只要设置 active.hadoop.configuration=hdp30
把kettle8.2的hdp30文件夹里原先的hive、Hadoop、hbase的6个配置文件(hbase非必需)
复制到kettle9.3的hdp30文件夹
把kettle8.2的hdp30\lib文件夹里除了pmr和client两个所有jar包
复制到kettle9.3的hdp30\lib文件夹
把hive的安装路径hive312/jdbc里的驱动包
复制到 kettle9.3的data-integration\lib文件下
文件路径:D:\java\kettle\pdi-ce-9.3.0.0-428\data-integration\lib
kettle9.3连接hive312,连接成功!
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,困扰许久,终于一朝解决,整理此博文,公诸于众,希望能够帮助和我受到一样困扰的你!
乐于奉献共享,帮助你我他!!!