一開始下載了最新版的kettle8.2,經過各種百度,下載hive配置和jar包,但是總是連接不上hive,報各種錯誤,不一一舉例了。
折騰很久才發現,原來是版本不匹配
因為kettle連接hadoop集群,分為連接CDH還是apache hadoop,從目錄\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations 就可以看出,每個版本的kettle只能連接該目錄下指定的集群版本,因為 pentaho-hadoop-shims*.jar 這個文件的是用來匹配kettle和集群版本的,不能隨意搭配。因為官網上的shims版本是有限的。(https://sourceforge.net/projects/pentaho/files/Big%20Data%20Shims)
故,卸載了最新的kettle8.2版本,在以上官網上下載了shims文件匹配的kettle,因為我的集群是cdh5.8.2, 更換集群版本太費力,就按照文件名字 pentaho-hadoop-shims-cdh58-package-70.2016.10.00-25-dist.zip
找到了匹配的kettle版本7.0(文件中的70既是kettle版本號),文件名中的cdh58是指CDH 5.8.*版本。
好了,下載kettle 7.0 (鏡像地址:http://mirror.bit.edu.cn/pentaho/),解壓后:
只有一個 data-integration 目錄,開始配置連接hive
1. 下載hive的配置文件:
將hive-conf配置目錄下的以下四個文件復制
覆蓋替換 kettle目錄下data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh58 的 四個同名文件。(本以為還需要去官網下shims文件,驚喜的發現在這個目錄中已經存在了 pentaho-hadoop-shims-cdh58-70.2016.10.00-25.jar)
2. 修改data-integration\plugins\pentaho-big-data-plugin 目錄下的 plugin.properties 文件中的配置項,指定要使用的集群配置是哪個。
3 . 所需jar包, 有些說需要下載hive中的所有關於hive的jar包,其實在這里不用,只需要在集群中下載 hadoop-core*.jar和hadoop-common*.jar 兩個包,放入一下目錄
放上依賴jar后,重啟,測試成功。
連接參數中,主機名是:hiveserver2服務所在主機的ip, 數據庫名稱 是 集群中hive中已經存在的某個db, 也就是你要讀寫的hive庫。 端口號是hiveserver2默認開啟的端口號,可以在hive的配置中查到是否是10000. 用戶名密碼 可以不用指定。
參考: https://blog.csdn.net/shipfei_csdn/article/details/103925063
https://www.cnblogs.com/cssdongl/p/6003449.html