falkonry/hadoop本镜像包含用于搭建基本Hadoop集群的Dockerfile,可部署HDFS、YARN组件及Spark submitter。所有镜像均继承自基础hadoop镜像,该基础镜像在/opt/目录下提供Hadoop安装,并支持通过环境变量配置Hadoop。
适用于开发、测试环境中快速搭建Hadoop集群,或需要灵活配置Hadoop环境的场景。支持自定义Hadoop属性,可根据需求扩展集群规模。
Hadoop配置通过以下环境变量组控制,每个环境变量组对应一个Hadoop配置文件:
| 环境变量组 | 对应配置文件 |
|---|---|
CORE_CONF | /etc/hadoop/core-site.xml |
HDFS_CONF | /etc/hadoop/hdfs-site.xml |
YARN_CONF | /etc/hadoop/yarn-site.xml |
HTTPFS_CONF | /etc/hadoop/httpfs-site.xml |
KMS_CONF | /etc/hadoop/KMS-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 gmond守护进程地址,使Hadoop向其发送metrics(需Ganglia unicast配置)。
为确保集群正常运行,建议:
启动Hadoop NameNode(单实例)。
环境变量:
CLUSTER_NAME:HDFS集群名称(初始化格式化时使用,必填)GANGLIA_HOST:Ganglia gmond地址(可选)卷:
/hadoop/dfs/name:HDFS文件系统名称目录docker-compose模板:
yamlnamenode: image: falkonry/hadoop-namenode hostname: namenode container_name: namenode domainname: hadoop net: hadoop volumes: - <NAMENODE-VOLUME>:/hadoop/dfs/name environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> - CLUSTER_NAME=<CLUSTER-NAME>
WebUI访问:http://<CONTAINER_IP>:50070
启动Hadoop DataNode(多实例)。
环境变量:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020,必填)GANGLIA_HOST:Ganglia gmond地址(可选)卷:
/hadoop/dfs/data:HDFS文件系统数据目录docker-compose模板:
yamldatanode1: image: falkonry/hadoop-datanode hostname: datanode1 container_name: datanode1 domainname: hadoop net: hadoop volumes: - <DATANODE-VOLUME>:/hadoop/dfs/data environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> - CORE_CONF_fs_defaultFS=hdfs://<NAMENODE-HOST>:8020
启动Hadoop ResourceManager(单实例)。
环境变量:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020,必填)GANGLIA_HOST:Ganglia gmond地址(可选)YARN_CONF_yarn_log___aggregation___enable:启用日志聚合(如true)docker-compose模板:
yamlresourcemanager: image: falkonry/hadoop-resourcemanager hostname: resourcemanager container_name: resourcemanager domainname: hadoop net: hadoop environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> - CORE_CONF_fs_defaultFS=hdfs://<NAMENODE-HOST>:8020 - YARN_CONF_yarn_log___aggregation___enable=true
WebUI访问:http://<CONTAINER_IP>:8088
启动Hadoop NodeManager(多实例)。
环境变量:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020,必填)YARN_CONF_yarn_resourcemanager_hostname:ResourceManager主机名(必填)GANGLIA_HOST:Ganglia gmond地址(可选)YARN_CONF_yarn_log___aggregation___enable:启用日志聚合(如true)YARN_CONF_yarn_nodemanager_remote___app___log___dir:远程应用日志目录(如/app-logs)docker-compose模板:
yamlnodemanager1: image: falkonry/hadoop-nodemanager hostname: nodemanager1 container_name: nodemanager1 domainname: hadoop net: hadoop environment: - GANGLIA_HOST=<GMOND-RECEIVER-HOST> - 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集群提交作业(无服务暴露)。
环境变量:
CORE_CONF_fs_defaultFS:HDFS地址(如hdfs://<NAMENODE-HOST>:8020,必填)YARN_CONF_yarn_resourcemanager_hostname:ResourceManager主机名(必填)使用方式:通过docker run falkonry/hadoop-spark <command>指定命令,或使用tail -f /var/log/dmesg保持容器运行后通过docker exec进入环境。
docker-compose模板:
yamlspark: image: falkonry/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




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