HiveServer2自定義身份驗證

============Hive的beeline權限配置============

1)HDFS修改core-site.xml配置

搜索 core-site.xml

core-site.xml 的羣集範圍高級配置代碼段(安全閥)添加

<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
</property>

如圖所示:

2)YARN (MR2 Included)修改core-site.xml配置

java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default: java.net.ConnectException: 拒絕連接

解決方式:在hadoop的配置文件core-site.xml增加如下配置,重啓hdfs,其中“xxx”是連接beeline的用戶,將“xxx”替換成自己的用戶名即可。最關鍵的是一定要重啓hadoop,先stop-all.sh,再start-all.sh,否則不會生效的!!那樣就還是報錯!

搜索 core-site.xml

core-site.xml 的 YARN 服務高級配置代碼段(安全閥)添加

<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
</property>

"*" 表示可通過超級代理“xxx”操作hadoop的用戶、用戶組和主機

如圖所示:

2)Hive修改hive-site.xml配置

搜索 hive-site.xml

hive-site.xml 的 Hive 服務高級配置代碼段(安全閥)添加

<property>
    <name>hive.server2.authentication</name>
    <value>CUSTOM</value>
</property>
<property>
    <name>hive.server2.custom.authentication.class</name>
    <value>org.joy.hive.auth.CustomHiveServer2Auth</value>
</property>
<property>
    <name>hive.server2.custom.authentication.file</name>
    <value>/etc/hive/conf/hive.server2.users.conf</value>
</property>

如圖所示:

自定義的用戶認證方式

gitee地址: https://gitee.com/xqg1316/hive_auth.git

將上面的程序打包成HiveServer2Auth.jar,放到 Hive 輔助 JAR 目錄

注: 將 HiveServer2Auth.jar 放到所有 hive 的節點上

# 將 HiveServer2Auth.jar 上傳到服務器的/opt/data/目錄下
# 將jar上傳到 Hive輔助JAR 目錄下
[joy@hadoop002 data]# cp /opt/data/HiveServer2Auth.jar /usr/share/java/
scp /usr/share/java/HiveServer2Auth.jar root@hadoop001:/usr/share/java/
scp /usr/share/java/HiveServer2Auth.jar root@hadoop002:/usr/share/java/
scp /usr/share/java/HiveServer2Auth.jar root@hadoop003:/usr/share/java/

② 注: 將這個 hive.server2.users.conf 文件需要放到所有 HiveServer2 服務 節點上

注意: 每次進行修改hive-site.xml配置時會可能需要重新配置hive.server2.users.conf文件

進入CDH中的lib/hive目錄下找到conf,

再將hive.server2.users.conf放到 /etc/hive/conf 目錄下

 vim hive.server2.users.conf

# 格式: 用戶名,密碼  這裏的密碼是md5加密後的
# e.g.
# 明文: bigdata,123456
[root@hadoop001 ~]# cd /etc/hive/conf
[root@hadoop001 conf]# vim hive.server2.users.conf 
# 編輯內容後保存
hive,8a4ac216fb230da3834de641b3e5d0f7
bigdata,27819cfe72583a34d13a40bb74154c91
personas,7fa686506d1b18330762c7a3b7801c99
product,f5bf48aa40cad7891eb709fcf1fde128
operation,f7235a61fdc3adc78d866fd8085d44db

將這個 hive.server2.users.conf 文件分發到 hiveServer2 的節點上

[root@hadoop001 conf]# scp /etc/hive/conf/hive.server2.users.conf root@hadoop002:/etc/hive/conf/

登錄

beeline連接hive

beeline -u jdbc:hive2://hadoop002:10000 -n hive -p hive  beeline -u jdbc:hive2://hadoop002:10000 -n hive -p hive -e "select * from db.table_name"

發佈了48 篇原創文章 · 獲贊 14 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章