설치 환경은 Ubuntu 16.04 LTS의 Master 1, Worker 3으로 총 4개의 VM을 이용하였다.
당연히 먼저 하둡을 다운로드 받는다. (링크는 Apache Hadoop Release, 현재 2.7.3)
받은 하둡 파일을 압축을 풀고,
tar zxvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 hadoop
JDK도 물론 설치해준다.
sudo apt install openjdk-8-jdk openjdk-8-jre
이제 설치한 하둡과 자바의 환경 변수(bashrc 파일의 제일 하단에 입력)를 등록.
vi ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_HOME=/home/bigpros/hadoop
export PATH=$JAVAHOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASS_PATH=$JAVAHOME/lib:$CLASS_PATH
본격적으로 Hadoop Configuration 파일들을 수정하면 되는데 사실 이 파일 설정들에 따라 single, pseudo, fully distributed mode가 구성될 수 있다.
1. hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/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 YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
2. yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
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_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
3. slaves
workerA
workerB
workerC
4. core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://masterA:9000</value>
</property>
</configuration>
5. hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/user/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/user/hdfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>workerA:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>workerA:50091</value>
</property>
</configuration>
6. mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7. yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>masterA:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>masterA:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>masterA:8040</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>masterA:8088</value>
</property>
</configuration>
이제 데이터가 저장될 폴더들을 생성해준다.
mkdir -p hdfs/name hdfs/data
for HOST in workerA workerB workerC; do ssh bigpros@$HOST "mkdir -p hdfs/name hdfs/data"; done
마지막으로 설정파일과 하둡폴더를 배포해주면
for HOST in workerA workerB workerC; do ssh bigpros@$HOST "source .bashrc"; done
for HOST in workerA workerB workerC; do scp -r $HADOOP_HOME $HOST:$HADOOP_HOME; done
하둡 설치가 완료되고 다음의 명령으로 하둡을 구동한다.
hdfs namenode -format
start-dfs.sh
start-yarn.sh
하둡 웹 인터페이스는 마스터 주소의 50070 포트를 통해 확인 가능하며, Safe Mode 해제 방법은 다음과 같다.
hadoop dfsadmin -safemode leave
'Development > Hadoop' 카테고리의 다른 글
하둡 공부 - MapReduce 작동 방법 (0) | 2019.01.24 |
---|---|
하둡 공부 - Hadoop I/O (0) | 2019.01.24 |
하둡 공부 - YARN (0) | 2019.01.24 |
하둡 공부 - Hadoop Read & Write (0) | 2019.01.24 |
하둡 공부 - HDFS (0) | 2019.01.24 |