참조 : 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
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 # 내 것 추가
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
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
댓글 없음:
댓글 쓰기