kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

這篇文章主要介紹了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è)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出永豐免費做網(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 /i18n2020/10/18 16:16:05 - dept.0 - Error occurred while trying to connect to the database2020/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#

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

4.kettle配置

1.下載解壓后,只有一個 data-integration 目錄,開始配置連接hive,你所下載的kettle支持的所有版本的hadoop都會在他的插件子目錄中有對應(yīng)的文件夾和shims包,如下圖所示:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

2.找到對應(yīng)版本的文件夾hdp30,替換集群的xml配置文件:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

3. 修改data-integration\plugins\pentaho-big-data-plugin 目錄下的  plugin.properties 文件中的配置項,指定要使用的集群配置是哪個,這里我要啟用的是hdp30,入下圖所示:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

4.拷貝連接hive所需的jar包, 從集群Hive的lib目錄下拷貝所有hive開頭的jar,其實有些包不需要,這里我就不再挑選了直接拷貝到了hdp30/lib下,如果報錯你還可以在解壓的根目錄data-integration/lib下也放置一份,如下圖所示:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

5. 放上依賴jar后,需要重啟,重啟之前,最好是清理下data-integration、system/karaf的cache和data(如有)目錄,清理緩存:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

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ù)。

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ù)和認證文件,注意,注意,注意

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主機名稱:hiveserver2 服務(wù)地址,例如:192.168.0.101數(shù)據(jù)庫名稱:lujisen;principal=hive/master.hadoop.ljs@HADOOP.COM端口號:10000用戶名:hive密碼:

注意:

    上面第四行中principal后面跟的一定是hive管理員的票據(jù),不是某個登錄用戶的票據(jù),一定注意,注意,注意

10.連接成功,如下圖所示:

kettle如何連接HDP3組件Hive3.1.0存取數(shù)據(jù)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“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://muchs.cn/article16/ppjidg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、網(wǎng)站排名網(wǎng)站收錄、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)