Kubernetes

Hadoop 환경 설정 및 실행

bborori 2022. 6. 23. 13:14

이전 도커에 하둡설치 글에 이어서 하둡을 설정하고 실행하는 글을 작성한다.

 

ssh 패키지 설치 및 설정

노드 간 통신을 위해 ssh 패키지를 설치한다

yum install openssh-server openssh-clients openssh-askpass -y
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ""

이 때, 오타에 주의를 하자. 필자는 위 ssh 키 생성 시 오타가 나서 이 후에 진행하는 하둡 설정에서 막혔었다. 이로 인해 컨테이너를 삭제하고 다시 앞선 도커 이미지로 하둡 설치과정을 진행했다. 다시 한 번 도커의 장점을 몸소 깨닫게 되었다. 이게 만약 로컬 환경이었다면.. 오류를 바로 잡는 것만으로 많은 시간을 할애했을 것 같다.

vim ~/.bashrc

스크립트를 열면, 이전에 작성한 내용들 밑에 추가로 다음 내용을 기입한다.

/usr/sbin/sshd

이후 source 명령어로 스크립트를 실행

source ~/.bashrc

비밀번호 없이 통신하기 위하여 공개키 및 비밀키 생성

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

생성한 공개키를 인증키로 등록한다.

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh 연결 확인

ssh localhost

Warning이 뜨지만 무시해도 괜찮다.

 

Hadoop 설정

하둡 설정파일들이 있는 디렉토리로 이동한다. 이전에 환경변수로 설정한 HADOOP_CONFIG_HOME을 통해 이동

cd $HADOOP_CONFIG_HOME
vim hadoop-env.sh

다음 내용을 추가한다.

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.aarch64
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"

데몬들이 홈으로 사용할 디렉토리 생성

이전에 하둡 홈 디렉토리로 생성한 폴더에 하위 디렉토리로 생성했다.

mkdir /hadoop_home/temp
mkdir /hadoop_home/namenode
mkdir /hadoop_home/datanode

이제 하둡 설정을 위해 총 3개의 파일을 수정해야한다.

1. core-site.xml

2. hdfs-site.xml

3. mapred-sit.xml

 

1. core-site.xml

vim core-site.xml

configuratiion 안에 다음 내용을 추가한다.

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop_home/temp</value>
    </property>

    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
        <final>true</final>
    </property>

2. hdfs-site.xml

vim hdfs-site.xml

마찬가지로 configuration안에 다음 내용을 추가한다.

    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <final>true</final>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/hadoop_home/namenode_home</value>
        <final>true</final>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/hadoop_home/datanode_home</value>
        <final>true</final>
    </property>

3. mapred-site.xml

vim mapred-site.xml
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>

이제 하둡 설정이 끝났으니, 하둡을 실행한다.

 

Hadoop 실행

namenode 포맷을 먼저 진행한다.

hadoop namenode -format

새로운 터미널에서 진행상황을 커밋한다.

docker commit hadoop-base centos:hadoop

위 이미지는 commit 명령어를 실행한 후

hadoop-base2인 이유는... 이 글을 시작 때 설명한 ssh 키 설정 시 오타로 인해 컨테이너를 다시 만들었기 때문..

다시 hadoop을 설정하는 hadoop-base 컨테이너 터미널로 돌아와서, 하둡 클러스터 실행

start-all.sh

다음 명령어로 실행 중인 노드를 확인

jps


References

1. https://mungiyo.tistory.com/17?category=980499 

 

[Hadoop] 도커(Docker)로 하둡 설치하기 (Pseudo-distributed)

이전 포스팅에서 독립실행모드로 하둡을 설치해보았다. 이번 포스팅은 하둡의 3가지 모드 중 가상분산모드로 설치해 볼 것이다. 독립실행모드가 하나의 로컬 환경으로 그냥 하둡을 설치하는 

mungiyo.tistory.com

 

'Kubernetes' 카테고리의 다른 글

[Docker] 컨테이너 (이미지) 백업  (0) 2022.06.23
Docker로 Hadoop 설치하기  (0) 2022.06.21
Docker 입문: 설치 및 실행  (0) 2022.05.24