/* Subject: Ubuntu Server 22.04, Hadoop Cluster Setting Guides Author: Doyun Jung (정도윤) / rabbit.white@daum.net Created Date: 2022-07-16 Description: */ Category Requirements, Conventions or Software Version Used System Installed Ubuntu 22.04 or upgraded Ubuntu 22.04 Jammy Jellyfish Software Apache Hadoop, Java Other Privileged access to your Linux system as root or via the sudo command. Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command $ – requires given linux commands to be executed as a regular non-privileged user 1. hadoop 계정 생성 $ sudo adduser hadoop 2. Install the Java prerequisite $ sudo apt update $ sudo apt install openjdk-8-jdk openjdk-8-jre $ sudo apt install openssh-server openssh-client $ su hadoop $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ ls -lrt .ssh/ -rw-r--r-- 1 ubuntu ubuntu 397 Dec 9 00:17 id_rsa.pub -rw------- 1 ubuntu ubuntu 1679 Dec 9 00:17 id_rsa $ cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ sudo vim /etc/hosts 192.168.1.100 namenode.socal.rr.com 192.168.1.141 datanode1.socal.rr.com 192.168.1.113 datanode2.socal.rr.com 192.168.1.118 datanode3.socal.rr.com $ scp .ssh/authorized_keys datanode1:/home/ubuntu/.ssh/authorized_keys $ scp .ssh/authorized_keys datanode2:/home/ubuntu/.ssh/authorized_keys $ scp .ssh/authorized_keys datanode3:/home/ubuntu/.ssh/authorized_keys 3. Install Hadoop and configure related XML files https://hadoop.apache.org/releases.html (Accessed by 2022-07-17, Last Modified 2022-07-17.) $ wget https://downloads.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz $ tar -xzvf hadoop-3.3.3.tar.gz -C /home/hadoop 4. Setting up the environment variable export HADOOP_HOME=/home/hadoop/hadoop-3.3.3 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 $ vim ~/hadoop-3.3.3/etc/hadoop/hadoop-env.sh Change the JAVA_HOME variable to where Java is installed. On our system (and probably yours too, if you are running Ubuntu 20.04 and have followed along with us so far), we change that line to: ---- 1. 우분투 -------------------------------------------------- (중략) export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ---- 2. 라즈베리파이 우분투 ------------------------------------ (중략) export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64 ------------------------------------------------------------------ 5. Configuration changes in core-site.xml file core-site.xml 파일 편집 $ vim ~/hadoop-{version}/etc/hadoop/core-site.xml fs.defaultFS hdfs://192.168.1.100:9000 6. hdfs-site.xml 변경하기 $ vim ~/hadoop-{version}/etc/hadoop/hdfs-site.xml dfs.replication 1 dfs.name.dir file:///home/hadoop/hdfs/namenode dfs.data.dir file:///home/hadoop/hdfs/datanode 7. Configuration changes in mapred-site.xml file $ vim ~/hadoop-{version}/etc/hadoop/mapred-site.xml mapreduce.jobtracker.address 192.168.1.100:54311 mapreduce.framework.name yarn 8. Configuration changes in yarn-site.xml file $ vim ~/hadoop-{version}/etc/hadoop/yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.hostname 192.168.1.100 9. 데이터, 네임노드 폴더 생성 $ mkdir -p ~/hdfs/namenode $ mkdir -p ~/hdfs/datanode 10. 마스터(Master) 및 작업자(Worker) 파일 생성 10-1. 마스터 파일 생성 파일 masters 시작 스크립트에서 이름 노드를 식별하는 데 사용됩니다. 그래서 vim ~/hadoop/etc/hadoop/masters 이름 노드 IP를 추가하십시오. 192.168.1.100 10-2. 작업자 파일 생성 파일 workers 시작 스크립트에서 데이터 노드를 식별하는 데 사용됩니다. vim ~/hadoop/etc/hadoop/workers 모든 데이터 노드 IP를 여기에 추가하십시오. 192.168.1.141 192.168.1.113 192.168.1.118 11. HDFS 포맷 및 Hadoop 클러스터 시작 11-1. HDFS 포맷 $ hdfs namenode -format 이제 Hadoop 설치가 구성되었으며 실행할 준비가 되었습니다. 11-2. HDFS 클러스터 시작 다음을 실행하여 HDFS를 시작합니다. start-dfs.sh 네임 노드 서버의 스크립트(네임노드) $ start-dfs.sh Starting namenodes on [namenode.socal.rr.com] Starting datanodes Starting secondary namenodes [namenode] $ jps 18978 SecondaryNameNode 19092 Jps 18686 NameNode 그리고 http://192.168.1.100:9870에 접속하면 다음과 같은 네임노드 웹 UI를 볼 수 있습니다. 12. HDFS에 파일 업로드 방법 HDFS에 쓰기 및 읽기는 명령으로 수행됩니다. hdfs dfs. 먼저 홈 디렉토리를 수동으로 만듭니다. 다른 모든 명령은 이 기본 홈 디렉토리에 대한 상대 경로를 사용합니다. ubuntu 로그인한 사용자입니다. 다른 사용자로 로그인하는 경우 우분투 대신 사용자 ID를 사용하십시오) 12-1. dfs 내에 수동으로 홈 폴더 생성하기 $ hdfs dfs -mkdir -p /user/ubuntu/ 예제) Gutenberg 프로젝트에서 책 파일 가져오기 $ wget -O alice.txt https://www.gutenberg.org/files/11/11-0.txt 12-2. put 옵션을 사용하여 hdfs에 업로드하기 -put 옵션을 사용하여 다운로드한 파일을 hdfs에 업로드 $ hdfs dfs -mkdir books $ hdfs dfs -put books/alice.txt 12-3. hdfs 파일 목록 조회 $ hdfs dfs -ls 참고) 1. Apache HDFS 셸 문서 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html HDFS를 관리하기 위한 많은 명령이 있습니다. 전체 목록을 보려면 다음을 참조하십시오. 12-4 HDFS 클러스터 중지 stop-dfs.sh 명령어를 통해 HDFS를 중지합니다. $ stop-dfs.sh Stopping namenodes on [namenode.socal.rr.com] Stopping datanodes Stopping secondary namenodes [namenode] 12-5. Hadoop version 조회 $ hadoop version 12-6. Hdfs version 조회 $ hdfs version