一、目的
由于先前使用的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,困擾許久,終于一朝解決,整理此博文,公諸于眾,希望能夠幫助和我受到一樣困擾的你!
樂于奉獻共享,幫助你我他!!!