centos7 기준입니다.

ranger-admin이 설치된 환경입니다.

 

ranger-admin 설치:

https://developer-woong.tistory.com/96

 

ranger) ranger 2.4.0 admin 설치

centos7 기준입니다. ranger-admin 2.4.0 버전을 설치해보도록 하겠습니다. 사전에 postgreSQL, solr, jdk8이 설치되어있고, ranger 소스 빌드가 완료된 것을 가정합니다. 저의 환경에서는 mast02서버에 postgreSQL, m

developer-woong.tistory.com

 

저의 환경에선 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을 추가합니다.

 

감사합니다.

반응형

+ Recent posts