一述暂、前言
我們都知道hue+sentry可以管理hive的用戶以及權(quán)限,但是其中有幾個概念必須要要弄明白:1疼蛾、hue的用戶以及用戶組是獨(dú)立的察郁,跟hive沒有關(guān)系妒挎,hive沒有用戶的概念;2鳞芙、利用hue給hive賦權(quán)時的role(角色)是可以隨便命名的期虾,只是賦權(quán)操作的最小粒度是用戶組镶苞,要想實(shí)現(xiàn)一個用戶維護(hù)一個權(quán)限就必須是一個用戶一個用戶組(一個用戶組內(nèi)的所有用戶權(quán)限都是一樣的);3壕鹉、新加的用戶還必須在hvie服務(wù)所在的服務(wù)器添加相應(yīng)的用戶以及用戶組聋涨;4、使用hue查詢hive數(shù)據(jù)脊凰,程序都是由hive用戶代理的狸涌,但是程序運(yùn)行的資源池可以通過yarn的配置規(guī)則來指定最岗。
二、操作流程
1惶楼、第一步先建用戶組
在添加用戶組時需要指定permissions,目的是讓新用戶在登陸hue之后能看到哪些模塊晨汹,以上截圖的就是一般用戶需要的(能跑hive任務(wù),能查詢hdfs信息剥扣,能查看job信息等)
2铝穷、第二步添加用戶
點(diǎn)擊下一步勾選新用戶的用戶組==》點(diǎn)擊下一步激活用戶==》完成
3晦炊、用戶以及用戶組設(shè)定之后宁脊,需要根據(jù)郵件申請的內(nèi)容設(shè)置該賬號的hive權(quán)限。
三、到hiveserver2的服務(wù)器上去添加用戶名跟用戶組坐漏。
這里分兩種情況,一個是新用戶不需要放到之前的用戶組中去街夭,另一種是需要放到之前已經(jīng)存在的組中去(這里重點(diǎn)說下莱坎,如果是這種情況寸士,那么還必須創(chuàng)建一個跟用戶名一致的附屬主)。
這里我已經(jīng)將腳本寫好乃正,放到服務(wù)器/root/add_new_user_as_hue.sh
#!/bin/bash
#addnewuser
#add new user to system and add new group to system
#put new user into new group
#juge the parameters
if [ $# != 2 -a $# != 3 ];then
echo "the parameters must contain username groupname or username groupname supplementary_name !!!!"
exit
fi
if [ $# == 2 ]
then
user_name=$1
group_name=$2
if [ "${user_name}" = "" -o "${group_name}" = "" ]
then
echo "user name or goup name must be set !!!"
exit
fi
groupadd ${group_name}
useradd -g ${group_name} ${user_name}
fi
if [ $# == 3 ]
then
user_name=$1
group_name=$2
supplementary_name=$3
if [ "${user_name}" = "" -o "${group_name}" = "" -o "${supplementary_name}" = "" ]
then
echo "user name or goup name or supplementary_name must be set !!!"
exit
fi
groupadd ${supplementary_name}
useradd -g ${group_name} -G ${supplementary_name} ${user_name}
fi
四瓮具、總結(jié)
通過以上操作,我們已經(jīng)實(shí)現(xiàn)了一個用戶維護(hù)一個權(quán)限叹阔。