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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hive 集成oracle,hive集成kerberos问题1

發(fā)布時(shí)間:2024/9/30 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive 集成oracle,hive集成kerberos问题1 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在hdfs+mapred+impala+kerberos運(yùn)行正常后,開(kāi)始測(cè)試hive+kerberos。hive0.11之后開(kāi)始支持kerberos的驗(yàn)證,hive主要有兩種訪問(wèn)方式,一種方法是shell運(yùn)行,即直接運(yùn)行hive命令,另一種方法時(shí)啟動(dòng)hiveserver,然后通過(guò)jdbc或odbc進(jìn)行驗(yàn)證,其中第二種方法可以通過(guò)hive0.11的beeline進(jìn)行測(cè)試。

在使用hive shell運(yùn)行時(shí),主要遇到下面幾個(gè)問(wèn)題:

1.權(quán)限驗(yàn)證問(wèn)題。

在hive操作hdfs數(shù)據(jù)的時(shí)候,權(quán)限是分為兩層的,一個(gè)是hive層面的權(quán)限控制,主要是控制表的權(quán)限,一個(gè)是hdfs文件的權(quán)限控制,控制用戶(hù)的讀寫(xiě)操作。

表的相關(guān)權(quán)限主要是寫(xiě)在hive的元數(shù)據(jù)庫(kù)中,主要是TBL_PRIVS表(控制表的權(quán)限)和DB_PRIVS 表(控制庫(kù)的權(quán)限)。

在開(kāi)啟kerberos之后,傳入hive的用戶(hù)名是principal的全名,比如hdfs/gxxxx@KERBEROS_HADOOP,而hive權(quán)限表中的PRINCIPAL_NAME 字段是hdfs,會(huì)導(dǎo)致沒(méi)有表的權(quán)限,雖然可以通過(guò)update表來(lái)更改相應(yīng)的PRINCIPAL_NAME 的值,但是實(shí)際使用中缺乏可運(yùn)維性。在hdfs層面,有一個(gè)user mapping的功能(由hadoop.security.auth_to_local參數(shù)控制),默認(rèn)會(huì)把principal的全名進(jìn)行map,轉(zhuǎn)換為unix的用戶(hù)名形式。

2.hook的問(wèn)題。

由于hive有g(shù)rant的bug,因此線上使用了hook來(lái)做用戶(hù)驗(yàn)證,即執(zhí)行g(shù)rant語(yǔ)法是會(huì)判斷當(dāng)前用戶(hù)是否是hdfs用戶(hù),如果不是則報(bào)錯(cuò),主要的代碼如下(老畢提供):

其中獲取當(dāng)前傳入的用戶(hù)名是通過(guò) SessionState.get().getAuthenticator().getUserName();

集成了kerberos之后,在實(shí)際使用中會(huì)報(bào)

FAILED: SemanticException User:hdfs/xxxxx@KERBEROS_HADOOP isn't ADMIN, please ask for hdfs.的錯(cuò)誤。

這兩個(gè)問(wèn)題的解決,借鑒了點(diǎn)評(píng)的patch:

即把ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java

中的this.userName = ugi.getUserName();改為

this.userName = ShimLoader.getHadoopShims().getShortUserName(ugi);

本文轉(zhuǎn)自菜菜光 51CTO博客,原文鏈接:http://blog.51cto.com/caiguangguang/1381334,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的hive 集成oracle,hive集成kerberos问题1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。