2021년 6월 7일 월요일

Ubuntu 20.04환경과 Java-1.8.0 버전으로 Hadoop-3.3.0 cluster 2개 노드 설치 방법

참조 : https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

https://linuxconfig.org/ubuntu-20-04-hadoop


2개 노드 구성 : 2개의 데이터노드

node1 : namenode, datanode, resourcemanager, nodemanagers

node2: secondary namenodes, datanode, nodemanagers


sudo apt update


1. 기본적으로 java 8버전은 Apache Hadoop 3.x 버전을 지원할 수 있음

sudo apt install openjdk-8-jdk -y

java -version; javac -version

#버전이 1.8.0_252


2. openssh 설치

sudo apt install ssh 

ssh localhost

sudo apt install openssh-server openssh-client -y


3. /etc/hosts 설정  

sudo nano /etc/hosts

--------------------

127.0.0.1 localhost

192.168.219.101 node1

192.168.219.102 node2

----------------------

필요시 hadoop 사용자 생성

sudo adduser hadoop

su -hadoop

* node1 사용자와 node2 사용자 계정이 동일해야함


4. 패스워드 없이 로그인 설정 : authorized_keys에 양쪽것 모두 추가

ssh-keygen -t rsa 

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 내 것 추가

scp ~/.ssh/id_rsa.pub ndoe2:

ssh node2 옮겨서 

cat ~/id_rsa.pub1 >> ~/.ssh/authorized_keys # 상대것 추가

* node2 것을 node1에도 추가하고, 자신 것도 추가


5. 하둡 설치

참조 : https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html


# https://hadoop.apache.org/releases.html 접속 버전확인

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

tar xvzf hadoop-3.3.0.tar.gz

mv hadoop-3.3.0 hadoop

nano .bashrc

----- 아래 환경설정  입력

#java home setup

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$PATH:$JAVA_HOME/bin


#Hadoop Related Options

export HADOOP_HOME=/home/hadoop/hadoop

export HADOOP_INSTALL=$HADOOP_HOME

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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

----------------------

source ~/.bashrc


6. hadoop-env.sh 환경설정 

nano hadoop/etc/hadoop/hadoop-env.sh

---------------위의 파일 들어가서 아래 주석부분 밑에 자바 홈 활성화

# The java implementation to use. By default, this environment

# variable is REQUIRED on ALL platforms except OS X!

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

-----------------

# 하둡과 자바 설정 확인

hadoop version

java -version


7. core-site.xml 파일 수정

nano hadoop/etc/hadoop/core-site.xml

------------- 아래 내용 입력

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node1:9000</value>

    </property>

</configuration>


8.  hdfs-site.xml 파일 수정

nano hadoop/etc/hadoop/hdfs-site.xml

---------# 아래내용

<configuration>

    <property>

            <name>dfs.namenode.name.dir</name>

            <value>/home/hadoop/hdfsdata/nameNode</value>

    </property>

    <property>

            <name>dfs.datanode.data.dir</name>

            <value>/home/hadoop/hdfsdata/dataNode</value>

    </property>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

    <property>

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

        <value>node2:50090</value>

    </property>

</configuration>

--------------------

9. yarn-site.xml 파일 수정

nano hadoop/etc/hadoop/yarn-site.xml

----------------#

<configuration>

    <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>node1</value>

    </property>

    <property>

            <name>yarn.nodemanager.aux-services</name>

            <value>mapreduce_shuffle</value>

    </property>

</configuration>

---------------

 10. mapred-site.xml 파일 수정

nano hadoop/etc/hadoop/mapred-site.xml

-------------#

<configuration>

    <property>

            <name>mapreduce.framework.name</name>

            <value>yarn</value>

    </property>

</configuration>

----------------

11. workers 설정

nano hadoop/etc/hadoop/workers

node1

node2


## node1에서 node2로 설정파일 일괄적으로 보내기

rsync -avzh ~/hadoop/etc/hadoop/* node2:/home/hadoop/hadoop/etc/hadoop/

또는 

scp ~/hadoop/etc/hadoop/* node2:/home/hadoop/hadoop/etc/hadoop/


12.  HDFS NameNode 포맷/ Start Hadoop Cluster

hdfs namenode -format


start-dfs.sh

start-yarn.sh

jps # 자바 프로세스 5개 확인

또는 start-all.sh로 동시실행  

node1에서 jps 명령 입력하면 5개 프로세스 확인

--------------

 10289 ResourceManager

10452 NodeManager

10838 Jps

10010 DataNode

9852 NameNode

--------------
ssh node2에서 jps 명령입력시 4개 프로세스 확인
----------
5648 DataNode
6372 Jps
5959 NodeManager
5817 SecondaryNameNode
------------

13. 실행상태 확인 

hdfs dfsadmin -report로 확인 가능하고

브라우저는 아래로 확인 

node1:9870 # hadoop name node

node2:9864 # DataNodes

node1:8088 #  YARN Resource Manager

* 필요시 namenode 리프레쉬 명령

hadoop dfsadmin -refreshNodes


14. 혹시 설정 변경 후 다시 시행하려면 namenode 포맷 전에 node1과 node2에서 기존 자료 삭제

rm -rf  hdfsdata

hdfs namenode -format


 15. 필요시 실행 정지 일괄은 stop-all.sh

구분은 stop-yarn.sh, stop-dfs.sh 순으로


 16. 기타 명령어 데이터 디렉토리 생성 및 입력

hdfs dfs -mkdir /user

hdfs dfs -mkdir /user/your-id

hdfs dfs -mkdir text

wget http://167.179.112.24/blog/wp-content/uploads/2021/06/names.csv

hdfs dfs -put *.csv text

hdfs dfs -ls text 

hdfs dfsadmin -report


댓글 없음:

댓글 쓰기