由于用docker方式部署hadoop集群的资料不多,自己也折腾了很久,所以记录一下 这里参考了
uhopper / hadoop-docker — Bitbucket https://bitbucket.org/uhopper/hadoop-docker
因为我测试机是几台机器组成的swarm mode集群 好多配置按照文中配置行不通,所以改了一下
version: '3.4'
services:
namenode:
image: uhopper/hadoop-namenode:2.8.1
hostname: namenode
networks:
- hadoop
volumes:
- /var/lib/docker/volumes/hadoop/namenode:/hadoop/dfs/name
environment:
- CLUSTER_NAME=datanode1
- CLUSTER_NAME=datanode2
- CLUSTER_NAME=datanode3
ports:
- "8020:8020"
- "50070:50070"
datanode1:
image: uhopper/hadoop-datanode:2.8.1
hostname: datanode1
networks:
- hadoop
volumes:
- /var/lib/docker/volumes/hadoop/datanode1:/hadoop/dfs/data
environment:
- CORE_CONF_fs_defaultFS=hdfs://namenode:8020
datanode2:
image: uhopper/hadoop-datanode:2.8.1
hostname: datanode2
networks:
- hadoop
volumes:
- /var/lib/docker/volumes/hadoop/datanode2:/hadoop/dfs/data
environment:
- CORE_CONF_fs_defaultFS=hdfs://namenode:8020
datanode3:
image: uhopper/hadoop-datanode:2.8.1
hostname: datanode3
networks:
- hadoop
volumes:
- /var/lib/docker/volumes/hadoop/datanode3:/hadoop/dfs/data
environment:
- CORE_CONF_fs_defaultFS=hdfs://namenode:8020
resourcemanager:
image: uhopper/hadoop-resourcemanager:2.8.1
hostname: resourcemanager
networks:
- hadoop
environment:
- CORE_CONF_fs_defaultFS=hdfs://namenode:8020
- YARN_CONF_yarn_log___aggregation___enable=true
ports:
- "8088:8088"
- "8030:8030"
- "8031:8031"
- "8032:8032"
- "8033:8033"
nodemanager:
image: uhopper/hadoop-nodemanager:2.8.1
hostname: nodemanager
networks:
- hadoop
environment:
- CORE_CONF_fs_defaultFS=hdfs://namenode:8020
- YARN_CONF_yarn_resourcemanager_hostname=resourcemanager
- YARN_CONF_yarn_log___aggregation___enable=true
- YARN_CONF_yarn_nodemanager_remote___app___log___dir=/app-logs
ports:
- "46655:46655"
- "8040:8040"
- "8042:8042"
networks:
hadoop:
注意
涉及到volumes挂载到宿主机目录,这里需要预先手动创建一下,不然可能会报错
参考文档
https://www.jianshu.com/p/6bcd72083c08