本文介紹如何將YARN集成至Ranger,以及如何配置權限。
背景信息
前提條件
已創建EMR-5.11.0之前版本、EMR-3.45.0之前版本,且選擇了Ranger服務的集群,創建集群詳情請參見創建集群。
EMR-5.11.0及后續版本、EMR-3.45.0及后續版本,Ranger Usersync會根據集群是否安裝OpenLDAP自動對接LDAP,您可以在Ranger服務的配置頁簽,搜索ranger.usersync.sync.source配置項,查看當前Ranger Usersync的用戶來源(unix或ldap)。
使用限制
YARN必須使用Capacity Scheduler調度器,開啟ACL權限,并確保沒有非必要的授權,詳情請參見YARN調度器和YARN高安全特性使用指南。
須確認以下信息:
YARN服務的yarn-site.xml中已配置
yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
。YARN ACL功能總開關已開啟(即
yarn.acl.enable=true
)。在YARN服務的capacity-scheduler.xml中,確認Capacity Scheduler調度器的配置
yarn.scheduler.capacity.root.acl_submit_applications=
(配置值為單個空格)和yarn.scheduler.capacity.root.acl_administer_queue= hadoop
(hadoop
前有單個空格),表示所有隊列默認將隊列管理權限授權給hadoop組。確認除了上述root隊列ACL配置外沒有其他
acl_submit_applications
或者acl_administer_queue
配置,避免YARN ACL影響Ranger鑒權預期結果。
操作步驟
進入集群服務頁面。
單擊目標集群操作列的集群服務。
Ranger啟用YARN。
在集群服務頁面,單擊Ranger-plugin服務區域的狀態。
在服務概述區域,打開enableYARN開關。
在彈出的對話框中,單擊確定。
重啟YARN ResourceManager。
在集群服務頁面,選擇
。在YARN集群服務的狀態頁面,單擊ResourceManager操作列的重啟。
在彈出的對話框中,輸入執行原因,單擊確定。
在確認對話框中,單擊確定。
權限配置示例
Ranger啟用YARN后,已默認添加好了YARN Service。您可以使用YARN Service,授予emr-user用戶的隊列管理權限。
進入Ranger UI頁面,詳情請參見Ranger概述。
在Ranger UI頁面,單擊配置好的emr-yarn。
單擊右上角的Add New Policy。
根據您的實際需求配置相關參數。
參數
說明
Policy Name
策略名稱,可以自定義。Queue
隊列名稱。例如root.default。
recursive
子隊列是否繼承該權限。
Select Group
指定添加此策略的用戶組。Select User
指定添加此策略的用戶。例如,emr-user。
Permissions
選擇授予的權限。例如,admin-queue。
單擊Add。
添加Policy后,實現對emr-user的授權。emr-user用戶可以向root.default隊列提交作業。
說明 添加、刪除或修改Policy后,需要等待約一分鐘至授權生效。