docker

도커(Docker)로 하둡(Hadoop) 설치 방법

remarkable-book 2024. 2. 5. 18:00
반응형

도커(docker)로 하둡(Hadoop) 설치 방법

 

일반적으로 로컬에 Hadoop을 설치하는 방법은 복잡하고 어렵다.

 

그래서 도커(docker)를 활용해서 하둡(hadoop)을 설치해봤다.

 

방법은 간단하다.

 

먼저 아래 링크에 접속한다.

 

https://hub.docker.com/r/apache/hadoop

 

Docker

 

hub.docker.com

 

아파치에서 관리하는 하둡 도커 이미지다.

 

다음으로 디렉토리를 하나 만들고 docker-compose-yaml 파일을 만들어서 아래 명령어를 입력한다

 

나같은 경우는 hadoop → docker-compose.yaml 과 같은 경로로 만들었다

version: "2"
services:
   namenode:
      image: apache/hadoop:3
      hostname: namenode
      command: ["hdfs", "namenode"]
      ports:
        - 9870:9870
      env_file:
        - ./config
      environment:
          ENSURE_NAMENODE_DIR: "/tmp/hadoop-root/dfs/name"
   datanode:
      image: apache/hadoop:3
      command: ["hdfs", "datanode"]
      env_file:
        - ./config      
   resourcemanager:
      image: apache/hadoop:3
      hostname: resourcemanager
      command: ["yarn", "resourcemanager"]
      ports:
         - 8088:8088
      env_file:
        - ./config
      volumes:
        - ./test.sh:/opt/test.sh
   nodemanager:
      image: apache/hadoop:3
      command: ["yarn", "nodemanager"]
      env_file:
        - ./config

 

 

다음으로 동일한 경로에 config 파일을 하나 더 만들고 아래 내용을 입력한다.

 

CORE-SITE.XML_fs.default.name=hdfs://namenode
CORE-SITE.XML_fs.defaultFS=hdfs://namenode
HDFS-SITE.XML_dfs.namenode.rpc-address=namenode:8020
HDFS-SITE.XML_dfs.replication=1
MAPRED-SITE.XML_mapreduce.framework.name=yarn
MAPRED-SITE.XML_yarn.app.mapreduce.am.env=HADOOP_MAPRED_HOME=$HADOOP_HOME
MAPRED-SITE.XML_mapreduce.map.env=HADOOP_MAPRED_HOME=$HADOOP_HOME
MAPRED-SITE.XML_mapreduce.reduce.env=HADOOP_MAPRED_HOME=$HADOOP_HOME
YARN-SITE.XML_yarn.resourcemanager.hostname=resourcemanager
YARN-SITE.XML_yarn.nodemanager.pmem-check-enabled=false
YARN-SITE.XML_yarn.nodemanager.delete.debug-delay-sec=600
YARN-SITE.XML_yarn.nodemanager.vmem-check-enabled=false
YARN-SITE.XML_yarn.nodemanager.aux-services=mapreduce_shuffle
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-applications=10000
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-am-resource-percent=0.1
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.queues=default
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.user-limit-factor=1
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.maximum-capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.state=RUNNING
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_submit_applications=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_administer_queue=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.node-locality-delay=40
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings=
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings-override.enable=false

 

 

이제 hadoop 폴더 안에 config, docker-compose.yaml 파일이 있어야하고 위의 내용이 모두 입력되어야 한다.

 

대략 아래와 같은 결과가 나오면 hadoop 설치가 정상적으로 완료된 것이다. 

docker-compose up -d

 ✔ Network hadoop_default              Created                                     0.1s 
 ✔ Container hadoop-resourcemanager-1  Sta...                                      6.7s 
 ✔ Container hadoop-nodemanager-1      Started                                     6.6s 
 ✔ Container hadoop-namenode-1         Started                                     5.8s 
 ✔ Container hadoop-datanode-1         Started                                     6.7s

 

 

이제 아래와 같은 경로로 들어가면 정상적으로 hadoop UI가 보이는 것을 확인할 수 있다.

 

 http://localhost:9870/ 

http://localhost:8088/

 

 

 

반응형