
nulloranje/hadoop该仓库包含用于搭建基本Hadoop集群的Dockerfile集合。可用组件包括HDFS(名称节点、数据节点)、YARN(资源管理器、节点管理器)和Spark提交器。所有镜像均继承自基础hadoop镜像,该基础镜像在/opt/目录提供Hadoop安装,并支持通过环境变量配置Hadoop。
Hadoop配置通过以下环境变量组控制,分别对应不同的配置文件:
CORE_CONF:影响/etc/hadoop/core-site.xmlHDFS_CONF:影响/etc/hadoop/hdfs-site.xmlYARN_CONF:影响/etc/hadoop/yarn-site.xmlHTTPFS_CONF:影响/etc/hadoop/httpfs-site.xmlKMS_CONF:影响/etc/hadoop/KMS-site.xmlMAPRED_CONF:影响/etc/hadoop/mapred-site.xml通过设置<PREFIX>_<PROPERTY>格式的环境变量配置Hadoop属性。由于Docker和docker-compose对环境变量名称的限制,属性名需进行如下替换:
_ 替换为 .__ 替换为 ____ 替换为 -CORE_CONF_fs_defaultFS:设置core-site.xml中的fs.defaultFS属性YARN_CONF_yarn_log___aggregation___enable:设置yarn-site.xml中的yarn.log-aggregation-enable属性以下特殊环境变量提供配置预设功能:
配置Hadoop集群以支持多网络访问,自动设置以下属性:
hdfs-site.xml:
yarn-site.xml:
mapred-site.xml:
指定Ganglia监控接收主机,使Hadoop向指定的ganglia gmond守护进程发送指标(需配置单播Ganglia)。
为确保集群正常运行,建议:
通过以上配置可避免Web界面链接无法解析问题(需配置DNS解析容器名称,使用docker-machine时需配置静态路由)。
启动Hadoop名称节点(单实例),负责HDFS元数据管理。
环境变量:
CLUSTER_NAME:HDFS集群名称(初始格式化时必需)卷挂载:
/hadoop/dfs/name:HDFS名称节点数据目录必填配置:
CLUSTER_NAME:集群名称docker-compose模板:
yamlnamenode: image: nulloranje/hadoop-namenode hostname: namenode container_name: namenode domainname: hadoop net: hadoop volumes: - <NAMENODE-VOLUME>:/hadoop/dfs/name # 替换为本地卷路径 environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> # 可选,Ganglia主机 - CLUSTER_NAME=<CLUSTER-NAME> # 替换为集群名称
Web界面:http://<CONTAINER_IP>:50070
启动Hadoop数据节点(多实例),负责HDFS数据存储。
卷挂载:
/hadoop/dfs/data:HDFS数据存储目录必填配置:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020)docker-compose模板:
yamldatanode1: image: nulloranje/hadoop-datanode hostname: datanode1 container_name: datanode1 domainname: hadoop net: hadoop volumes: - <DATANODE-VOLUME>:/hadoop/dfs/data # 替换为本地卷路径 environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> # 可选,Ganglia主机 - CORE_CONF_fs_defaultFS=hdfs://<NAMENODE-HOST>:8020 # 替换为名称节点主机
启动YARN资源管理器(单实例),负责集群资源调度。
必填配置:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020)docker-compose模板:
yamlresourcemanager: image: nulloranje/hadoop-resourcemanager hostname: resourcemanager container_name: resourcemanager domainname: hadoop net: hadoop environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> # 可选,Ganglia主机 - CORE_CONF_fs_defaultFS=hdfs://<NAMENODE-HOST>:8020 # 替换为名称节点主机 - YARN_CONF_yarn_log___aggregation___enable=true # 启用日志聚合
Web界面:http://<CONTAINER_IP>:8088
启动YARN节点管理器(多实例),负责单节点资源管理。
必填配置:
CORE_CONF_fs_defaultFS:HDFS地址YARN_CONF_yarn_resourcemanager_hostname:资源管理器主机docker-compose模板:
yamlnodemanager1: image: nulloranje/hadoop-nodemanager hostname: nodemanager1 container_name: nodemanager1 domainname: hadoop net: hadoop environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> # 可选,Ganglia主机 - CORE_CONF_fs_defaultFS=hdfs://<NAMENODE-HOST>:8020 # 替换为名称节点主机 - YARN_CONF_yarn_resourcemanager_hostname=<RESOURCEMANAGER-HOST> # 替换为资源管理器主机 - YARN_CONF_yarn_log___aggregation___enable=true # 启用日志聚合 - YARN_CONF_yarn_nodemanager_remote___app___log___dir=/app-logs # 远程应用日志目录
提供Spark环境的工具容器,已配置适用于Hadoop集群。需手动指定命令运行,常用方式为保持容器运行后通过docker exec进入使用。
必填配置:
CORE_CONF_fs_defaultFS:HDFS地址YARN_CONF_yarn_resourcemanager_hostname:资源管理器主机docker-compose模板:
yamlspark: image: nulloranje/hadoop-spark hostname: spark container_name: spark domainname: hadoop net: hadoop environment: - CORE_CONF_fs_defaultFS=hdfs://namenode:8020 # 替换为名称节点主机 - YARN_CONF_yarn_resourcemanager_hostname=resourcemanager # 替换为资源管理器主机 command: tail -f /var/log/dmesg # 保持容器运行
使用方法:通过docker exec -ti spark bash进入容器使用Spark环境。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务