출처 : 국가생물자원정보관리센터 (KOBIC ) - 조수안 연구원

Hadoop Installation Guide

Rockscluster 기반하에서 설명된 메뉴얼임을 알림.>

(# - > root, $ -> hadoop )

* 설치를 시작하기전에 JDK1.5 이상 System에 설치되어 있어야 함.

Step1) 계정 생성

# useradd hadoop(hadoop 계정을 생성해 준다)

# passwd hadoop(hadoop 계정의 password를 설정한다)

# rocks-user-sync(frontend와 노드간의 sync를 맞춰준다.

이작업을 하면 frontend에서 노드로 비번없이 접근이 가능함)

Step2) Hadoop System 폴더 생성

# mkdir /data/hadoop/hdfs(Hadoop관련 디렉토리를 생성한다.

(hdfs이후로는 절대 폴더를 생성하지 않아야함)

# chown -R hadoop.hadoop /data(폴더에 hadoop권한을 준다)

Step3) Hadoop Download

$ wget http://ftp.apache-kr.org/lucene/hadoop/hadoop-$version.tar.gz

(hadoop 홈폴더 안에 Download)

$ tar zxvf hadoop-$version.tar.gz(압축을 품)

$ cd hadoop-$version(압축 푼 폴더로 이동)

$ ant package(설치 command)

Step4) 설정파일 편집

$ vi ./conf/hadoop-env.sh

: 아래와 같이 JAVA_HOME 경로, slaves 설정 파일 경로를 편집합니다.

HADOOP_HOME 은 실제로 hadoop이 설치된 경로를 설정합니다.

export JAVA_HOME=/usr/java/jdk_$version

export HADOOP_HOME=/home/hadoop/HADOOP

export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves

export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

$ vi conf/hadoop-site.xml(붉은 부분이 실제 자신의 환경에 맞게 편집할 부분임)

fs.default.name

clustome.kobic.re.kr:9000

The name of the default file system. Either the literal string

"local" or a host:port for NDFS.

mapred.job.tracker

clustome.kobic.re.kr:9001

The host and port that the MapReduce job tracker runs at. If

"local", then jobs are run in-process as a single map and

reduce task.

mapred.map.tasks

4

define mapred.map tasks to be number of slave hosts

mapred.reduce.tasks

1

define mapred.reduce tasks to be number of slave hosts

dfs.name.dir

/data/hadoop/hdfs/name

dfs.data.dir

/data/hadoop/hdfs/data

mapred.system.dir

/data/hadoop/hdfs/mapreduce/system

mapred.local.dir

/data/hadoop/hdfs/mapreduce/local

dfs.replication

2

$ vi conf/slaves(실제 slave노드들의 호스트 네임을 적어놓는다)

c0-1

c0-2

c0-3

.

.

.

Step5) 방화벽 설정

# vi /etc/sysconfig/iptables (Master Node)

-A INPUT -m state --state NEW -p tcp --dport 9000 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 9001 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50010 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50030 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50040 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50050 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50060 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50070 -j ACCEPT

# /etc/init.d/iptables restart

# vi /etc/sysconfig/iptables(Slave Node)

-A INPUT -m state --state NEW -p tcp --dport 50010 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50040 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50050 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 50060 -j ACCEPT

# /etc/init.d/iptables restart

Step6) ssh key 생성

* Rocks 시스템의 경우 rocks-user-sync만 해주면 됨.

* 일반 리눅스 시스템일 경우엔 기존 ssh key 설정 방법과 같음.

Step7) NameNode Format

$ ./bin/hadoop namenode -format(해당 command를 실행 후 y를 누르면 포맷이 완료됨.)

Step8) 데몬 실행

$ ./bin/start-all.sh(마스터와 슬레이브의 모든 데몬을 한꺼번에 실행)

Step9) 실행 확인

* 웹브라우져에서 다음의 주소로 확인한다.

ex) http://clustome.kobic.re.kr:50030 (Hadoop Map/Reduce Administration)

ex) http://clustome.kobic.re.kr:50070 (Data Node Information)

Hadoop Operation Guide

○ Hadoop Startup

* Hadoop cluster를 시작하기 위해서는 HDFS와 Map-Reduce cluster를 구동시켜야 한다.

$ bin/hadoop namenode -format(새로운 분산파일시스템 포맷)

$ bin/start-dfs.sh(HDFS 구동(NameNode))

* bin/start-dfs.sh script 파일은 ${HADOOP_CONF_DIR}/slaves 파일에 리스팅 되어있는 모든

노드의 DataNode 데몬을 구동시킨다.

$ bin/start-mapred.sh(Map-Reduce 구동(JobTracker))

* bin/start-mapred.sh script 파일은 ${HADOOP_CONF_DIR}/slaves 파일에 리스팅 되어있는 모든

노드의 TaskTracker 데몬을 구동시킨다.

Hadoop Shutdown

$ bin/stop-dfs.sh(HDFS 중지(NameNode)

* bin/stop-dfs.sh script 파일은 ${HADOOP_CONF_DIR}/slaves 파일에 리스팅 되어있는 모든

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

노드의 DataNode 데몬을 중지시킨다.

$ bin/stop-mapred.sh(Map-Reduce 중지(JobTracker))

* bin/stop-mapred.sh script 파일은 ${HADOOP_CONF_DIR}/slaves 파일에 리스팅 되어있는 모든

노드의 TaskTracker 데몬을 중지시킨다.

★ 위의 모든 작업을 해주는 스크립트가 ./bin/start-all.sh 와 ./bin/stop-all.sh 이다.

Hadoop FSShell Usage

* Usage: java FsShell

[-fs ]

[-conf ]

[-D <[property=value>]

[-ls ]

[-lsr ]

[-du ]

[-dus ]

[-mv ]

[-cp ]

[-rm ]

[-rmr ]

[-expunge]

[-put ]

[-copyFromLocal ]

[-moveFromLocal ]

[-get [-crc] ]

[-getmerge [addnl]]

[-cat ]

[-copyToLocal [-crc] ]

[-moveTo!Local [-crc] ]

[-mkdir ]

[-setrep [-R] ]

○ Hadoop FSShell Example

* jar 파일 실행

[hadoop@clustome HADOOP]$ bin/hadoop jar hadoop-bioliterext.jar medline_2000 medline_2000_result

- hadoop-bioliterext.jar 파일은 파라미터로 input_dir 과 output_dir 을 받는다.

여기서는 medline_2000 이 input_dir, medline_2000_result 가 output_dir 이다.

* 리눅스 ls 명령 실행

[hadoop@clustome HADOOP]$ bin/hadoop dfs -ls

* 리눅스 로컬 데이터를 분산파일시스템으로 복사

[hadoop@clustome HADOOP]$ bin/hadoop dfs -copyFromLocal sample dfs_sample

- sample 이라는 디렉토리를 HDFS(Hadoop Distributed File System)의 dfs_sample 이라는

디렉토리로 복사하는 명령

* 분산파일시스템의 데이터를 로컬 디스크로 복사

[hadoop@clustome HADOOP]$ bin/hadoop dfs -copyToLocal dfs_sample sample

- dfs_sample 이라는 HDFS(Hadoop Distributed File System)의 디렉토리를 로컬 디스크의

sample로 복사하라는 명령

===================================

===================================

======= Fuse installing =============

====================================

리눅스 시스템으로 마운팅해서 일반 리눅스에서 사용하기

hdfs 를 리눅스 파일시스템으로 마운트 시키기 위해 준비해야 할 것은 다음과 같다

Fuse-Hadoop Installation Guide

<Hadoop 0.16.2 Version / Fuse-2.7.3 / Fuse-j-hadoopfs / Fuse-j-2.4를 기준으로 작성된 매뉴얼이며 Rockscluster 기반하에서 설명된 메뉴얼임을 알림.>

(# - > root, $ -> hadoop )

* 설치를 시작하기전에 JDK1.5 이상 System에 설치되어 있어야 함.

* 모든 설치가 끝난 후 마운트 전엔 반드시 Hadoop Demon이 올라와 있어야 함.

Step1) 설치파일 다운

$ mkdir /$Hadoop_Home/fuse

$ cd fuse

$ wget http://jaist.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.3.tar.gz

-> Fuse-2.7.3

$ wget http://jaist.dl.sourceforge.net/sourceforge/fuse-j/fuse-j-2.4-prerelease1.tar.gz

-> Fuse-j-2.4

$ wget http://issues.apache.org/jira/secure/attachment/12371549/fuse-j-hadoopfs-03.tar.gz

->Fuse-j-hadoopfs

Step2) Fuse-2.7.3 설치

$ tar xvfz fuse-2.7.3(압축을 푼다.)

$ cd fuse-2.7.3(해당 패키지 폴더로 이동)

# ./configure(환경설정 및 make 파일 체크)

# make(반드시 root로 해야함. 이유는 /usr/local/lib 와 /usr/local/include에 관련 파일을 쓰기 때문)

# make install

# modprobe fuse

Step3) Fuse-j-2.4 설치

$ tar xvfz fuse-j-2.4(압축을 품)

$ cd fuse-j-2.4(해당 패키지 폴더로 이동)

$ vi build.conf(설정파일 편집)

- JDK_HOME=자신의 머신에 맞게 설정

- FUSE-HOME=자신의 머신에 맞게 설정

$ ant(빌드함)

$ make

Step4) Fuse-j-hadoopfs

$ tar xvfz fuse-j-hadoopfs(압축을 품)

$ cd fuse-j-hadoopfs(해당 패키지 폴더로 이동)

$ vi build.properties(설정파일 편집)

- JDK_HOME=/usr/java/jdk1.5.0_07(자바경로 설정)

- HADOOP_HOME=/home/hadoop/HADOOP(hadoop 경로설정)

- FUSE_HOME=/home/hadoop/fuse/(fuse 홈 설정)

- FUSE_J_HOME=/home/hadoop/fuse/fuse-j-2.4-prerelease1(fuse-j 홈 설정)

- FUSE_J_DOWNLOAD_URL=http://www.jaql.org/fuse-j/fuse-j.tar.gz

(fuse-j 다운로드 설정: 이 구문 설정을 해놓으면 fuse-j 가 없을 경우 자동으로 다운 받게 해줌.)

$ cp fuse-2.7.3/lib/.lib/libfuse.so.2 fuse-j-2.4/jni(해당 lib 복사)

$ ant compile -Dbuild-fuse-j-hadoopfs=1(컴파일 함)

# chown hadoop.hadoop /dev/fuse(hadoop관련 마운트 디바이스 파일을 hadoop 계정으로 줌)

$ ./hadoofs_fuse_mount.sh [마운트포인트]

(마운트 포인트는 / 및에 아무곳이라도 상관없다. 단, hadoop권한이 있어야 함.)

= 정말 수백번의 삽질 끝에 알아낸 설치 정보이다. 삽질결과 다음과 같은 정보를 뽑아낼 수 있었음.=

설치 후 리눅스 기본 명령어 테스트 결과 (cp, mkdir, scp ,rsync, rm, ls, vi... 등등) 잘 됨.

단, df 명령어를 하였을 경우 hadoop 파일시스템으로 마운트 된 정보는 나오질 않음

하지만 데이터가 실제로 들어가는지에 대한 확인 및 관리는 다음의 url로 확인이 가능함.

(http://clustome2.kobic.re.kr:50070)

remote 네트워크 파일 copy 수행 결과 평균 속도 30M ~ 35M를 유지하고 있으며 현재까진 안정적이다.

fuse-hadoop-0.1.0_fuse-j.2.4_hadoop.0.5.0 패키지를 이용하여 마운트를 하는 방법도 있지만

필자가 테스트 해본 결과 위의 방식이 가장 안정적이며 속도 또한 잘 나온다.

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
175 이통사 OpenAPI file 가을의 곰을... 2012.08.22 4175
174 포털 OpenAPI file 가을의 곰을... 2012.08.22 4099
173 공공기관 OpenAPI 가을의 곰을... 2012.08.22 3356
172 멀티부팅시 우분투 GRUB 복구하기.. file 가을의 곰을... 2012.08.21 6025
» Hadoop HDFS BASIC Usage Over View : 하둡 사용 개요 가을의 곰을... 2012.08.20 5378
170 HDFS 테스트 file 가을의 곰을... 2012.08.20 4560
169 클라우드 기반의 재해복구 시스템 (DRS system) 구축 분석에 대한 논문 가을의 곰을... 2012.08.20 4576
168 오픈 소스 클라우드 분석 file 가을의 곰을... 2012.08.20 3896
167 Visual studio 2010 에서 소스파일을 UTF-8 로 자동변환 file 가을의 곰을... 2012.08.19 3622
166 HTML5로 자신만의 3D 엔진을 만들자 file 가을의 곰을... 2012.07.29 8303
165 SQL 쿼리를 NoSQL인 MongoDB 쿼리로 변경하기 가을의 곰을... 2012.07.29 4249
164 GitHub 소개글 - 류광님 가을의 곰을... 2012.07.29 3523
163 GIT Server 구축 : LINUX UBUNTU, MS WIN file 가을의 곰을... 2012.07.28 5786
162 git 서버 설치 요령 file 가을의 곰을... 2012.07.28 4020
161 mongoDB와 PHP 참고자료 가을의 곰을... 2012.07.15 4845
160 MongoDB와 PHP 연동 가을의 곰을... 2012.07.15 4767
159 phpmyadmin과 비슷하게 mongoDB를 php 서버로 관리하기 위한 phpMoAdmin file 가을의 곰을... 2012.07.15 10935
158 Hadoop을 이용한 분산 데이터 처리, Part 3: 애플리케이션 개발 file 가을의 곰을... 2012.07.15 3577
157 Hadoop을 이용한 분산 데이터 처리, Part 2: 추가 주제 file 가을의 곰을... 2012.07.15 3979
156 Hadoop을 이용한 분산 데이터 처리, Part 1: 시작 file 가을의 곰을... 2012.07.15 4444
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED