## 참고사항 ##
빅데이터나 하둡 관련 전문가가 아니기 때문에 일부 부족한 내용이 있을 수 있습니다.
셋팅과 기본적인 사용 외에, 하둡과 관련 생태계 운영의 트러블 슈팅은 잘 모릅니다.
오픈소스 특성상 직접 조사하고 해결해야 하는 부분이 많습니다. 기본 셋팅 관련해서 참고만 부탁 드립니다.
이전 포스팅에서 HDP Sandbox에 대한 간략한 소개와 Docker 셋팅에 필요한 파일 다운로드를 진행했다.
그리고 HDP Sandbox 3.0.1 버전에 대한 설치와 Amabari 로그인하는 것도 진행했다.
2.6.5 버전과 다르게 아래와 같은 파일 업로드와 폴더 생성 같은 작업을 할 때 권한 문제가 발생한다.
- Ambari의 File View에서 파일 업로드와 폴더 생성
- sandbox-hdp 컨테이너 내부에서 root 계정으로 파일 업로드
이러한 경우 HDP Sandbox에서 제공하는 Ranger를 통해 계정에 대한 권한을 부여하면 해결 가능하다.
## 주의사항 ##
지정된 hdfs 계정이 아닌 다른 계정에 전체 폴더에 대한 작업 권한이 부여되는 것은, 정보보안의 권한 통제 원칙에 어긋난다.
로컬 환경에서 테스트를 하는 목적이므로 권한을 부여하지만, 실제 서비스 환경에서는 권한 변경 없이 해결할 수 있는 방법을 최대한 찾아야 한다.
Ranger 접속과 admin 비밀번호 변경
Ranger는 Hadoop 생태계의 계정과 권한을 관리하는 시스템이다.
Hadoop 생태계는 대부분 동물 이름으로 구성되어 있는데, Ranger는 보안관이라는 의미로 계정 보안을 담당한다고 이해하면 좋다.
Ranger 접속
Ambari에 접속하고 좌측의 Ranger를 클릭한다. 그리고 우측 Quick Links의 Ranger Admin UI를 클릭한다.
또는 아래 URL로 접속할 수 있다.
http://sandbox-hdp.hortonworks.com:6080/
접속하면 아래와 같이 Ranger 접속 화면이 나타난다. admin 계정으로 접속한다. (admin / hortonworks1)
Ranger의 admin 비밀번호 변경
admin 계정의 비밀번호는 Hortonworks에서 기본 셋팅한 상태이기 때문에 가급적 변경하는 것이 좋다.
Ranger 초기 화면에서 우측 상단의 admin을 클릭하고 Profile을 선택한다.
상단의 Change Password를 클릭하고 원하는 비밀번호로 변경한다.
Ambari의 Ranger 설정 변경
Ambari의 Ranger에서 Admin 계정 설정에 변경한 비밀번호로 수정하지 않으면 우측 상단의 종 모양의 아이콘에 오류 메시지가 표시된다.
Ambari의 Ranger에서 상단의 CONFIGS 탭을 선택하고, ADVANCED를 클릭한다.
스크롤을 내려서 Advanced ranger-env 항목의 펼침 메뉴를 클릭한다.
Ranger Admin user's password 항목에 변경한 패스워드를 입력하고 하단의 SAVE 버튼을 클릭한다.
변경 이력은 수정하지 않고 SAVE 버튼을 클릭한다.
기존 설정 중 확인해야 하는 내용이 출력된다. 일단 PROCEED ANYWAY를 눌러 진행한다.
RANGER의 우측 상단에 ACTIONS를 클릭하고 Restart All을 클릭한다.
RANGER 서비스가 재시작 된다.
우측 상단에 오류 메시지가 출력되는 경우가 발생할 수 있다.
아래 명령으로 sandbox-hdp 컨테이너를 재시작하면 모든 서비스가 재시작 되면서 자연스럽게 사라진다.
$ docker stop sandbox-hdp
$ docker start sandbox-hdp
서비스 시작 과정에 약 5~10분 정도 소요되므로 인내심을 가질 필요가 있다.
HDP Sandbox 3.0.1의 admin 계정 HDFS 권한 추가
admin 계정의 루트 경로 작업 불가
HDP Sandbox 3.0.1은 2.6.5 버전과 달리 admin 계정에 hdfs 전체 권한이 부여되지 않아 admin 계정 소유의 폴더인 /user/admin 에서만 작업이 가능하다.
실제로 루트 경로에 데이터 폴더를 생성하려고 하면 다음과 같이 오류가 발생한다.
실제 오류 로그를 확인해보면 admin 계정은 HDFS의 루트 경로에 대한 권한이 없다고 나온다.
HDFS의 루트 경로는 hdfs 계정 소유로 확인된다.
HDP Sandbox의 Ranger를 통해 계정에 대한 권한을 부여하면 해결 가능하다.
admin 계정을 hdfs, hadoop 그룹에 추가
Ranger 메인 화면에서 상단의 Settings의 Users/Groups를 클릭한다.
admin을 클릭한다.
하단의 Group 옆에 있는 연필 모양의 아이콘을 클릭한다.
hadoop과 hdfs를 선택하고 v 버튼을 클릭하고, Save 버튼을 눌러 저장한다.
Groups에 hadoop과 hdfs가 추가 된 것을 확인할 수 있다.
HDFS 서비스에 admin 계정 등록
admin 계정을 HDFS 서비스에 등록해야 한다.
Ranger 메인 화면에서 HDFS의 Sandbox_hadoop 옆의 수정 버튼을 클릭한다.
all - path의 가장 우측의 수정 버튼을 클릭한다.
스크롤을 내려서 Allow Conditions : 항목의 Select User에서 admin 계정을 추가한다.
Save 버튼을 눌러 설정을 저장한다.
권한 적용 여부 확인
Amabri에서 admin 계정으로 접속하고 루트 경로에 test 폴더를 생성하면 정상적으로 생성 된다.
계정 소유자가 admin인 것을 확인할 수 있다.
HDP Sandbox 3.0.1의 root 계정 HDFS 권한 추가
root 계정의 파일 업로드 작업 불가
HDP Sandbox 3.0.1은 2.6.5 버전과 달리 root 계정에 hdfs 전체 권한이 부여되지 않아 root 계정 소유의 폴더인 /user/root 에서만 작업이 가능하다.
실제로 루트 경로에 데이터 폴더를 생성하려고 하면 다음과 같이 오류가 발생한다.
실제 오류 로그를 확인해보면 admin 계정은 HDFS의 루트 경로에 대한 권한이 없다고 나온다.
HDFS의 루트 경로는 hdfs 계정 소유로 확인된다.
HDP Sandbox의 Ranger를 통해 계정에 대한 권한을 부여하면 해결 가능하다.
root 계정 생성과 hdfs, hadoop 그룹에 추가
Ranger 메인 화면에서 상단의 Settings의 Users/Groups를 클릭한다.
Add New User를 클릭한다.
Username에 root를 입력하고 비밀번호를 설정한다. Role은 Admin으로 설정한다.
Group 우측의 + 버튼을 클릭하고 hdfs와 hadoop을 선택한다.
Save 버튼을 눌러 계정 생성을 완료한다.
HDFS 서비스에 root 계정 등록
root 계정을 HDFS 서비스에 등록한다.
HDP Sandbox 3.0.1의 root 계정 HDFS 권한 추가 의 HDFS 서비스에 admin 계정 등록 방법과 동일하게 진행한다.
권한 적용 여부 확인
sandbox-hdp 컨테이너의 쉘에 로그인하고, 루트 경로에 파일을 업로드하면 정상적으로 진행된다.
소유자는 root로 확인된다.
admin 계정과 root 계정에 대해 hdfs 권한이 부여되었으므로, Ambari의 File View에서 이름 변경, 삭제 등의 작업도 정상적으로 진행된다.
HDFS에 업로드한 파일과 폴더 소유자 변경
HDFS에 업로드한 폴더의 소유자 변경 불가
HDFS에 업로드한 데이터가 root 계정인데, admin 계정으로 변경하고자 하는 경우 아래와 같이 오류가 발생한다.
root 계정이 super user가 아니어서 발생하는 문제이다.
작업 계정을 hdfs로 변경하여 소유자 변경 시도
아래와 같이 sandbox-hdp 컨테이너에서 작업 계정을 hdfs로 변경하면 가능하다.
소유자 변경 결과 확인
업로드한 폴더의 소유자가 admin으로 변경된 것을 확인할 수 있다.
'::: 데이터 분석 :::' 카테고리의 다른 글
HDP Sandbox에서 Superset 사용하기 (0) | 2021.10.18 |
---|---|
HDP Sandbox 3.0.1 사용 관련 참고 사항 (0) | 2021.10.14 |
HDP Sandbox 3.0.1 Docker 이미지로 Ambari 로그인하기 (0) | 2021.10.07 |
설정 변경하여 배포한 HDP Sandbox의 Docker 이미지 사용 (0) | 2021.10.04 |
배포한 HDP Sandbox Docker 이미지 사용을 위한 스크립트 작성 (0) | 2021.09.30 |