하둡 설치 방법
Download JDK
# tar xvfz jdk-8u161-linux-x64.tar.gz
# cp -r jdk1.8.0_161/ /usr/local
java softlink 설정
# cd /usr/bin
# ln -s /usr/local/jdk1.8.0_161/bin/java java
profile 설정 - vi /etc/profile : PATH 설정
JAVA_HOME=/usr/local/jdk1.8.0_161
export JAVA_HOME
HADOOP_HOME=/usr/local/hadoop-1.2.1
export HADOOP_HOME
CLASSPATH=/usr/local/jdk1.8.0_161/lib
export CLASSPATH
PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
하둡 환경설정
# cd usr/local/hadoop-1.2.1/conf
# vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_161
export HADOOP_HOME_WARN_SUPRESS="TRUE"
# vi core-site.txt
IP-ADDRESS : namenode의 IP Address or Hostname
window, linux Host 편집
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://IP-ADDRESS:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-1.2.1/tmp</value>
</property>
</configuration>
hdfs-site.xml
# vi hdfs-site.xml
50070 : namenode의 메타정보를 볼 수 있는 페이지
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-1.2.1/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-1.2.1/name</value>
</property>
</configuration>
MapReduce 설정
# vi mapred_site.txt
Job tracker에 대한 설정
Map reduce가 job tracker 에 요청하는 Port(9001)를 열어두는 것
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>NameNode-IP-ADDRESS:9001</value>
</property>
</configuration>
하둡 환경설정 적용
# . /etc/profile
Hadoop format
# hadoop namenode -format
Hadoop 실행 , 실행 중인 Java process 확인
# start-all.sh
# jps
- http://NAMENODE-IP-ADDRESS:50070 로 접속
- 가상 분산 모드 설정
(Hadoop Pseudo distributed mode configuration)
- Generate SSH KEY
접속할 때 암호 물어보지 않도록, SSH Key생성 후 authorized_keys 복사 key generate 할 때 hadoop 실행 중이면 안되기 때문에 Hadoop 중단
# stop-all.sh
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# cd .ssh
자기 자신에게 접속 가능하도록 인증키 복사
# cat id_dsa.pub >> authorized_keys
- 완전 분산 모드 설정 ( Hadoop Fully distributed mode configuration )
[master] # cd .ssh
[master] # ssh-copy-id
[master] # ssh-copy-id -i id_dsa.pub root@slave1
[master] # ssh-copy-id -i id_dsa.pub root@slave2
[master] # ssh-copy-id -i id_dsa.pub root@slave3
Slaves에 환경설정파일 배포
[master] # scp /etc/profile root@slave1:/etc/profile
[master] # scp -r /usr/local/hadoop-1.2.1/ root@slave1:/usr/local
[master] # scp -r /usr/local/hadoop-1.2.1/ root@slave2:/usr/local
[master] # scp -r /usr/local/hadoop-1.2.1/ root@slave3:/usr/local
hdfs-site.xml
# cd /usr/local/hadoop-1.2.1/conf
# vi hdfs-site.xml
50070 : namenode의 메타정보를 볼 수 있는 페이지
Data 복제본을 2개까지 만들도록 Replication 2로 설정
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.http.address</name>
<value>NAMENODE-IP-ADDRESS:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>SECONDARYNODE-IP-ADDRESS:50090</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-1.2.1/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-1.2.1/name</value>
</property>
</configuration>
masters
secondnode가 될 서버의 hostname 또는 IP address를 쓴다
# vi master
slaves
datanode가 될 서버들의 hostname 또는 IP address를 쓴다
# vi slaves
List the instrumented JVMs on the local host
로컬에 실행중인 JVM 프로세스들의 상태를 보여준다
# jps
Displays the full package name for the application's main class or the full path name to the application's JAR file.
애플리케이션 main 클래스의 전체 패키지 이름 또는 JAR 파일의 전체 경로를 표시한다.
# jps -l
- 가상분산모드
한 개의 서버에 Namenode, Datanode, SecondaryNamenode, JobTracker, TaskTracker 가 전부 존재한다.
- Namenode 서버
- SecondaryNamenode 서버 (masters)
- Datanode 서버 (slaves)