티스토리 뷰
우분투에 하둡을 설치해봅니다.
Hadoop 사용 전 JAVA 설치 필수입니다.
하둡 설치 이전에 java가 먼저 설치되어있어야 합니다.
java가 설치되어있지 않으신 분들은 아래 링크를 들어가서 java를 설치하고 와주세요!
https://domdom.tistory.com/523
하둡 설치를 시작합니다.
1. 하둡 사용을 위해 비밀번호 없는 ssh통신이 가능하도록 만들어줍니다.
Openssh Server, pdsh를 설치합니다.
pdsh는 복수개의 target에 ssh로 접속해서 동일한 명령어로 실행하는 유틸리티입니다.
sudo apt-get install openssh-server
sudo apt-get install pdsh
키가 포함된 파일의 권한까지 변경완료합니다.
ssh-keygen –t rsa –P ‘’ -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh localhost
2. 이제 본격적으로, 하둡을 설치해줍니다.
아래 아파치 링크를 통해 하둡 다운로드 디렉토리에 들어갑니다.
https://dlcdn.apache.org/hadoop/common/
가장 최신버전 hadoop-3.3.4를 클릭합니다.
hadoop-3.3.4.tar.gz 파일의 링크 주소를 복사하여 서버에 설치파일을 내려받습니다.
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
설치파일을 압축해제하면 하둡 설치가 완료됩니다.
tar –xzvf hadoop-3.3.4.tar.gz
압축해제한 경로에 파일들이 생성되었습니다.
3. 이제 하둡 환경변수를 설정을 시작합니다.
vi 편집기로 ~/.bashrc 파일을 열어 맨 아래 부분에 내용을 추가해줍니다.
sudo vi ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_HOME="/root/hadoop-3.3.4"
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$JAVA_HOME/bin
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_CLASSPATH=$(hadoop classpath)
저장한 내용을 적용합니다.
source ~/.bashrc
3-1. hadoop-ev.sh 파일에도 JAVA_HOME 경로를 세팅해줍니다.
./bashrc 파일에 HADOOP_HOME 경로를 설정해주었기 때문에,
이제부터는 $HADOOP_HOME 을 기준으로 경로작업이 가능합니다.
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
주석처리 되어있는 JAVA_HOME 부분에 자바경로를 입력해주고 저장합니다.
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
3-2. 하둡 hdfs와 상세 속성들을 정의하는 파일 core-site.xml을 수정합니다.
core-site.xml 파일을 열어 configuration를 채워줍니다.
vi $HADOOP_HOME/etc/hadoop/core-site.xml
hadoop.tmp.dir의 파일명은 임의로 수정할 수 있습니다.
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop_tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
3-3. 하둡 데이터노드, 네임노드의 저장소 디렉토리를 설정하는 파일 hdfs-site.xml을 수정합니다.
configuration을 아래와 같이 채워넣어줍니다.
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3-4. 맵리듀스 파일 값을 정의하기 위한 파일 mapred-site.xml 파일을 수정합니다.
vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>
3-5. 마지막으로 yarn에 관련된 세팅을 정의하는 파일 yarn-site.xml 파일을 수정합니다.
vi $HADOOP_HOME/etc/hadoop/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>
</configuration>
4. 하둡을 실행하기 전 네임노드를 먼저 초기화해줍니다.
hdfs namenode –format
5. 하둡 클러스터를 시작해줍니다.
hadoop-3.3.4/sbin/start-dfs.sh
hadoop-3.3.4/sbin/start-yarn.sh
실행 후 터미널에 jps 를 입력했을 때 아래와 같이 정상적으로 호출된다면 설치를 성공적으로 완료한 것이고,
만약 아래와 같은 에러가 뜬다면,
HADOOP_HOME/etc/hadoop/hadoop-env.sh 을 수정해주어야 합니다.
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [ ... ]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
HADOOP_HOME/etc/hadoop/hadoop-env.sh 에 아래 내용을 넣어줍니다.
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
다시 start-dfs.sh를 입력하여 실행했을 때,
아래와 같은 에러가 나온다면, pdsh 작동방식에 문제가 생겼으므로 ctrl+c를 눌러 빠져나옵니다.
오류 해결을 위해서 $HADOOP_HOME/libexec/hadoop-function.sh 파일을 수정해줍니다.
1019번째 줄에 있는
if [[ -e '/usr/bin/pdsh' ]]; then 부분을
if [[ ! -e '/usr/bin/pdsh' ]]; then 이렇게 변경해주세요.
아래 URL에 들어가서 정상적으로 접속이 되는지 확인합니다.
서버ip:9870 (네임노드 UI)
서버ip:9864 (데이터노드 UI)
서버ip:8088 (yarn resource manager UI)
이렇게 가상 분산모드 hadoop 설치 완료입니다!
다음편에서는 HDFS 파일 저장관리에 대한 내용을 다뤄보겠습니다
'개발환경 > Server' 카테고리의 다른 글
[hadoop] 3. apache hadoop 위에 spark 설치하기 (0) | 2022.11.13 |
---|---|
[hadoop] 2. 로컬에 있는 파일을 HDFS에 전송하기 (0) | 2022.11.12 |
[java] ubuntu 18.04에 java 8 설치하기 (0) | 2022.11.11 |
[virtualBox] 윈도우 virtualBox에서 Ubuntu GUI 환경 만드는 방법 (0) | 2022.10.19 |
[Ubuntu] apt-add-repository: command not found 오류해결 (0) | 2022.09.13 |