日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: www.色多多| 人人看人人爽 | 日本男人天堂网 | 免费观看污网站 | yjizz视频 | 欧美bbbbb| 国产日韩欧美专区 | 色一情一区二 | 亚洲欧美一区在线 | 欧美日韩电影一区二区 | 超清av| 日本视频免费在线播放 | 精品国产一区二区三区四区精华 | 伊人精品视频在线观看 | 亚洲精品久久久久久 | 亚洲成人一级 | 国产一区99| 精品人伦一区二区三区蜜桃网站 | 内射一区二区 | 潘金莲黄色一级片 | www视频在线观看免费 | www.日韩欧美 | 黄网在线免费观看 | 久久久久久国产视频 | av手机天堂 | 日韩黄色短片 | 欧美日韩激情视频 | 尤物视频在线观看国产性感 | 成人爱爱免费视频 | 亚洲欧美在线视频 | 精品久久精品 | 黑人毛片网站 | 国产在线一二三区 | 国产在线h | 成人动漫在线观看视频 | 日韩精品久久久久久久的张开腿让 | 日韩不卡视频一区二区 | 人人免费操 | 国产精品网友自拍 | www.天堂av | 一女三黑人理论片在线 | 日韩久久精品电影 | 国产精品国产三级国产专播品爱网 | 91性色| 精品国产乱码久久久久久鸭王1 | 国产喷水福利在线视频 | 草久久 | 男女日批视频 | av高清一区 | 姝姝窝人体www聚色窝 | 亚洲综合一二三 | 91国在线 | 麻豆传媒网站入口 | 91少妇丨porny丨 | av 日韩 人妻 黑人 综合 无码 | 成人欧美一区二区三区在线播放 | 日韩福利片 | 少妇人妻真实偷人精品视频 | 开心春色激情网 | 午夜三级视频 | 97超碰97| 美女视频在线观看免费 | 三上悠亚一区二区在线观看 | 麻豆videos| 无码人妻aⅴ一区二区三区有奶水 | 一区二区三区在线视频播放 | 91情侣视频 | 婷婷综合另类小说色区 | 久久伊人精品视频 | 国产av 一区二区三区 | 猫咪av网 | 国产视频一二三区 | 91精品国产综合久久福利 | 麻豆av一区二区 | 久久久久久国产精品日本 | 好吊色一区二区 | 日美av| 久久久久久久色 | 免费成人看视频 | 久久久999国产精品 天堂av中文在线 | 久久在线精品 | 成人亚洲网站 | 91免费小视频 | 亚洲精品视频中文字幕 | 一级特黄性色生活片 | 国产欧美日韩高清 | 黄色大片在线免费观看 | 免费国产在线观看 | 黄av网站| 午夜不卡av | 久久香蕉精品 | 亚洲成人网在线播放 | 九九久久视频 | 国产精品99精品 | 小宝贝真紧h军人h | 国产精品av网站 | 国产乱码一区二区三区 | 8090av| 综综综综合网 |