centos7 기준입니다.

ranger-admin 2.4.0 버전을 설치해보도록 하겠습니다.

 

사전에 postgreSQL, solr, jdk8이 설치되어있고, ranger 소스 빌드가 완료된 것을 가정합니다.

저의 환경에서는 mast02서버에 postgreSQL, mast01,mast02,mast03서버에 solr cloud모드로 실행중입니다.

 

postgreSQL 설치

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

 

PostgreSQL 11 오프라인 설치

centos7 기준입니다. 준비 파일입니다. libicu-50.2-4.el7_7.x86_64.rpm postgresql11-libs-11.15-1PGDG.rhel7.x86_64.rpm postgresql11-11.15-1PGDG.rhel7.x86_64.rpm postgresql11-server-11.15-1PGDG.rhel7.x86_64.rpm 위 파일들을 /root경로에 업로

developer-woong.tistory.com

 

 

jdk8 설치

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

 

centos linux java 환경변수설정

centos7 기준입니다. jdk8 버전 다운로드 후 /opt/apps/라는 디렉토리에 압축파일을 업로드 하였습니다. 추후 진행입니다. 1. 압축 해제 및 폴더명 변경 tar xvfz /opt/apps/[jdk8 TAR.GZ] mv /opt/apps/[압축해제된

developer-woong.tistory.com

 

solr 설치

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

 

solr) Solr 8.11.2 설치

centos7 기준입니다. zookeeper가 설치되었음을 가정합니다. (mast01,mast02,mast03) https://developer-woong.tistory.com/39 Zookeeper 설치 centos7 기준입니다. mast01~03 3대의 서버에 주키퍼를 설치하겠습니다. 계정은 hado

developer-woong.tistory.com

 

 

ranger 빌드

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

 

ranger) Apache Ranger 2.4.0 빌드

centos7 기준입니다. 호스트명이 mast02인 서버에서 진행하였습니다. ranger 설치 전 환경에 맞게 우선 빌드해보도록 하겠습니다. jdk8, maven 3.6.3, python 3.6.8 이 설치되어있음을 가정합니다. jdk8 설치 http

developer-woong.tistory.com

 

 

0. 구축 환경

    - postgreSQL: mast02:14325

    - solr: mast01,mast02,mast03:8983

    - ranger-admin: mast02 설치 진행, 실행 계정은 hadoop

    - ranger 소스 빌드 파일: mast02 서버 내 위치

 

 

 

1. 사전준비 (PostgreSQL DB 생성)

action server: mast02

user: postgres

pwd: -

cmd:

# pg 콘솔 접속
psql -p 14325

# ranger 유저 및 DB 생성
create user ranger password 'ranger';
create database ranger owner ranger;
grant all privileges on database ranger to ranger;

 

 

2. 사전준비 (solr collection생성)

action server: mast02

user: root

pwd: -

cmd:

* 이전 설치한 solr cloud에서 ranger가 사용할 컬렉션을 생성합니다.

* 저의 환경에서는 solr가 바라보는 zk_hosts가 mast01:2181,mast02:2181,mast03:2181/solr-cloud로 

* solr-cloud라는 이름의 znode가 존재하는 환경입니다.

* 이 znode에 ranger가 사용할 solr 컬렉션의 config파일을 올리고, solr ui내에서 컬렉션을 생성하겠습니다.

# ranger용 컬렉션 폴더를 생성합니다.
mkdir /opt/apps/solr-8.11.2/ranger_audits_conf

# 이전 포스팅에서 mast02서버에서 ranger 소스를 빌드하였습니다. 빌드 폴더 내 파일이 존재합니다.
# ranger-2.4.0-solr_audit_conf.tar.gz 파일을 해당 경로에 위치시킵니다.
cp /opt/apps/ranger/target/ranger-2.4.0-solr_audit_conf.tar.gz /opt/apps/solr-8.11.2/ranger_audits_conf

# 권한 부여 후 계정 전환합니다.
chown -R hadoop:hadoop /opt/apps/solr-8.11.2
su - hadoop
cd /opt/apps/solr-8.11.2/ranger_audits_conf

# 압축 해제
tar xvfz ranger-2.4.0-solr_audit_conf.tar.gz

# 기존 압축 파일 삭제
rm -f ranger-2.4.0-solr_audit_conf.tar.gz

# config 폴더를 solr-cloud znode에 추가
/opt/apps/solr-8.11.2/server/scripts/cloud-scripts/zkcli.sh \
	-cmd upconfig \
	-zkhost mast01:2181,mast02:2181,mast03:2181/solr-cloud \
	-confname ranger_audits \
	-confdir /opt/apps/solr-8.11.2/ranger_audits_conf

 

정상적으로 config 폴더가 업로드되었을 시 solr ui에서 인식합니다. mast01,mast02,mast03:8983

혹은 zookeeper cli를 통해 확인할 수 있습니다. /opt/apps/zookeeper-3.5.10/bin/zkCli.sh -> ls /solr-cloud/configs

 

3. 사전준비 (solr collection생성 2)

action server: mast02

user: hadoop

pwd: /opt/apps/solr-8.11.2/ranger_audits_conf

cmd:

solr cloud중 한 서버의 ui로 들어갑니다.

mast01:8983 or mast02:8983 or mast03:8983

우측 Collections -> Add Collection 클릭 후 다음과 같이 생성하였습니다.

(zookeeper, solr가 3대여서 복제 생성 및 저장하였습니다.)

 

4. ranger-admin 파일 압축 해제

action server: mast02

user: root

pwd: /opt/apps/

cmd:

# ranger-admin파일 역시 ranger 소스를 빌드한 폴더 내 존재합니다.
# mast02서버에서 ranger 소스를 빌드하였습니다.
cp /opt/apps/ranger/target/ranger-2.4.0-admin.tar.gz /opt/apps/
cd /opt/apps

# 압축 해제 및 권한 부여
tar xvfz ranger-2.4.0-admin.tar.gz
chown -R hadoop:hadoop ./ranger-2.4.0-admin/

# 계정 전환 및 경로 이동
su - hadoop
cd /opt/apps/ranger-2.4.0-admin/

 

 

5. ranger-admin 설정파일 수정 및 파일, 폴더 생성

action server: mast02

user: hadoop

pwd: /opt/apps/ranger-2.4.0-admin

cmd:

# 아래 값 수정
vi install.properties

PYTHON_COMMAND_INVOKER=python2
DB_FLAVOR=POSTGRES
SQL_CONNECTOR_JAR=/opt/apps/ranger-2.4.0-admin/postgresql-42.2.6.jar
db_root_user=postgres
db_root_password=postgres
db_host=mast02:14325
db_name=ranger
db_user=ranger
db_password=ranger

audit_solr_urls=http://mast02:8983/solr/ranger_audits
audit_solr_password=
audit_solr_zookeepers=mast01:2181,mast02:2181,mast03:2181/solr-cloud
audit_solr_collection_name=ranger_audits

audit_solr_config_name=ranger_audits
audit_solr_configset_location=
audit_solr_no_shards=3
audit_solr_no_replica=3
# ranger admin 웹 UI
policymgr_external_url=http://mast02:6080

unix_user=hadoop
unix_user_pwd=hadoop
unix_group=hadoop

hadoop_conf=/opt/apps/hadoop-3.3.5/etc/hadoop
RANGER_PID_DIR_PATH=/opt/apps/ranger-2.4.0-admin/pids

# 저장

# 위 설정 값대로 파일 복사
cp postgresql-42.2.6.jar /opt/apps/ranger-2.4.0-admin

# pid폴더 생성
mkdir /opt/apps/ranger-2.4.0-admin/pids

 

 

6. ranger-admin setup

action server: mast02

user: hadoop

pwd: /opt/apps/ranger-2.4.0-admin

cmd:

./setup.sh

* 기본적으로 ranger 설치 시 /etc/init.d에 등록하려고합니다.

* 해당 가이드에서는 ranger admin을 hadoop 계정으로 실행시키기 위해 hadoop 계정으로 설치하였으며

* 위 명령어 실행 시, 여러 에러가 나오지만 대부분 /etc/init.d 등록 등 root권한이 없기때문에 발생하는 에러입니다.

* root로 설치 시 ranger-admin이라는 변수가 환경변수로 등록됩니다.

* 재차 말씀드리지만 본 가이드에서는 hadoop계정으로 ranger admin을 실행시킬 것 이기떄문에 hadoop 계정으로 설치합니다.

 

setup 완료 확인

ll

 

# table 생성 확인
su - postgres
psql -p 14325
\c ranger
\dt

 

 

7. ranger-admin 설정 파일 추가

action server: mast02

user: hadoop

pwd: /opt/apps/ranger-2.4.0-admin

cmd:

# ranger-admin 로그 시간대를 설정합니다.
vi conf/ranger-admin-env-timezone.sh
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Seoul"

# 실행권한을 부여합니다.
chmod +x conf/ranger-admin-env-timezone.sh

 

 

8. ranger-admin 실행

action server: mast02

user: hadoop

pwd: /opt/apps/ranger-2.4.0-admin

cmd:

/opt/apps/ranger-2.4.0-admin/ews/ranger-admin-services.sh start

 

 

mast02:6080 접속 확인 (admin/admin)

 

다음 포스팅에서 ranger-usersync를 연동해보도록 하겠습니다.

감사합니다.

반응형

+ Recent posts