yarn application -list -appStates RUNNING
yarn application -kill application_1730000000000_12345
세 부류다. 애플리케이션을 제출한 본인, YARN 관리자, 그리고 해당 큐의 관리 권한을 가진 사용자다.
권한은 다음 설정이 정한다.
| 설정 | 위치 | 의미 |
|---|---|---|
yarn.acl.enable |
yarn-site.xml | ACL 사용 여부. false 면 사실상 제한 없음 |
yarn.admin.acl |
yarn-site.xml | 클러스터 관리자 목록. 사용자 공백 그룹 형식 |
yarn.scheduler.capacity.<queue>.acl_administer_queue |
capacity-scheduler.xml | 그 큐의 잡을 관리(종료 포함)할 수 있는 사용자·그룹 |
mapreduce.job.acl-modify-job |
잡 제출 시 | 그 잡을 수정·종료할 수 있는 사용자 |
<property>
<name>yarn.admin.acl</name>
<value>yarn,hdfs hadoop-admin</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.batch.acl_administer_queue</name>
<value>batch_admin batch-ops</value>
</property>
값의 형식은 사용자목록<공백>그룹목록 이다. 공백 하나가 구분자이므로 그룹만 지정하려면 앞에 공백을 둔다. * 는 모두 허용, 빈 값은 모두 거부다.
운영에서 필요한 상황은 대개 두 가지다. 잘못 제출된 대형 잡이 큐를 점유한 경우와, 종료된 사용자의 잡이 남은 경우다.
가장 깔끔한 방법은 운영 담당자 그룹을 만들어 해당 큐의 acl_administer_queue 에 넣는 것이다. 클러스터 전체 관리자 권한(yarn.admin.acl)을 남발하지 않는다.
Kerberos 클러스터라면 유효한 티켓이 있어야 한다. ACL 을 통과해도 인증이 없으면 명령 자체가 실패한다.
kinit ops_user@EXAMPLE.COM
yarn application -kill application_1730000000000_12345
ResourceManager UI 에서도 종료할 수 있지만, UI 접근 인증(SPNEGO 등)이 켜져 있어야 사용자 신원이 전달된다. 인증이 없으면 UI 는 dr.who 로 동작해 권한이 없다.