日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RHadoop和CDH整合实例(三)- RHive

發布時間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RHadoop和CDH整合实例(三)- RHive 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

五、 RHive的安裝及測試

RHive依賴于Rserve,所有首先需要安裝Rserve(在各個namenode),接下來在所有節點上啟動Rserve

> sudo R > install.packages("Rserve") > q()
>
Rserve --RS-conf /usr/lib64/R/Rserv.conf #啟動Rserve
>
sudo netstat -nltp | grep Rserve #查看Rserve服務端口號

? ? ?通過netstate會發現Rserve啟動后默認端口為6311

? ? ?master節點上telnet(如果未安裝,通過shell命令yum install telnet安裝)所有slave節點。

> telnet bj1-241-centos169 6311 ??

? ? ? ?RHive的安裝無法直接通過Rinstall.packages("RHive")進行,在github上也無法直接從https://github.com/nexr/RHive/downloads下載編譯好的tar.gz包,只能從github下載源碼后自己編譯。編譯java源文件的過程需要用到ant,若機器上沒有,首先安裝ant

> sudo yum install ant

? ? ? ?更改/etc/profile,設置環境變量HIVE_HOMEANT_HOME,在測試機上,對應為:

? ? ? ?HIVE_HOME=/opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/

? ? ? ?ANT_HOME=/usr/share/ant

? ? ? ?以下步驟需要對RHive源代碼進行一些更改,編譯并打包成tar.gz文件后再安裝RHive,若不關心修改源碼的部分,本文最后會給出已編譯好的文件以供下載。

? ? ? ?進入$INS_TMP目錄后,下載githubRHive項目源碼,路徑為~/$INS_TMP/RHive。由于測試機群上配置了Kerberos,而R語言通過RHive訪問Hive的過程并不是直接通過JDBC接口訪問,而是將在R語言中通過.j2r文件下的函數調用java程序,在java程序中加載JDBC驅動而訪問hive。盡管當前用戶擁有有效的Kerberos票據,在這樣的機制下java程序卻不能直接擁有Kerberos票據對應的權限。解決方案是在類com.nexr.rhive.hive.DatabaseConnection的代碼 (java代碼位于/RHive/RHive/inst/javasrc/src/目錄下),在connect()方法里加上以下語句。

package com.nexr.rhive.hive; class DatabaseConnection { @SuppressWarnings("deprecation")boolean connect() throws SQLException {//加上的語句,使 RHive調用的java程序能夠擁有kerberos權限System.setProperty("javax.security.auth.useSubjectCredsOnly","false"); ... //函數體其余語句return true; }

? ? ? Hive可訪問jar包的路徑下,因為測試集群上的 sentry限制了程序對Hiveadd jar操作,所以這條語句在RHive執行不通過,我們需要將其注釋后,手動將rhive_udf.jar添加到Hive可以搜索的目錄下。然后修改/etc/profile文件文件,增加HADOOP_HOME環境變量:

? ? ?HADOOP_HOME=/opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hadoop/

? ? ?回到~/$INS_TMP/RHive目錄, 重新對RHive代碼進行編譯:

> sudo ant build > sudo R CMD build RHive > sudo R CMD INSTALL RHive_2.0-0.10.tar.gz

? ? ~/$INS_TMP/RHive目錄下生成的RHive_2.0-0.10.tar.gz即為RHive安裝包。

? ? 在正式使用RHive之前,還需要進行一些配置。RHive會將rhive_udf.jar復制到每臺機器上對應的目錄下,默認目錄為/hive,可以通過/RHive/RHive/R/macro.R里的.DEFAULT_FS_HOME進行修改,這里我們修改為/user/rhive,注意修改后要進行重新編譯。

? ? 在所有機器上都創建/user/rhive目錄,并修改其屬性,使所有用戶對其都有讀寫權限。

> sudo mkdir -p /rhive/data > sudo chmod 777 -R /rhive/data

? ? ??由于剛才我們在RHiveR代碼中注釋了hiveClient$addJar(.FS_JAR_PATH())一行,現在每臺機器上都存在/rhive/data目錄,并且RHive在執行過程中會自動將rhive_udf.jar添加到該路徑下,此時可更改hive_site.xml的配置,在hive.aux.jars.path加上路徑/rhive/data/rhive_udf.jar以使hive能夠找到rhive_udf.jar。在cloudera manager下,這步操作可以在hive對應的配置頁更改, 地址是http://host:port/cmf/services/38/config的格式

? ? ?設置完畢后重啟hive。以下用的是169機器上的hiveserver2

? ? ?測試代碼見test_rHive.r,調用RHive的核心部分如下,

#請確保以下路徑配置正確 Sys.setenv(JAVA_LIBRARY_PATH="/opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hadoop/lib/native"); Sys.setenv(HADOOP_HOME="/opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hadoop"); Sys.setenv(HIVE_HOME="/opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/"); Sys.setenv(HADOOP_CONF="/etc/hadoop/conf"); Sys.setenv(DEFAULT_FS="/user/rhive");library(RHive) rhive.init() #rhive.init(verbose = TRUE) rhive.env()rhive.connect(host = "bj1-241-centos169", port = "10000",hiveServer2=TRUE, properties="hive.principal=hive/bj1-241-centos169@XXX.COM") rhive.query('select count(*) from test') rhive.close() q()

  

  

可能出現的問題:

? ? ? (1)執行rhive.connect()函數后拋出異常javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]而用beeline進行連接,輸入

!connect jdbc:hive2://192.168.241.169:10000/default;principal=hive/bj1-241-centos169@XXX.COM

連接正常,可能原因是kerberosRHive調用的java程序沒有授權,詳細的?異常信息打印如下:

更改DatabaseConnection類下的connecr()函數即可, 即加上語句

System.setProperty("javax.security.auth.useSubjectCredsOnly","false");?

? ? ? (2)RHive執行connect()成功,但出現異java.sql.SQLException: Insufficient privileges to execute ADD, 圖例如下(原始的RHive代碼在出現這個問題時沒有打印棧信息, 為了演示方便我手動加上了棧信息的打印):

?? ? ? ? ? 出現這個問題的可能原因是sentry限制了對hiveadd jar操作,將?rhive.R中的connect()函數進行修改,注釋hiveClient$addJar后手動添加rhive_udf.jar路徑,即可解決。

轉載于:https://www.cnblogs.com/cassie-huang/p/5065288.html

總結

以上是生活随笔為你收集整理的RHadoop和CDH整合实例(三)- RHive的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 蜜桃av一区| 两性囗交做爰视频 | 国产精品无圣光 | 精品久久ai | 久久久精品免费看 | 免费成人高清视频 | 蜜桃视频免费网站 | 中文字幕日韩在线观看 | 色欧美片视频在线观看 | 美女的诞生免费观看在线高清 | 国内外免费激情视频 | 少妇久久久久久久久久 | 天堂中文在线观看视频 | 成熟了的熟妇毛茸茸 | 久久人体视频 | 97爱爱视频| 成人h网站| 你懂的网站在线 | 日韩一级色片 | 玖玖热在线视频 | 欧美野外猛男的大粗鳮 | 久久香蕉精品视频 | 隔壁邻居是巨爆乳寡妇 | 欧美一区二区三区四区视频 | 在线观看av免费 | 天天干天天操心 | 久久精品九九 | 国产福利在线观看视频 | 日韩精品免费一区二区夜夜嗨 | 一本久久道 | 日剧再来一次第十集 | 四虎影城库| 在线观看黄色国产 | 久久香蕉网站 | 中文字幕天堂网 | 欧美一区二区三区公司 | 97se在线视频 | 91新网站 | 欧洲在线观看 | 超碰最新在线 | 日本免费高清视频 | 俄罗斯美女一级爱片 | www.蜜桃av| 精品国产18久久久久久二百 | www.jizzcom| 操操操爽爽爽 | 蜜桃av免费看 | 中文字幕在线视频不卡 | 午夜在线观看视频 | 久草视频免费在线播放 | 一区二区成人网 | 欧美日韩国内 | 午夜精品久久久久久久久久久 | 色婷婷av一区二区三区四区 | 成人激情视频在线观看 | 免费看a级黄色片 | 97自拍视频在线 | 在线视频欧美一区 | 亚洲天堂无吗 | 123毛片| 日本japanese极品少妇 | av片网址| 永久免费看mv网站入口78 | 黄色特级片 | av手机免费观看 | 中文字幕一区二区三区免费视频 | 成人亚洲免费 | 国产麻豆精品久久一二三 | 亚洲精品激情视频 | 高清日韩一区 | 色小说综合 | 国产欧美一区二区三区视频在线观看 | 日日cao| 激情综合网婷婷 | 成人免费观看cn | 欧美18一19性内谢 | 91热久久| 日本美女逼 | 国产吧在线 | 国产高潮失禁喷水爽到抽搐 | 在线免费国产 | 中文字幕视频在线 | 蜜臀av88| 性高湖久久久久久久久免费 | 欧美黄色一级 | 国产精品久久久久9999 | 黄色在线免费网站 | 久久久久久婷婷 | 国产片91| 久久久久毛片 | 亚洲最大福利视频网 | 成人黄色三级视频 | 在线免费亚洲 | 亚洲熟女乱综合一区二区三区 | 波多野结衣在线一区二区 | 国产精品国产三级国产播12软件 | 韩国一二三区 | 国产精品午夜无码专区 | 久草aⅴ|