아래와 같이

xxx.xxx.xxx.101

xxx.xxx.xxx.102

xxx.xxx.xxx.103

datanode에 분산 저장한것을 확인 할 수 있습니다.

 

명령어는

hdfs fsck [hdfs상의 파일 경로] -file -blocaks -locations 

 

DatanodeInfoWithStorage[xxx.xxx.xxx.101:50010,DS-df8b44f2-f13b-4379-97e0-5220191f7a8a,DISK] 에서

xxx.xxx.xxx.101 = ip주소

50010 = 포트번호

DS-df8b44f2-f13b-4379-97e0-5220191f7a8a = 저장소 ID. 데이터 노드의 내부 ID입니다. 데이터 노드가 이름 노드에 등록 할 때 할당됩니다.

DISK = storageType. 디스크. 저장소 유형은 RAM_DISK, SSD, DISK 및 ARCHIVE가 될 수 있습니다.

 

참고:

https://stackoverflow.com/questions/34497060/hdfs-fsck-command-output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[hadoop@master current]$ hdfs fsck input/test.txt -files -blocks -locations
Connecting to namenode via http://master:50070/fsck?ugi=hadoop&files=1&blocks=1&locations=1&path=%2Fuser%2Fhadoop%2Finput%2Ftest.txt
FSCK started by hadoop (auth:SIMPLE) from /192.168.0.35 for path /user/hadoop/input/test.txt at Wed May 15 09:32:40 KST 2019
/user/hadoop/input/test.txt 76 bytes, 1 block(s):  OK
0. BP-306908151-192.168.0.35-1557215026538:blk_1073742641_1819 len=76 repl=3 [DatanodeInfoWithStorage[xxx.xxx.xxx.102:50010,DS-7417b9d5-2b9a-4ef9-b8eb-afd2ee982a54,DISK], 
DatanodeInfoWithStorage[xxx.xxx.xxx.101:50010,DS-df8b44f2-f13b-4379-97e0-5220191f7a8a,DISK], 
DatanodeInfoWithStorage[xxx.xxx.xxx.103:50010,DS-b7ddf346-b5cd-44b7-8c31-dc051c4a7943,DISK]]
 
Status: HEALTHY
 Total size:    76 B
 Total dirs:    0
 Total files:   1
 Total symlinks:                0
 Total blocks (validated):      1 (avg. block size 76 B)
 Minimally replicated blocks:   1 (100.0 %)
 Over-replicated blocks:        0 (0.0 %)
 Under-replicated blocks:       0 (0.0 %)
 Mis-replicated blocks:         0 (0.0 %)
 Default replication factor:    3
 Average block replication:     3.0
 Corrupt blocks:                0
 Missing replicas:              0 (0.0 %)
 Number of data-nodes:          3
 Number of racks:               1
FSCK ended at Wed May 15 09:32:40 KST 2019 in 11 milliseconds
 
 
The filesystem under path '/user/hadoop/input/test.txt' is HEALTHY
h

하둡을 실행 하기 전에 namenode를 포멧 해야 한다.

1
[hadoop@master ~]$ hdfs namenode -format
 

하둡 실행 명령어 

1
[hadoop@master ~]$ start-all.sh
 

잘 실행됬는지 확인

[master서버]

1
2
3
4
5
[hadoop@master ~]$ jps
42274 NameNode
42787 ResourceManager
42555 SecondaryNameNode
49102 Jps
 

 

[slave 서버]

1
2
3
4
[hadoop@slave1 ~]$ jps
26948 NodeManager
26821 DataNode
31374 Jps
 

HDFS 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
[hadoop@master ~]$ hdfs dfsadmin -report
Configured Capacity: 112675270656 (104.94 GB)
Present Capacity: 96419569664 (89.80 GB)
DFS Remaining: 96407281664 (89.79 GB)
DFS Used: 12288000 (11.72 MB)
DFS Used%: 0.01%
Under replicated blocks: 4
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
 
-------------------------------------------------
Live datanodes (3):
 
Name: xxx.xxx.xxx.102:50010 (slave2)
Hostname: slave2
Decommission Status : Normal
Configured Capacity: 37558423552 (34.98 GB)
DFS Used: 4096000 (3.91 MB)
Non DFS Used: 5424627712 (5.05 GB)
DFS Remaining: 32129699840 (29.92 GB)
DFS Used%: 0.01%
DFS Remaining%: 85.55%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 09 15:46:40 KST 2019
 
 
Name: xxx.xxx.xxx.103:50010 (slave3)
Hostname: slave3
Decommission Status : Normal
Configured Capacity: 37558423552 (34.98 GB)
DFS Used: 4096000 (3.91 MB)
Non DFS Used: 5360566272 (4.99 GB)
DFS Remaining: 32193761280 (29.98 GB)
DFS Used%: 0.01%
DFS Remaining%: 85.72%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 09 15:46:41 KST 2019
 
 
Name: xxx.xxx.xxx.101:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 37558423552 (34.98 GB)
DFS Used: 4096000 (3.91 MB)
Non DFS Used: 5470507008 (5.09 GB)
DFS Remaining: 32083820544 (29.88 GB)
DFS Used%: 0.01%
DFS Remaining%: 85.42%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 09 15:46:40 KST 2019
 

 

 

웹 UI 확인


테스트

hdfs에 input 파일 경로를 만든다.

1
2
3
[hadoop@master ~]$ hdfs dfs -mkdir /user
[hadoop@master ~]$ hdfs dfs -mkdir /user/hadoop
[hadoop@master ~]$ hdfs dfs -mkdir /user/hadoop/input
 

/usr/local/hadoop 위치에 test.txt 파일을 만들고 파일에 다음과 같이 작성하고 저장한다.

1
2
3
4
hello Mr.smith
you look handsome
he look like Mr.smith
 

 

 

그리고 다음과 같은 명령어로 hdfs에 test.txt파일을 저장한다.

1
[hadoop@master hadoop]$ hdfs dfs -put test.txt /user/hadoop/input/
 

hdfs web ui에서 위 이미지와 같이 'Browse the file system'을 클릭하고 /user/hadoop/input 경로에 가보면

test.txt 파일이 저장되어있는것으 확인 할 수 있다.

 

이후 yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount input output 명령어로 test.txt 파일을 mapreduce wordcount하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
[hadoop@master hadoop]$ yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount input output
19/05/09 16:11:36 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/05/09 16:11:37 INFO client.RMProxy: Connecting to ResourceManager at master/xxx.xxx.xxx.35:8032
19/05/09 16:11:37 INFO input.FileInputFormat: Total input paths to process : 1
19/05/09 16:11:37 INFO mapreduce.JobSubmitter: number of splits:1
19/05/09 16:11:37 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1557362273260_0002
19/05/09 16:11:37 INFO impl.YarnClientImpl: Submitted application application_1557362273260_0002
19/05/09 16:11:37 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1557362273260_0002/
19/05/09 16:11:44 INFO mapreduce.Job:  map 0% reduce 0%
19/05/09 16:11:48 INFO mapreduce.Job:  map 100% reduce 0%
19/05/09 16:11:53 INFO mapreduce.Job:  map 100% reduce 100%
19/05/09 16:11:53 INFO mapreduce.Job: Counters: 49
        File System Counters
                FILE: Number of bytes read=98
                FILE: Number of bytes written=247351
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
                HDFS: Number of bytes read=186
                HDFS: Number of bytes written=60
                HDFS: Number of read operations=6
                HDFS: Number of large read operations=0
                HDFS: Number of write operations=2
        Job Counters
                Launched map tasks=1
                Launched reduce tasks=1
                Data-local map tasks=1
                Total time spent by all maps in occupied slots (ms)=4734
                Total time spent by all reduces in occupied slots (ms)=7605
                Total time spent by all map tasks (ms)=2367
                Total time spent by all reduce tasks (ms)=2535
                Total vcore-milliseconds taken by all map tasks=2367
                Total vcore-milliseconds taken by all reduce tasks=2535
                Total megabyte-milliseconds taken by all map tasks=3635712
                Total megabyte-milliseconds taken by all reduce tasks=7787520
        Map-Reduce Framework
                Map input records=4
                Map output records=12
                Map output bytes=124
                Map output materialized bytes=98
                Input split bytes=110
                Combine input records=12
                Combine output records=8
                Reduce input groups=8
                Reduce shuffle bytes=98
                Reduce input records=8
                Reduce output records=8
                Spilled Records=16
                Shuffled Maps =1
                Failed Shuffles=0
                Merged Map outputs=1
                GC time elapsed (ms)=96
                CPU time spent (ms)=1050
                Physical memory (bytes) snapshot=514449408
                Virtual memory (bytes) snapshot=7718776832
                Total committed heap usage (bytes)=686817280
        Shuffle Errors
                BAD_ID=0
                CONNECTION=0
                IO_ERROR=0
                WRONG_LENGTH=0
                WRONG_MAP=0
                WRONG_REDUCE=0
        File Input Format Counters
                Bytes Read=76
        File Output Format Counters
                Bytes Written=60
 

 

결과 확인

1
2
3
4
5
6
7
8
9
[hadoop@master hadoop]$ hdfs dfs -cat /user/hadoop/output/part-r-00000
handsome        2
he      1
hello   1
is      1
like    1
look    2
you     1
 
 

이 글부터는 master 서버에서 실행하는 포스팅입니다.

 

혹시 이 전의 글을 못보신 분을 위해 다음과 같이 하둡을 구축할 것입니다.

xxx.xxx.xxx.35 master

xxx.xxx.xxx.101 slave1

xxx.xxx.xxx.102 slave2

xxx.xxx.xxx.103 slave3

master 서버의 계정도 가상서버와 마찬가지로 'hadoop'이어야 한다.

1. hadoop 계정 생성 및 암호 설정

1
2
[root@master ~]# useradd hadoop
[root@master ~]# password hadoop
 

이 후 su hadoop 명령어로 hadoop 계정 접속

1
2
[root@master ~]# su hadoop
[hadoop@master root]$
 

 

2. ssh 키 생성

1
[hadoop@master ~]$ ssh-keygen -t rsa
 

위의 명령어를 내리면 비밀번호 설정하라고 나오는데 그냥 Enter를 쳐서 비밀번호 설정을 하지 않아야 한다.

비밀번호 설정시 머리 아픈 상황이 발생한다.

이젠 ssh 기본기 와 공개키가 만들어 졌다. ssh 공개키를 slave1,slave2,slave3에 복사해주어 slave서버로 접속할수 있도록 해보자.

 

 

3. ssh 공개키 복사 

1
[hadoop@master ~]$ ssh-copy-id -/home/master/.ssh/id_rsa.pub hadoop@slave1
 

위와 같은 명령어를 내리면 뭐라하면서 yes,no를 물어보는데 그 내용이 무엇이냐면 처음 접속하는 ip이니 기록을 남길 것인지 묻는 것이다. 그러니 yes라 대답한다.

이후 hadoop@slave1의 암호를 물을 텐데 가상서버의 계정 hadoop의 비밀번호를 입력하면 된다.

slave2,slave3에도 복사 해준다.

 

master에서 키를 생성하고 복사해 주었으니 마찬가지로 slave1,slave2,slave3에서 각각 ssh 키를 생성하고 ssh 공개키를 각 서버로 복사해 준다.

master ->> slave1,slave2,slave3

slave1 ->> master,slave2,slave3

slave2 ->> master,slave1,slave3

slave3 ->> master,slavr1,slave2

 

4. ssh 공개키 복사 작업을 완료 했으면 다음과 같은 명령어로 다른 서버들로 접속해보자.

1
2
3
[hadoop@master ~]$ ssh slave1
Last login: Thu May  9 09:36:11 2019 from master
[hadoop@slave1 ~]$
 

로그인이 되는것을 확인 할 수 있다.


5 .하둡 다운로드 후 압축풀기 & 소유자 변경 & 파일 이름 변경 

1
2
3
4
5
cd /usr/local
sudo wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
sudo tar -xzvf hadoop-2.7.6.tar.gz
sudo chown -R hadoop:hadoop /usr/local/hadoop-2.7.6
mv hadoop-2.7.6 hadoop
 
 

 

6. 하둡 환경 변수 설정

[sudo vi .bashrc]

1
2
3
4
5
6
7
8
9
10
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_PID_DIR=${HADOOP_HOME}/pids
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib/*
 

 

 

 

7. 하둡 설정

[vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh]

1
2
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
export HADOOP_HOME=/usr/local/hadoop
 
 

 

 

[vi /usr/local/hadoop/etc/hadoop/core-site.xml]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
        </property>
        <property>
                <name>dfs.permissions.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>master:2181,slave1:2181,slave2:2181</value>
        </property>
</configuration>
 
 

 

 

[vi /usr/local/hadoop/etc/hadoop/yarn-site.xml]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>8192</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocaion-mb</name>
                <value>8192</value>
        </property>
        <property>
                <name>yarn.scheduler.minimum-allocaion-mb</name>
                <value>1024</value>
        </property>
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
        </property>
</configuration>
 
 

 

 

[vi /usr/local/hadoop/etc/hadoop/mapred-site]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<configuration>
        <property>
                <name>mapreduce.jobtracker.address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.resource.mb</name>
                <value>1024</value>
        </property>
        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>1536</value>
        </property>
        <property>
                <name>mapreduce.map.java.opts</name>
                <value>-Xmx1024M</value>
        </property>
        <property>
                <name>mapreduce.reduce.java.opts</name>
                <value>-Xmx2560M</value>
        </property>
        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>3072</value>
        </property>
</configuration>
 
 

 

[vi /usr/local/hadoop/etc/hadoop/slaves]

1
2
3
slave1
slave2
slave3
 

 

[vi /usr/local/hadoop/etc/hadoop/hdfs-site]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/usr/local/hadoop/dfs/namenode</value>
        </property>
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/usr/local/hadoop/dfs/journalnode</value>
        </property>
</configuration>
 
 

 

8. hdfs 저장 폴더 만들기

1
2
3
4
[hadoop@master ~]$ cd /usr/local/hadoop/
[hadoop@master hadoop]$ mkdir dfs
[hadoop@master hadoop]$ cd dfs
[hadoop@master dfs]$ mkdir namenode
 

master 서버에서 8번까지 진행했다면 각 slave서버들로 hadoop 폴더를 ssh를 이용하여 복사해준다. 복사 명령어는 다음과 같다.(ssh 키 복사를 해주지 않았다면 scp 명령어를 사용할 수 없다.)

1
2
3
[hadoop@master ~]$ scp -/usr/local/hadoop hadoop@slave1:/usr/local
[hadoop@master ~]$ scp -/usr/local/hadoop hadoop@slave2:/usr/local
[hadoop@master ~]$ scp -/usr/local/hadoop hadoop@slave3:/usr/local
 

 

 

hadoop 폴더를 복사했다면 위에서 설정한 hdfs-site.xml 파일의 설정을 slave서버에 맞게끔 바꾸어주어야 한다.

바꾸어야 할 부분 => <name>dfs.namenode.name.dir</name>

1
2
3
4
<property>
      <name>dfs.datanode.data.dir</name>
      <value>/usr/local/hadoop/dfs/datanode</value>
</property>
 
 

또한 /usr/local/hadoop/dfs/namenode 파일 이름또한 datanode로 바꾸어주어야 한다.

 

하둡 설치 및 설정 끝...다음은 하둡 실행이다.

저번 '하둡 설치 2. 자바 설치 및 설정'까지 가상서버인 slave1에서 작업을 했었죠.

이제는 slave1를 복제하여 slave2, slave3를 만들어야 합니다. 복제하는 것은 쉬워요.

다음과 같이 따라하세요.

 

우선 가상서버인 slave1의 전원을 off 합니다. 그리고 우클릭을 눌러서 '복제'버튼을 누르세요.

 

 

이후 새로운 가상머신의 이름을 slave2라고 하고 '모든 네트워크 카드의 MAC 주소 초기화'에 체크를 해줍니다.

이후 '완전한 복제'에 체크

자. 가상 서버 slave2 가 만들어 졌습니다. 저는 하둡를 구축하기 위해 같은 방법으로 slave3도 만들었습니다.


다음은 무엇을 해야 할까요??

 

slave1을 복제하여 만든 slave2,slave3의 hostname은 slave1 일겁니다.

그리고 ip주소 또한 xxx.xxx.xxx.101 이겠죠. 물론 자바 또한 복제되어서 slave2,slave3는 자바를 설치 하지 않아도 됩니다.

 

각각의 가상서버의 이름에 맞게 hostname하고 ip주소를 바꾸어 줍니다.

바꾸는 방법은 '하둡 설치 1.'를 참고 하세요.


zookeeper 설치

 

zookeeper는 홀수 갯수에 최적화되어 있다.

 

필자는 master,slave1,slave2,slave3 총 4대 이므로 zookeeper는 master,slave1,slave2에만 주키퍼를 실행 시킬 것이다.

1
2
3
4
5
6
[hadoop@master ~]$ cd /usr/local
[hadoop@master local]$ tar -xzvf zookeeper-3.4.14
[hadoop@master local]$ mv zookeeper-3.4.14 zookeeper
[hadoop@master local]$ cd zookeeper
[hadoop@master zookeeper]$ vi myid
 

 

위 처럼 myid라는 파일에 master 일 경우 숫자 1, slave1에는 숫자 2, slave2에는 숫자 3을 입력하고 저장한다.

1
2
3
[hadoop@master ~]$ cd /usr/local/zookeeper/conf
[hadoop@master conf]$ cp zoo_sample.cfg zoo.cfg
[hadoop@master conf]$ vi zoo.cfg
 

 

 

[vi /usr/local/zookeeper/conf/zoo.cfg]

1
2
3
4
dataDir=/usr/local/zookeeper
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
 

 주키퍼 설치 완료

이 글은 가상서버인 slave1에서 다루는 내용입니다.(마스터 서버가 아닙니다.)

 

1. 다음과 같은 명령어로 설치 가능한 jdk 버전을 확인

1
[hadoop@slave1 ~]$ yum list java*jdk-devel
 

2. 자바 설치

1
[hadoop@slave1 ~]$ yum -y install java-1.8.0-openjdk.x86_64
 

3. 자바컴파일러 버전 확인

1
2
[hadoop@slave1 ~]$ javac -version
javac 1.8.0_212
 

4. 자바홈 확인 (자바홈 설정 전 이므로 아무것도 안나온다.)

1
2
3
[hadoop@slave1 ~]$ echo $JAVA_HOME
 
[hadoop@slave1 ~]$
 

5. 자바홈을 설정하기 위해서는 자바가 설치되어있는 경로를 알아야 한다. 경로 확인하는 방법은 다음과 같다.

1
2
3
4
[hadoop@slave1 ~]$ which javac
/usr/bin/javac
[hadoop@slave1 ~]$ readlink -/usr/bin/javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/bin/javac
 

6. 여기서 자바 홈 부분은 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 까지이다. 뒤부분인 /bin/javac는 제외한다. 이 후 sudo vi .bashrc 파일에 들어가서 자바 홈을 추가한다.

1
[hadoop@slave1 ~]$ sudo vi .bashrc
 

[.bashrc] 맨 아래부분에 추가

1
2
3
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/bin:$JAVA_HOME/lib/tools.jar
 

7. 다음과 같은 명령어로 추가한 정보 적용

1
[hadoop@slave1 ~]$ source .bashrc
 

8. 자바 홈 확인

1
2
[hadoop@slave1 ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
 

이 글은 [가상서버 설치]글에서 이어지는 글입니다.

 

필자는 리눅스서버 한대로 가상서버 3개를 만들어서 총 4대로 하둡을 구축 할 겁니다.

혹여 가상 서버로 하둡을 구축 하실 독자는 [가상머신 설치] 글을 보고 오시길 바랍니다. 

1. 구축 할 서버

xxx.xxx.xxx.35 master

xxx.xxx.xxx.101 slave1

xxx.xxx.xxx.102 slave2

xxx.xxx.xxx.103 slave3

 

hostname을 slave1 으로 변경합니다.

 

1
[hadoop@slave1 ~]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none; color:white">cs

이후 slave1의 ip주소를 xxx.xxx.xxx.101로 바꾸기 위해 다음과 같은 파일로 들어갑니다.

 

[ifcfg-enp0s8]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s8"
UUID="9dc07f1a-4e77-44c1-a753-f0d6073ef052"
DEVICE="enp0s8"
ONBOOT="yes"
IPADDR=192.168.0.101
NETMASK=255.255.255.0
ZONE=public
 
 

BOOTPROTO="dhcp" 를 BOOTPROTO="static"로 바꿔 고정 ip를 사용할것이라고 설정

IPADDR=192.168.0.101 추가

NETMASK=255.255.255.0 추가

 

다음과 같은 명령어로 네트워크 재시작

1
[hadoop@slave1 ~]$ systemctl restart network
 

ifconfig 명령어로 ip변경 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[hadoop@slave1 ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 08:00:27:2f:e2:42  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::cc68:250c:8514:3c90  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::8252:a2b5:d368:1254  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:79:4e:d6  txqueuelen 1000  (Ethernet)
        RX packets 124125  bytes 76763110 (73.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 87100  bytes 77044372 (73.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
1
[hadoop@slave1 ~]$ sudo vi /etc/hosts
 

host 파일에서 다음과 같이 작성

1
2
3
4
xxx.xxx.xxx.35 master
xxx.xxx.xxx.101 slave1
xxx.xxx.xxx.102 slave2
xxx.xxx.xxx.103 slave3
 

 

+ Recent posts