centos7 기준입니다.
ranger-admin이 설치된 환경입니다.
ranger-admin 설치:
https://developer-woong.tistory.com/96
저의 환경에선 mast02,mast03서버가 리소스매니저, mast02서버가 ranger-admin입니다.
1. ranger-2.4.0-yarn-plugin.tar.gz 압축 해제
action server: mast02,mast03
user: root
pwd: -
cmd:
# 기존 ranger 빌드가 완료되어 해당 파일이 존재함을 가정합니다.
cp /opt/apps/ranger/target/ranger-2.4.0-yarn-plugin.tar.gz /opt/apps/ranger-2.4.0-yarn-plugin.tar.gz
# 압축해제 및 권한 부여
cd /opt/apps
tar xvfz ranger-2.4.0-yarn-plugin.tar.gz
chown -R hadoop:hadoop ./ranger-2.4.0-yarn-plugin
su - hadoop
cd /opt/apps/ranger-2.4.0-yarn-plugin
2. enable, disable 스크립트 수정
* root가 아닌 hadoop 계정으로 설치하고, policy cache, conf등의 경로를 직접 설정하는 과정입니다.
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
# hdfs-plugin을 root 계정이 아닌 hadoop 계정으로 설치하기위해 아래와 같이 수정합니다.
vi enable-yarn-plugin.sh
if [ ! -w /etc/passwd ]
then
echo "ERROR: $0 script should be run as root."
# exit 1 <-- 해당 부분 주석 처리
fi
# vi 화면에서 esc를 누른 후 해당 명령을 실행하고 y로 문자열을 변경해줍니다.
:%s?/etc/${PROJ_NAME}?/opt/apps/ranger-2.4.0-yarn-plugin/etc/${PROJ_NAME}?c
# disable-yarn-plugin.sh 역시 위와 같은 과정으로 수정합니다.
3. install.properties 수정
action server: mast02,mast03
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
vi install.properties
POLICY_MGR_URL=http://mast02:6080
REPOSITORY_NAME=yarn-policy
COMPONENT_INSTALL_DIR_NAME=/opt/apps/hadoop-3.3.5
XAAUDIT.SUMMARY.ENABLE=true
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://mast02:8983/solr/ranger_audits
XAAUDIT.SOLR.USER=hadoop
XAAUDIT.SOLR.ZOOKEEPER=mast01:2181,mast02:2181,mast03:2181/solr-cloud
XAAUDIT.SOLR.FILE_SPOOL_DIR=/opt/apps/ranger-2.4.0-yarn-plugin/spool
CUSTOM_USER=hadoop
CUSTOM_GROUP=hadoop
mkdir spool
4. 필요 라이브러리 이동
action server: mast02,mast03
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
# 플러그인 활성화에 필요한 라이브러리들을 추가로 복사해줍니다.
cp commons-logging-1.1.3.jar /opt/apps/ranger-2.4.0-yarn-plugin/install/lib/
cp commons-lang3-3.7.jar /opt/apps/ranger-2.4.0-yarn-plugin/install/lib/
cp htrace-core4-4.1.0-incubating.jar /opt/apps/ranger-2.4.0-yarn-plugin/install/lib/
cp commons-compress-1.18.jar /opt/apps/ranger-2.4.0-yarn-plugin/install/lib/
5. 플러그인 활성화
action server: mast02,mast03
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
./enable-yarn-plugin.sh
6. ranger service 생성
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
Service Name *: yarn-policy |
Display Name : yarn-policy |
Username : hadoop |
Password : hadoop (linux 계정 비밀번호) |
Namenode URL : http://mast02:38088,http://mast03:38088 |
Add New Configurations |
- tag.download.auth.users : hadoop |
- policy.download.auth.users : hadoop |
- policy.grantrevoke.auth.users : hadoop |
7. yarn 재시작
action server: mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
/opt/apps/hadoop-3.3.5/sbin/stop-yarn.sh
/opt/apps/hadoop-3.3.5/sbin/start-yarn.sh
mast02:6080 (ranger UI) 내 Audit -> Plugin Status에 플러그인이 연동되었는지 확인합니다.
8. policy 생성
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
ranger UI 메인 화면 -> 생성한 hadoop-policy 클릭 -> 우측 상단 Add New Policy 클릭하여 생성 화면으로 진입합니다.
1. 정책 이름을 설정합니다.
2. 기존 정책들을 Override할 것인지 체크합니다.
3. 접근을 제어할 Yarn의 큐입니다. * 표시는 전체 큐에 대해 접근을 제어하겠다는 의미입니다.
4. 접근 가능한 user입니다.
5. 해당 Role, Group, User가 어떤 엑세스에 접근할 수 있는 지 설정합니다.
6. 위 Allow Conditions, 즉, 허용된 Role, Group, User를 제외한 모든 엑세스를 거부한다는 뜻입니다.
7. 해당 사항을 저장합니다.
9. policy 다운로드 확인
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
mast02:6080 (ranger UI) 내 Audit -> Plugin Status에 플러그인이 변경 혹은 생성된 정책을 다운로드 받았는지 알 수 있습니다. 변경 직후, 느낌표가 뜨게 되며, 느낌표가 사라지면, 다운로드가 완료되었다는 뜻입니다.
10. 접근제어 적용확인
action server: mast02,mast03
user: hadoop
pwd: /opt/apps/ranger-2.4.0-yarn-plugin
cmd:
# hadoop 유저이므로 모든 큐에 대한 엑세스가 통과됩니다.
/opt/apps/spark-3.2.3/bin/pyspark --master yarn --queue test
# hadoop 이외 유저는 모든 큐에 대해 권한이 없습니다.
su - admin
/opt/apps/spark-3.2.3/bin/pyspark --master yarn --queue test
만약 admin이라는 유저도 YARN queue에 접근 가능하게끔하려면, 8. policy 생성 내
USER에 admin을 추가합니다.
감사합니다.
'BigData > Ranger' 카테고리의 다른 글
ranger) ranger hive plugin 연동 (8) | 2024.03.20 |
---|---|
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.jaxrs.JacksonJsonProvider (0) | 2024.03.20 |
ranger) ranger hdfs plugin 연동 (0) | 2024.03.20 |
ranger 설치, 플러그인 연동 링크 모음 (0) | 2024.03.15 |
ranger) ranger-usersync 연동 주기 (0) | 2024.03.15 |