IT기술/BigData

00 RHEL 5 에 Hadoop 환경 구축하기

dobbby 2014. 2. 11. 09:46
반응형

아래  매뉴얼은  RHEL  5  버전이  설치된  4  개의  노드를  사용하여  Hadoop  운영  환경을  구축하는  매뉴얼입니다.


먼저  4개의  서버에  RHEL 5  를  설치하면  됩니다.

참고로  이  매뉴얼에서는  아래와  같은  내용으로  설치했습니다.

* CPU - Intel i7 2.9 GHZ (4 core)

* RAM - 200 MB (1  노드당)

*HDD - 10GB (1  노드당)


(  리눅스  설치시  파티션  내역은  아래와  같습니다

/ ---------  전부

swap ---- 512 MB


* ip : Vmware  에서  NAT  로  설치  -> IP  확인하여  고정  설정하였습니다.

/etc/hosts  파일에  아래와  같이  설정하고  neat  로  eth0  에  각  IP  를  직접  지정했습니다.


192.168.239.141          hadoop1

192.168.239.142          hadoop2

192.168.239.143          hadoop3

192.168.239.144          hadoop4


당연히  각자의  IP  에  맞는  것을  사용하세요


Step 1. hadoop  설치  및  관리용  계정을  생성합니다.

(아래  작업을  4개의  서버  모두  동일하게  수행하세요)

[root@hadoop1 ~]# groupadd hgroup

[root@hadoop1 ~]# useradd -g hgroup   huser

[root@hadoop1 ~]# passwd huser


Step 2. huser  로  로그인  하여  설치용  hadoop  프로그램을  다운로드  받습니다.

[root@hadoop1 ~]# su - huser

[huser@hadoop1~]$  wget  http://archive.apache.org/dist/hadoop/core/hadoop-1.0.3/hadoop-1.0.3.tar.gz 


Step  3.  hadoop  은  java  가  반드시  필요하므로  아래와  같이  자바가  설치되어  있는  지  확인  후 

버전이  낮거나  설치가  안되어  있을  경우  jdk를  다운로드  받아서  설치합니다. 

권장  jdk  버전은  1.6  이상입니다.

[huser@hadoop1 ~]$ su -

[root@hadoop1 ~]# java -version

java version "1.4.2"


위  내용을  보면  1.4  버전이  설치되어  있습니다.

이  것을  1.7  버전으로  교체  하겠습니다.


아래 주소로 접속하여 

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


아래 파일 다운로드 한 후

 Linux x86 132.98 MB     jdk-7u51-linux-i586.tar.gz


다운로드가  완료된  설치  파일을  WinSCP 등을 이용하여 /usr/local  디렉토리로  복사  한  후에  파일의  실행권한을  부여하고 설치를  시작합니다.


[root@hadoop1 ~]# cd /home/huser

[root@hadoop1 huser]# ls

hadoop-1.0.3.tar.gz      jdk-7u40-linux-i586.tar.gz

[root@hadoop1 huser]# cp jdk-7u51-linux-i586.tar.gz /usr/local/

[root@hadoop1 huser]# cd /usr/local

[root@hadoop1 local]# chmod 755 jdk-7u40-linux-i586.tar.gz

[root@hadoop1 local]# tar xvzf jdk-7u40-linux-i586.tar.gz


위와  같이  정상적으로  설치는  완료되었지만  기존  설치된  자바를  사용하기  때문에  자바  설치경로를  변경해주어야  합니다.


[root@hadoop1 local]# pwd

/usr/local

[root@hadoop1 local]# ln -s jdk1.7.0_33/   java

그  후에  huser  의  환경설정  파일에  자바  경로를  아래의  내용으로  추가합니다.

[root@hadoop1 local]# vi /home/huser/.bash_profile

(기존  내용은  그대로  두고  아래의  내용을  추가하세요)

export    JAVA_HOME=/usr/local/java

export    PATH=$PATH:$JAVA_HOME/bin

export    CLASS_PATH="."

:wq!

[root@hadoop1 local]# /usr/sbin/alternatives --install /usr/bin/java java /usr/local/java/bin/java 2

[root@hadoop1 local]# /usr/sbin/alternatives --config   java

There are 2 programs which provide 'java'.

Selection     Command

-----------------------------------------------*+ 1            /usr/lib/jvm/jre-1.4.2-gcj/bin/java  <--  현재  기본값입니다.

2            /usr/local/java/bin/java  <--  이  파일로  변경하겠습니다.

Enter to keep the current selection[+], or type selection number: 2 

[root@hadoop1 local]#

[root@hadoop1 local]# java -version

java version "1.7.0_33"

Java(TM) SE Runtime Environment (build 1.6.0_33-b04)

Java HotSpot(TM) Client VM (build 20.8-b03, mixed mode, sharing)

정상적으로  변경된  것이  확인됩니다.

나머지  3개의  서버에도  아래와  같이  jdk  를  설치  하고  환경설정을  변경해  주세요. 


작업의  편리성을  위해  4  개의  서버  모두  /etc/hosts  파일에  아래의  내용을  등록합니다.

[root@hadoop1 local]# vi /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1                localhost.localdomain localhost

192.168.239.141          hadoop1

192.168.239.142          hadoop2

192.168.239.143          hadoop3

192.168.239.144          hadoop4

:wq!


[root@hadoop1 local]# pwd

/usr/local

[root@hadoop1 local]# ls jdk*

jdk1.6.0_33      jdk-7u51-linux-i586.tar.gz

[root@hadoop1 local]# scp jdk-7u51-linux-i586.tar.gz hadoop2:/usr/local/

root@hadoop2's password:

jdk -6u33-linux-i586.bin                                     100%    68MB   13.7MB/s    00:05

[root@hadoop1 local]# scp jdk-7u51-linux-i586.tar.gz hadoop3:/usr/local/

root@hadoop3's password:

jdk -6u33-linux-i586.bin                                     100%    68MB   22.8MB/s    00:03

[root@hadoop1 local]# scp jdk-7u51-linux-i586.tar.gz hadoop4:/usr/local/

root@hadoop4's password:

jdk -6u33-linux-i586.bin                                     100%    68MB   34.2MB/s    00:02



Step 4. 4  개의  서버들끼리  huser  로  ssh  접속  시  암호를  묻지  않게  설정합니다.

hadoop  을  운영하다  보면  huser  계정으로  4개의  서버에  수시로  접속을  해야  합니다. 


그때마다  암호를  묻게  되면  문제가  되기  때문에  서로  암호를  묻지  않도록  설정을  해야  합니다.

아래의  과정대로  해  보세요.

[root@hadoop1 local]# su - huser

[huser@hadoop1 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/huser/.ssh/id_rsa): 엔터

Enter passphrase (empty for no passphrase):  엔터

Enter same passphrase again:  엔터

Your identification has been saved in /home/huser/.ssh/id_rsa.

Your public key has been saved in /home/huser/.ssh/id_rsa.pub.

The key fingerprint is:

67:91:2e:d2:12:de:4a:73:e7:80:28:c8:59:22:2b:78 huser@hadoop1

[huser@hadoop1 bin]$ ssh-copy-id -i /home/huser/.ssh/id_rsa.pub   huser@hadoop1

27

huser@hadoop1's password:  암호를  입력하세요

Now try logging into the machine, with "ssh 'huser@hadoop1'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[huser@hadoop1 ~]$ ssh-copy-id -i /home/huser/.ssh/id_rsa.pub   huser@hadoop2

27

The authenticity of host 'hadoop2 (192.168.239.142)' can't be established.

RSA key fingerprint is 89:b5:d1:ee:f2:9f:7f:91:e6:91:f5:f0:d5:0c:dc:57.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'hadoop2,192.168.239.142' (RSA) to the list of known hosts.

huser@hadoop2's password:  암호를  입력하세요

Now try logging into the machine, with "ssh 'huser@hadoop2'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[huser@hadoop1 ~]$ ssh hadoop2

[huser@hadoop2 ~]$   <----  암호  없이  잘  접속되는  것이  확인됩니다.   

[huser@hadoop1 ~]$ ssh-copy-id -i /home/huser/.ssh/id_rsa.pub   huser@hadoop3

27

huser@hadoop3's password:  암호를  입력하세요.

Now try logging into the machine, with "ssh 'huser@hadoop3'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[huser@hadoop1 ~]$ ssh-copy-id -i /home/huser/.ssh/id_rsa.pub   huser@hadoop4

27

huser@hadoop4's password:  암호를  입력하세요

Now try logging into the machine, with "ssh 'huser@hadoop4'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[huser@hadoop1 ~]$

이  작업을  나머지  서버에도  동일하게  수행해야  됩니다.

즉  모든  노드들끼리  huser  계정으로  접속할  때  암호를  묻지  않도록  해야  합니다.

여기  까지  작업이  완료  되었으면  하둡  설치를  위한  기본  작업들이  모두  완료가  되었습니다.

이제  hadoop1  서버에서  처음에  다운로드를  받았던  hadoop  설치파일을  설치하겠습니다.



Step 5. Hadoop  설치하기  (hadoop 1  에서  작업합니다)


[huser@hadoop1 ~]$ pwd

/home/huser

[huser@hadoop1 ~]$ ls

hadoop-1.0.3.tar.gz   jdk -6u33-linux-i586.bin

아래와  같이  설치  파일의  압축을  풉니다.

[huser@hadoop1 ~]$ tar zxvf hadoop-1.0.3.tar.gz

(지면  관계상  압축이  풀리는  과정은  생략합니다) 

압축이  풀이면  아래와  같이  hadoop-1.0.3  이라는  디렉토리가  생성된  것이  확인됩니다.

[huser@hadoop1 ~]$ ls

hadoop-1.0.3  hadoop-1.0.3.tar.gz   jdk-6u33-linux-i586.bin

[huser@hadoop1 ~]$

[huser@hadoop1 ~]$ ln -s hadoop-1.0.3   hadoop




step 5.  아래와  같이  몇가지  환경설정  파일을  변경합니다.

아래에서  수정하는  환경설정  파일은  hadoop  파일의  압축이  풀린  디렉토리  아래에  conf  디렉토리에  있습니다.

[huser@hadoop1 ~]$ ls

hadoop         hadoop-1.0.3.tar.gz   huser@hadoop3   jdk-6u33-linux-i586.bin

hadoop-1.0.3  huser@hadoop2         huser@hadoop4

[huser@hadoop1 ~]$ cd hadoop-1.0.3/conf

[huser@hadoop1 conf ]$ ls -l

total 76

-rw-r --r -- 1 huser hgroup 7457 May   9   2012 capacity-scheduler.xml

-rw-r --r -- 1 huser hgroup   535 May   9   2012 configuration.xsl

-rw-r --r -- 1 huser hgroup   178 May   9   2012 core-site.xml

-rw-r --r -- 1 huser hgroup   327 May   9   2012 fair-scheduler.xml

-rw-r --r -- 1 huser hgroup 2237 May   9   2012 hadoop-env.sh

-rw-r --r -- 1 huser hgroup 1488 May   9   2012 hadoop-metrics2.properties

-rw-r --r -- 1 huser hgroup 4644 May   9   2012 hadoop-policy.xml

-rw-r --r -- 1 huser hgroup   178 May   9   2012 hdfs-site.xml

-rw-r --r -- 1 huser hgroup 4441 May   9   2012 log4j.properties

-rw-r --r -- 1 huser hgroup 2033 May   9   2012 mapred-queue-acls.xml

-rw-r --r -- 1 huser hgroup   178 May   9   2012 mapred-site.xml

-rw-r --r -- 1 huser hgroup    10 May   9   2012 masters

-rw-r --r -- 1 huser hgroup    10 May   9   2012 slaves

-rw-r --r -- 1 huser hgroup 1243 May   9   2012 ssl-client.xml.example

-rw-r --r -- 1 huser hgroup 1195 May   9   2012 ssl-server.xml.example

-rw-r --r -- 1 huser hgroup   382 May   9   2012 taskcontroller.cfg

위와  같이  다양한  파일을  사용해서  hadoop  실행환경을  구성할  수  있습니다.

여기서는  반드시  필요한  파일과  항목들만  변경하겠습니다.

- hadoop-env.sh

이  파일은  hadoop  을  실행  할  때  사용하는  shell  script  들이  공통적으로  사용하는  jdk  경로, 


Class  경로  ,  각종  데몬들의  실행  옵션  등이  저장되는  환경  설정  파일입니다. 

이  파일을  열어서  아래의  항목을  수정합니다.

[huser@hadoop1 conf ]$ pwd

/home/huser/hadoop-1.0.3/conf

[huser@hadoop1 conf ]$ vi hadoop-env.sh

export JAVA_HOME=/usr/local/java   <----  이  내용을  추가합니다.

:wq!

[huser@hadoop1 conf ]$ vi masters

hadoop2

:wq!

[huser@hadoop1 conf ]$ vi slaves

hadoop2

hadoop3

hadoop4

:wq!

[huser@hadoop1 conf]$ vi core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop1:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/huser/hadoop-data/</value>

</property>

</configuration>

:wq!

[huser@hadoop1 conf]$ vi hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.http.address</name>

<value>hadoop1:50070</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>hadoop2:50090</value>

</property>

</configuration>

:wq!

[huser@hadoop1 conf]$ vi mapred-site.xml  <--  잡트래커/태스크  트래커  관련  설정입니다

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hadoop1:9001</value>

</property>

</configuration>

:wq!




step 6:  데이터  노드로  hadoop  복사하기

위  작업까지  마무리  한  후  hadoop1  서버의  hadoop  디렉터리를  압축해서  나머지  데이터  노드

(hadoop2, hadoop3, hadoop4  로  복사를  해서  압축을  풉니다)

[huser@hadoop1 ~]$ cd

[huser@hadoop1 ~]$ tar    cvfz hadoop.tar.gz    hadoop-1.0.3

[huser@hadoop1 ~]$ ls

hadoop   hadoop-1.0.3   hadoop-1.0.3.tar.gz   hadoop.tar.gz

[huser@hadoop1 ~]$ scp hadoop.tar.gz huser@hadoop2:~/

hadoop.tar.gz                                              100%    60MB   19.9MB/s    00:03

[huser@hadoop1 ~]$ scp hadoop.tar.gz huser@hadoop3:~/

hadoop.tar.gz                                               100%    60MB   29.8MB/s    00:02

[huser@hadoop1 ~]$ scp hadoop.tar.gz huser@hadoop4:~/

hadoop.tar.gz                                              100%    60MB   29.8MB/s    00:02

[huser@hadoop1 ~]$ ssh hadoop2 "cd ~; tar zxvf hadoop.tar.gz; rm hadoop.tar.gz"

[huser@hadoop1 ~]$ ssh hadoop3 "cd ~; tar zxvf hadoop.tar.gz; rm hadoop.tar.gz"

[huser@hadoop1 ~]$ ssh hadoop4 "cd ~; tar zxvf hadoop.tar.gz; rm hadoop.tar.gz"




step 7:  네임노드  포맷  후  하둡  실행하기

네임노드(hadoop1)  에서  아래와  같이  작업을  수행합니다.

[huser@hadoop1 ~]$ cd    hadoop-1.0.3/bin

[huser@hadoop1 bin]$ ./hadoop namenode -format

13/08/26 01:02:16 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:    host = hadoop1/192.168.239.141

STARTUP_MSG:    args = [-format]

STARTUP_MSG:    version = 1.0.3

STARTUP_MSG:    build  =  https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 

-r 1335192; compiled by 'hortonfo' on Tue May   8 20:31:25 UTC 2012

************************************************************/

13/08/26 01:02:17 INFO util.GSet: VM type        = 32-bit

13/08/26 01:02:17 INFO util.GSet: 2% max memory = 19.33375 MB

13/08/26 01:02:17 INFO util.GSet: capacity       = 2^22 = 4194304 entries

13/08/26 01:02:17 INFO util.GSet: recommended=4194304, actual=4194304

13/08/26 01:02:18 INFO namenode.FSNamesystem: fsOwner=huser

13/08/26 01:02:18 INFO namenode.FSNamesystem: supergroup=supergroup

13/08/26 01:02:18 INFO namenode.FSNamesystem: isPermissionEnabled=true

13/08/26 01:02:18 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100

13/08/26  01:02:18  INFO  namenode.FSNamesystem:  isAccessTokenEnabled=false 

accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)

13/08/26 01:02:18 INFO namenode.NameNode: Caching file names occuring more than 10 times

13/08/26 01:02:18 INFO common.Storage: Image file of size 111 saved in 0 seconds.

13/08/26  01:02:18  INFO  common.Storage:  Storage  directory  /home/huser/hadoop-data/dfs/name 

has been successfully formatted.

13/08/26 01:02:18 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at hadoop1/192.168.239.141

************************************************************/

위와  같이  에러없이  포맷작업이  끝나면  모든  준비가  다  된  것입니다.


아래와  같이  하둡  관련  데몬들을  실행시키는  스크립트를  실행합니다.

[huser@hadoop1 bin]$ ./start-all.sh

starting  namenode,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser namenode-hadoop1.out

hadoop4:  starting  datanode,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser datanode-hadoop4.out

hadoop3:  starting  datanode,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser datanode-hadoop3.out

hadoop2:  starting  datanode,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser datanode-hadoop2.out

hadoop2:  starting  secondarynamenode,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser -secondarynamenode-hadoop2.out

starting  jobtracker,  logging  to  /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser -jobtracker hadoop1.out

hadoop4: starting tasktracker, logging to /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser tasktracker -hadoop4.out

hadoop2: starting tasktracker, logging to /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser tasktracker -hadoop2.out

hadoop3: starting tasktracker, logging to /home/huser/hadoop-1.0.3/libexec/../logs/hadoop-huser tasktracker -hadoop3.out

[huser@hadoop1 bin]$

위와  같이  에러  없이  잘  수행  된  후  아래와  같이  jps  명령을  이용해  수행중인  데몬들을  확인하면 됩니다. 

name node  에서는  마지막  namenode  가  보여야  합니다.

[huser@hadoop1 bin]$ jps

11854 JobT racker

11972 Jps

11676 NameNode 

데이터노드(hadoop2, hadoop3, hadoop4)  에서는  아래와  같이  조회가  되어야  합니다.

[huser@hadoop2 conf ]$ jps

10047 Jps

9855 SecondaryNameNode

9749 DataNode

9965 TaskTracker

[huser@hadoop3 conf ]$ jps

8895 TaskTracker

8977 Jps

8782 DataNode

[huser@hadoop3 conf ]$

[huser@hadoop4 conf ]$ jps

8741 TaskTracker

8824 Jps

8628 DataNode

만약  중단하고  싶으면  동일한  디렉토리에서  ./stop-all.sh  를  수행하면  됩니다.

만약  위  과정에서  hadoop2,3,4  에서  datanode  가  안  보인다면 

안보이는  노드에서 

[huser@hadoop2 ~]$ cd hadoop-1.0.3/bin

[huser@hadoop2 bin]$ hadoop   datanode   명령을  수동으로  실행시켜서  에러  메세지를  확인합니다.



만약  에러  메시지가  아래와  같이  namespaceid  가  다르다고  나오면  아래와  같이  조치하세요.

[huser@hadoop2 ~]$ cd hadoop-1.0.3/bin

[huser@hadoop2 bin]$ ./hadoop datanode &

[1] 4365

[huser@hadoop2 bin]$ 14/02/05 01:57:40 INFO datanode.DataNode:  STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting DataNode

STARTUP_MSG:    host = hadoop2/192.168.47.148

STARTUP_MSG:    args = []

STARTUP_MSG:    version = 1.0.3

STARTUP_MSG:    build  =  https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 

-r 1335192; compiled by 'hortonfo' on Tue May   8 20:31:25 UTC 2012  

************************************************************/

14/02/05 01:57:40 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties

14/02/05  01:57:40  INFO  impl.MetricsSourceAdapter:  MBean  for  source  MetricsSystem,sub=Stats 

registered.

14/02/05 01:57:40 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).

14/02/05 01:57:40 INFO impl.MetricsSystemImpl: DataNode metrics system started

14/02/05 01:57:40 INFO impl.MetricsSourceAdapter: MBean for source ugi registered.

14/02/05  01:57:41  ERROR  datanode.DataNode:  java.io.IOException:  Incompatible 

namespaceIDs  in  /home/huser/hadoop-data/dfs/data:  namenode  namespaceID  =  94412489; 

datanode namespaceID = 1358422661

at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232

(  중간내용은  생략합니다  )

14/02/05 01:57:41 INFO datanode.DataNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down DataNode at hadoop2/192.168.47.148

************************************************************/


아래와  같이  조치하세요.

step 1.hadoop1  에서  기준이  될  namenode의  namespaceid  를  확인합니다.

[huser@hadoop1 current]$ pwd

/home/huser/hadoop-data/dfs/name/current

[huser@hadoop1 current]$ ls

edits   fsimage   fstime   VERSION

[huser@hadoop1 current]$ vi VERSION

#Wed Feb 05 02:10:10 KST 2014

namespaceID=94412489  <--  기준이  될  ID  입니다.

cTime=0

storageType=NAME_NODE

layoutVersion=-32


Step 2. datanode  가  시작이  안되는  노드로  갑니다.

(여기서는  hadoop2,3,4  로  가정합니다) 

[huser@hadoop2 current]$ pwd

/home/huser/hadoop-data/dfs/data/current

[huser@hadoop2 current]$ ls

dncp_block_verification.log.curr   VERSION

[huser@hadoop2 current]$ vi VERSION

#Wed Feb 05 02:10:11 KST 2014

namespaceID=94412489  <--  이  숫자를  위  Step 1  에서  확인한  기준과  동일하게  변경하세요

storageID=DS-1842946380-192.168.47.148-50010-1391528646896

cTime=0

storageType=DATA_NODE

layoutVersion=-32

:wq!


Step 3.  나머지  노드  모두  동일하게  변경한  후  hadoop1  에서  다시  시작하면  됩니다.

정상적으로  모든  서비스와  데몬이  시작이  되었다면  아래와  같이  간단하게  테스트를  해  보겠습니다.


*  예제  데이터로  테스트하기

Hadoop  을  설치하면  테스트를  할  수  있는  데이터를  패키지로  제공을  합니다.

가장  많이  사용되는  예제가  단어  수를  세는  예제인  wordcount  입니다.


이  예제를  실행해서  하둡이  정상적으로  설치되었는지  확인  해  보겠습니다.

[huser@hadoop1 hadoop-1.0.3]$ pwd

/home/huser/hadoop-1.0.3 

[huser@hadoop1  hadoop-1.0.3]$  ./bin/hadoop  fs  -put   ./conf/hadoop-env.sh   ./conf/hadoopenv.sh

[huser@hadoop1 hadoop-1.0.3]$ ./bin/hadoop jar hadoop-examples-1.0.3.jar wordcount ./conf/hadoop-env.sh wc_output

위작업을  수행할  때  프로세스를  보니  jobtracker  가  작동중인  것이  확인됩니다.

작업이  마치면  아래와  같이  결과를  조회하면  됩니다.


아래  결과는  conf/hadoop-env.sh  파일에  어떤  글자가  몇  개  있는지  보여줍니다.

[huser@hadoop1 hadoop-1.0.3]$ ./bin/hadoop fs -cat wc_output/part-r -00000


이상으로  RHEL5  환경에서  4  노드를  활용한  하둡  구축을  마치겠습니다. 




반응형