寫在張文章時,差點辣死我了。把sentry數據庫密碼搞掉了,導致hive,impala,hue都掛了。此事要引以為戒,以后要小心操作了。
- 安裝Sentry服務
a) 在cloudera上添加Sentry服務
b) 選中Sentry服務並繼續
c) 使用集群主機Master節點作為Sentry Sever服務器(Gateway選中集群內的所有服務器)
d) 根據需要進行的數據庫選項配置。
選擇“自定義數據庫”需預先在服務器上部署好數據庫
選擇“嵌入式數據庫”則為sentry自己創建數據庫
sentry數據庫放置一些自身運行的數據
e) 點選下一步之后讓sentry完成服務安裝
2.配置Sentry服務
Hadoop有兩張安全策略,(1)sentry組件服務,(2)基於政策文件的sentry
兩種服務中只能使用其中一種,使用sentry組件服務需要把基於政策文件的sentry功能禁用。
a) 配置不使用Sentry 政策文件
跑到Hive,Impala中的配置界面把基於政策文件的sentry功能關閉掉。
b) 配置打開使用Sentry服務
1)確保服務器上的hive用戶和組有操作hive數據倉庫的路徑的權限(可通過服務器上賦予權限配置,也可打開hdfs和sentry同步功能)
2)關掉Hivesever2上的啟用模擬功能
該功能是使Hivesever2和其它服務(如MapReduce和HDFS)進行會話時,模擬使用JDBC連接向Thrift-sever通信。
3)讓Hive用戶提交MapReduce作業
4) 讓Hive用戶提交YARN作業
個人理解:MapReduce沒有做用戶權限控制,所以只能去調節最小用戶提交作業數量。YARN有做用戶控制,直接給Hive配置上權限就可以了。
c) 配置Hive,Impala,Solr,Hue中打開Sentry服務功能
1) 跑到Hive,Impala,Solr,Hue中打開Sentry功能
2) 注意:確保hive service2上配置了允許時限制修改的功能。
注意:可在Hue上進行Sentry的權限配置,但必須確保Hue上配置的用戶和組的對應關系和服務器上的用戶和組的對應關系一致。
d) 添加對應的服務的用戶組到Sentry服務的系統組中
3.設置Shell權限
a) 需要通過Root權限登陸
b) linux用戶權限配置命令:
1) 查看用戶當前的組:id test
2) 添加用戶:useradd –d /usr/test -m test
3) 添加組:groupadd test
4) 賦權用戶組usermod -G hive test
4.hue中配置權限
a) 在Hue進行用戶和組的對應關系設置
1) 進行用戶管理菜單界面
2) 菜單界面功能
a) user:用於新增和修改用戶(此處可配置用戶和組的關系)
b) Groups:用於新增和修改組(此處可配置用戶和組的關系,組和Permissions的關系)
c) Permissions是Hue的菜單權限(可配置對應Hue菜單功能和組的對應關系)
此處需注意user及Groups必須在服務器上也具有對應關系。
b) 在Hue進行角色和組權限的關系設置
1) 進行Sentry配置菜單
2) 菜單界面功能:
-
-
-
-
- Borwse可瀏覽設置目前用戶的角色權限
-
-
-
a) 可模仿user瀏覽數據庫權限,以檢查權限設置准確性
b) 可在Privileges中直接配置角色,組和權限的關系。
2. Roles可用於配置角色和組的對應關系
a) 可直接配置角色和權限的關系
b) 可直接配置角色和組的關系