CentOS Hadoop容器化部署怎么做
导读:CentOS 上 Hadoop 容器化部署实操指南 一 环境准备 宿主机为 CentOS 7/8,安装并启动 Docker,建议配置国内镜像加速以提升拉取速度。 规划集群角色与端口:至少包含 NameNode、DataNode、Resou...
CentOS 上 Hadoop 容器化部署实操指南
一 环境准备
- 宿主机为 CentOS 7/8,安装并启动 Docker,建议配置国内镜像加速以提升拉取速度。
- 规划集群角色与端口:至少包含 NameNode、DataNode、ResourceManager、NodeManager;常用端口包含 HDFS NameNode Web UI 50070、YARN ResourceManager Web UI 8088、NodeManager 8042 等,便于宿主机访问与排障。
二 快速方式 使用现成镜像与 Docker Compose
- 拉取社区镜像并创建专用网络:
- docker pull bde2020/hadoop-cluster
- docker network create hadoop-net
- 启动 HDFS 节点(示例含 1 个 NameNode 与 2 个 DataNode):
- docker run -d --net=hadoop-net --name namenode -e DEFAULT_PASS=123456 bde2020/hadoop-cluster:namenode
- docker run -d --net=hadoop-net --name datanode1 -e DEFAULT_PASS=123456 bde2020/hadoop-cluster:datanode
- docker run -d --net=hadoop-net --name datanode2 -e DEFAULT_PASS=123456 bde2020/hadoop-cluster:datanode
- 初始化并验证:
- docker exec namenode hdfs namenode -format
- docker-compose up -d(如使用 docker-compose.yml 管理多服务)
- docker exec namenode hdfs dfs -ls /
- 说明:该方式适合快速体验与功能验证;如需 YARN 或 MapReduce 作业,请选择包含相应组件的镜像或在 compose 中补充服务。
三 自定义方式 基于 CentOS 构建镜像与多容器集群
- 构建镜像(示例 Dockerfile,基于 CentOS 7,安装 OpenJDK 8 与 Hadoop 3.3.0,配置 SSH 免密):
- Dockerfile 关键片段:
- FROM centos:7
- RUN yum -y install java-1.8.0-openjdk-devel openssh-server &
&
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa & &
cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 0600 ~/.ssh/authorized_keys - RUN curl -O https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz &
&
tar xzf hadoop-3.3.0.tar.gz & & mv hadoop-3.3.0 /usr/local/hadoop & & rm hadoop-3.3.0.tar.gz - ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
HADOOP_HOME=/usr/local/hadoop
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 构建:docker build -t hadoop-centos:3.3 .
- Dockerfile 关键片段:
- 启动容器(示例:1 个 NameNode + 2 个 DataNode + 1 个 ResourceManager + 2 个 NodeManager):
- docker run -d -p 50070:50070 -p 8088:8088 --name namenode --hostname namenode hadoop-centos:3.3
- docker run -d --name datanode1 --hostname datanode1 hadoop-centos:3.3
- docker run -d --name datanode2 --hostname datanode2 hadoop-centos:3.3
- docker run -d --name resourcemanager --hostname resourcemanager hadoop-centos:3.3
- docker run -d --name nodemanager1 --hostname nodemanager1 hadoop-centos:3.3
- docker run -d --name nodemanager2 --hostname nodemanager2 hadoop-centos:3.3
- 配置要点(容器内修改 $HADOOP_HOME/etc/hadoop/*.xml):
- core-site.xml:设置默认文件系统为 hdfs://namenode:9000
- hdfs-site.xml:设置副本数 dfs.replication=3
- yarn-site.xml:启用 yarn.resourcemanager.hostname=resourcemanager 等必要属性
- 初始化与启动:
- 进入 NameNode 执行:hdfs namenode -format
- 在各节点启动相应进程(如 start-dfs.sh、start-yarn.sh),或使用自定义启动脚本统一编排
- 说明:该方式可控性强,适合学习、测试与定制化需求;注意容器间需通过 hostname 互通,生产环境建议使用 Docker Compose/Kubernetes 编排。
四 验证与常见问题
- 基础验证:
- HDFS:docker exec namenode hdfs dfs -ls /
- YARN:访问 http://< 宿主机IP> :8088 查看集群与应用状态
- 常见问题与处理:
- 端口未映射导致宿主机无法访问:确认启动命令包含 -p 50070:50070 -p 8088:8088 等映射
- 容器间无法 SSH 互通:确保容器内已生成 id_rsa 并写入 authorized_keys,且使用一致的 hostname 进行配置
- 权限或环境变量丢失:在容器内修改 ~/.bashrc 设置 JAVA_HOME/HADOOP_HOME/PATH 并 source 使其生效,避免重启后丢失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Hadoop容器化部署怎么做
本文地址: https://pptw.com/jishu/754268.html
