這篇文章主要介紹了kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
公司主營業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出永豐免費(fèi)做網(wǎng)站回饋大家。
kettle報錯研究過程
由于沒有使用過kettle,一開始、下載了最新版的kettle7.0,經(jīng)過各種百度,下載hive配置和jar包,但是總是連接不上hive,報各種錯誤,不一一舉例了,直到報錯:No suitable driver found for jdbc:hive2。
log4j:ERROR No output stream or file set for the appender named [pdi-execution-appender].
九月 29, 2020 4:16:05 下午 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server‘s publish address to be /i18n
2020/10/18 16:16:05 - dept.0 - Error occurred while trying to connect to the database
2020/10/18 16:16:05 - dept.0 -
2020/10/18 16:16:05 - dept.0 - Error connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
2020/10/18 16:16:05 - dept.0 - No suitable driver found for jdbc:hive2://worker1.hadoop.ljs:10000/lujisen
首先說下我這里hadoop用的是比較新的HDP3.1.4,各個組件版本分別是Hadoop3.1.1.3.1、Hive3.1.0,各種百度和看官網(wǎng)一直解決不了這個問題。折騰很久才發(fā)現(xiàn),原來是版本不匹配,因為kettle連接hadoop集群,分為連接CDH還是HDP,從目錄\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations 就可以看出,每個版本的kettle只能連接該目錄下指定的集群版本,因為 pentaho-hadoop-shims*.jar 這個文件的是用來匹配kettle和集群版本的,不能隨意搭配。因為官網(wǎng)上的shims版本是有限的。
kettle下載
這里我是下載了次新穩(wěn)定版本8.3,我看這個版本有對應(yīng)hdp3.0的shims包,
下載地址:https://fr.osdn.net/projects/sfnet_pentaho/releases#
4.kettle配置
1.下載解壓后,只有一個 data-integration 目錄,開始配置連接hive,你所下載的kettle支持的所有版本的hadoop都會在他的插件子目錄中有對應(yīng)的文件夾和shims包,如下圖所示:
2.找到對應(yīng)版本的文件夾hdp30,替換集群的xml配置文件:
3. 修改data-integration\plugins\pentaho-big-data-plugin 目錄下的 plugin.properties 文件中的配置項,指定要使用的集群配置是哪個,這里我要啟用的是hdp30,入下圖所示:
4.拷貝連接hive所需的jar包, 從集群Hive的lib目錄下拷貝所有hive開頭的jar,其實有些包不需要,這里我就不再挑選了直接拷貝到了hdp30/lib下,如果報錯你還可以在解壓的根目錄data-integration/lib下也放置一份,如下圖所示:
5. 放上依賴jar后,需要重啟,重啟之前,最好是清理下data-integration、system/karaf的cache和data(如有)目錄,清理緩存:
6.重啟,測試成功。
1-6步是沒有啟用kerberos情況下,kettle連接hive,如果集群啟用了kerbeos,執(zhí)行完上面的6步驟之后,還需要執(zhí)行以下幾步:
這里需要注意的,訪問應(yīng)用服務(wù)環(huán)境 hive 的主體 principal 統(tǒng)一為 hive/master.hadoo.ljs@HADOOP.COM,而不是用戶自己的principal ,用戶自己的 principal 僅作為客戶端機(jī)器獲取認(rèn)證票據(jù)。
7. 創(chuàng)建文件 kettle.login,寫入如下內(nèi)容并保存
# :Windows 放置在 C:/ProgramData/MIT/Kerberos5/kettle.login
# :Linux 放置在 /etc/kettle.login
com.sun.security.jgss.initiate{ com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true useTicketCache=false keyTab="C:/ProgramData/MIT/Kerberos5/testuser.keytab" principal="testuser/master.hadoop.ljs@HADOOP.COM" doNotPrompt=true debug=true debugNative=true;};
注意:
這上面的keytab和pricipal用哪個用戶登錄就換成哪個用戶的票據(jù)和認(rèn)證文件,注意,注意,注意
8.修改 Kettle 啟動腳本
# 修改 Kettle 啟動腳本
## 2.1 window 系統(tǒng)修改 data-integration\Spoon.bat
# 對大概 98 行左右的 OPT 變量修改為如下:
# 主要添加了如下四個參數(shù)(注意每個參數(shù)用引號引起,空格分開,如果想開啟動的信息,在啟動腳本最后一行加上 pause):
# "-Djava.security.auth.login.config=C:/ProgramData/MIT/Kerberos5/kettle.login"
# "-Djava.security.krb5.realm=HADOOP.COM" 自己集群realm名稱
# "-Djava.security.krb5.kdc=192.168.33.9" 自己kdcserver地址
# "-Djavax.security.auth.useSubjectCredsOnly=false"
set OPT=%OPT% %PENTAHO_DI_JAVA_OPTIONS% "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=%LIBSPATH%" "-Djava.security.auth.login.config=C:/ProgramData/MIT/Kerberos5/kettle.login" "-Djava.security.krb5.realm=HADOOP.COM" "-Djava.security.krb5.kdc=192.168.0.201" "-Djavax.security.auth.useSubjectCredsOnly=false" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%" "-DKETTLE_JNDI_ROOT=%KETTLE_JNDI_ROOT%"
## Linux 系統(tǒng)修改 data-integration/spoon.sh
## 大概在 205 行,同 Windows 系統(tǒng)類似,添加四個參數(shù)
OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djava.library.path=$LIBPATH -Djava.security.auth.login.config=/etc/kettle.login -Djava.security.krb5.realm=HADOOP.COM -Djava.security.krb5.kdc=192.168.0.101 -Djavax.security.auth.useSubjectCredsOnly=false -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -DKETTLE_JNDI_ROOT=$KETTLE_JNDI_ROOT"
9.連接hive
連接名稱:lujisen連接類型:Hadoop Hive 2主機(jī)名稱:hiveserver2 服務(wù)地址,例如:192.168.0.101數(shù)據(jù)庫名稱:lujisen;principal=hive/master.hadoop.ljs@HADOOP.COM端口號:10000用戶名:hive密碼:
注意:
上面第四行中principal后面跟的一定是hive管理員的票據(jù),不是某個登錄用戶的票據(jù),一定注意,注意,注意
10.連接成功,如下圖所示:
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
當(dāng)前題目:kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)
標(biāo)題路徑:http://jinyejixie.com/article16/ppjidg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、、移動網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站收錄、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)