Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[CDH] CDH4 설치 Computer & Program

CDH를 설치해보려고 다들 고생.. 컴터도 남겠다 나도 설치해봤다. 근데 난 몇가지 부분만 빼면 잘 설치가 된다. -ㅅ-;;;; 그 몇가지 걸림돌을 까먹지 않기 위해 기록..
하나씩 새로운게 생길 때 마다 추가할 계획인데 안 생겼음 좋겠다 TㅅT


1. hosts 파일
CDH가 설치될 각 서버들은 서로가 서로를 알아볼 수 있도록 /etc/hosts 파일에 IP와 hostname을 적어준다. (모든 서버에 추가해 주어야 한다.) 이는 CDH뿐만 아니라 apache hadoop과 HDFS에서도 마찬가지이다. (IP를 사용하기 보다는 이름을 사용하는걸 선호하는듯..) 그리고 자신의 hostname도 적어준다. single이라고 localhost가 사용되면, 나중에 다른 서버가 추가되면 기존 서버를 못 찾을 수 있다.
$ cat /etc/hosts
127.0.0.1 localhost
# CDH
10.20.4.65      host1
10.20.4.63      host2
...
$


2. 암호 없이 sudo 사용
Cloudera Manager를 사용해서 설치하는 경우, sudo 명령을 사용할 때 암호 없이 사용할 수 있도록 설정해 주자. Cloudera Manager는 CDH 서버들을 관리할 수 있는 툴인데, 이걸 통해서 설치하면 웹UI를 통해서 간단하게 설치 및 설정 관리를 할 수 있어 편하다. (단, 무료 버전인 경우 관리 가능 서버가 50대로 제한이 있다.)

Cloudera Manager를 통해서 CDH를 설치를 하게 되면, 각 서버에 CDH를 설치하고 그 위에 hadoop, HDFS, ZooKeeper, hive 등의 모듈을 rpm, apt-get 등을 통해서 설치하게 된다. 때문에 Cloudera Manager가 rpm, apt-get 등을 사용할 수 있는 sudo 권한의 사용자 계정을 요구한다. 그리고 그 계정은 매번 sudo 커맨드를 실행하기 위해 비밀번호를 넣지 않도록 설정되어 있어야 한다.

비밀번호 없이 sudo를 사용하도록 설정하는 방법은 여기에 정리했으니 참조..


3. HDFS 권한 설정
운영체제의 파일 권한 말고 HDFS에도 파일 권한이 존재한다. 아마도 여러 사용자가 올린 경우를 대비한듯.. 헌데 HDFS의 "/user" 경로가 hdfs 사용자에 supergroup 그룹으로 되어 있다. 때문에 홈경로(/user/username) 아래에 파일을 생성할 수가 없다.
$ hadoop fs -ls /
Found 3 items
drwxr-xr-x - hbase hbase 0 2012-12-05 17:02 /hbase
drwxrwxrwt - hdfs hdfs 0 2012-12-04 17:20 /tmp
drwxr-xr-x - hdfs supergroup 0 2012-12-07 10:49 /user
$ hadoop fs -mkdir test
mkdir: Permission denied: user=username, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

대처 방법은 2가지 정도가 있다. hdfs 사용자로 폴더를 생성해서 chown으로 권한을 넘겨주거나, HDFS의 권한 체크 자체를 하지 않도록 설정하는 방법이다. HDFS를 여럿이 사용하고 있으며, 권한이 중요한 경우는 chown으로 폴더 각각을 설정해 주는 것이 좋겠다.

supergroup을 구글링해봤는데, 내가 원하는 설명이 적힌 자료를 못 찾겠다. Apache hadoop을 쓸 때는 계정 1개로 사용해서 별로 못 느꼈는데, hdfs라는 계정이 HDFS를 관리하게 되니 뭔가 어렵다.

3.1. chown으로 폴더 권한 설정
sudo를 이용해서 hdfs 사용자 권한으로 홈폴더를 생성하고 권한을 넘겨준다.
$ sudo -u hdfs hadoop fs -mkdir /user/username
$ hadoop fs -ls /user
Found 3 items
drwxr-xr-x - hdfs supergroup 0 2012-12-04 17:55 /user/beeswax
drwxrwxrwx - mapred hadoop 0 2012-12-05 13:52 /user/history
drwxr-xr-x - hdfs supergroup 0 2012-12-07 10:52 /user/username

$ sudo -u hdfs hadoop fs -chown username /user/username
$ hadoop fs -ls /user
Found 3 items
drwxr-xr-x - hdfs supergroup 0 2012-12-04 17:55 /user/beeswax
drwxrwxrwx - mapred hadoop 0 2012-12-05 13:52 /user/history
drwxr-xr-x - username supergroup 0 2012-12-07 10:52 /user/username

$ hadoop fs -mkdir test
$ hadoop fs -ls
Found 1 items
drwxr-xr-x - username supergroup 0 2012-12-07 10:53 test

$ hadoop fs -ls /user/username
Found 1 items
drwxr-xr-x - username supergroup 0 2012-12-07 10:53 /user/username/test

3.2. HDFS의 권한 체크 사용 안 함
HDFS자체 설정으로 권한 상관 없이 아무나 파일을 사용할 수 있도록 설정할 수 있다. Cloudera Manager에서 hdfs 서비스를 선택하면 아래와 같은 화면을 볼 수 있다. "Configuration"을 선택하고, 왼쪽 검색 영역에 "dfs.permission" 등을 검색하면 "Check DFS Permissions" 항목을 볼 수 있다. 체크를 빼서 권한 체크를 하지 않도록 설정을 저장하고, 서비스를 다시 시작시키면 반영된다.

GUI가 추가되면서 참 쉬워졌죠잉~?? GUI가 없은 경우는 hdfs-site.xml 파일에 다음을 설정해 주면 된다. 파일에 dfs.permissions 설정이 없으면 그냥 추가해 준다. dfs.permissions는 default가 true 이다.
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

3.3. Hue로 사용자 폴더 생성
CDH에 설치되는 서비스 중 Hue가 있다. Hue는 GUI로 CDH에 설치된 모듈들을 컨트롤 할 수 있는 모듈이다. CDH를 설치하고 Hue를 설치했다면 아래 주소로 접속하면 Hue의 HDFS 파일 관리 화면이 보일 것이다.
http://<hostname>:8888/filebrowser/

처음 접속했다면 Hue에서 사용할 사용자 등록 화면이 보일 것이다. (처음 접속하면 문구를 자세히 보자 로그인 화면이 아니라 사용자 등록 화면이다.) 사용자를 등록하고 filebrowser를 보면 아래처럼 폴더를 보고 생성/수정/삭제 등 여러 동작을 할 수 있다. hadoop fs 명령을 이렇게 간단히 할 수 있으니 좋다. Hue에 대한 보다 자세한 내용은 Hue 2 User Guide를 참고하자.


4. pig config 설정
pig를 설치한 다음 config 경로를 export해준다. MR에 따라 config 경로가 다르다.

4.1. MRv1 인 경우
export PIG_CONF_DIR=/usr/lib/pig/conf
$ pig
grunt>

4.2. YARN(MRv2, NextGen MR)
$ export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
$ pig
grunt>


- 참고
CDH4 Installation
Configuring Network Names
Hue 2 User Guide
Pig Installation

덧글

댓글 입력 영역

Google AdSense (text/image)