墨痕615 2026-02-26 21:40 采纳率: 62.5%
浏览 8

在docker 中部署单机版Hadoop

Ubuntu 18.04里面安装docker和部署单机版的hadoop

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-02-26 21:41
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    在 Ubuntu 18.04 系统中使用 Docker 部署单机版 Hadoop 是一种快速测试和学习 Hadoop 的方式。以下是详细的步骤,包括 安装 Docker部署单机版 Hadoop 的完整流程。


    一、安装 Docker

    1. 更新系统包

    sudo apt update && sudo apt upgrade -y
    

    2. 安装 Docker 及其依赖

    sudo apt install docker.io -y
    

    3. 启动并启用 Docker 服务

    sudo systemctl start docker
    sudo systemctl enable docker
    

    4. 验证 Docker 是否安装成功

    docker --version
    docker info
    

    二、使用 Docker 部署单机版 Hadoop

    这里我们使用一个常用的 Hadoop 单机镜像:bde2020/hadoop,它已经预配置好了 Hadoop 的基本环境。

    1. 拉取 Hadoop 镜像

    docker pull bde2020/hadoop:latest
    

    2. 运行 Hadoop 容器(单机模式)

    docker run -itd \
      --name hadoop-single-node \
      -p 50070:50070 \
      -p 8088:8088 \
      -p 9000:9000 \
      bde2020/hadoop:latest
    

    说明:

    • -itd:以交互式、后台运行方式启动容器。
    • -p:映射容器端口到宿主机。
    • 50070:HDFS Web UI 端口。
    • 8088:YARN Web UI 端口。
    • 9000:HDFS NameNode 端口。

    3. 查看容器状态

    docker ps
    

    三、验证 Hadoop 是否正常运行

    1. 进入容器

    docker exec -it hadoop-single-node bash
    

    2. 启动 Hadoop 服务

    start-dfs.sh
    start-yarn.sh
    

    3. 检查 Hadoop 进程

    jps
    

    你应该看到如下进程:

    • NameNode
    • DataNode
    • ResourceManager
    • NodeManager

    4. 访问 Web UI

    打开浏览器,访问以下地址:

    • HDFS Web UI: http://localhost:50070
    • YARN Web UI: http://localhost:8088

    四、运行示例 MapReduce 任务(可选)

    1. 在容器内创建测试文件

    echo "Hello World" > input.txt
    hdfs dfs -put input.txt /input
    

    2. 运行 MapReduce 示例

    hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output
    

    3. 查看输出结果

    hdfs dfs -cat /output/*
    

    五、常见问题与解决方案

    1. 无法访问 Web UI

    • 原因:防火墙或网络配置问题。
    • 解决
      sudo ufw allow 50070
      sudo ufw allow 8088
      sudo ufw allow 9000
      

    2. Hadoop 命令未找到

    • 原因:路径未正确设置。
    • 解决
      export PATH=$PATH:/usr/local/hadoop/bin
      

    3. 容器启动失败

    • 原因:Docker 端口冲突或资源不足。
    • 解决
      • 更改映射端口。
      • 增加内存限制(通过 Docker Desktop 或命令行参数)。

    六、总结

    ✅ 重点步骤总结:

    1. 安装 Docker

      • 更新系统包
      • 安装 Docker 并启动服务
    2. 部署 Hadoop 单机版

      • 使用 bde2020/hadoop 镜像
      • 映射必要端口
      • 启动 Hadoop 服务
    3. 验证与测试

      • 进入容器执行命令
      • 访问 Web UI
      • 运行 MapReduce 示例

    七、参考代码(可选)

    如果你需要自定义构建 Hadoop 镜像,可以使用以下 Dockerfile 示例:

    FROM openjdk:8-jdk-alpine
    RUN apk update && apk add --no-cache curl wget tar
    ENV HADOOP_VERSION=3.3.6
    RUN wget https://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz
    RUN tar -xzf hadoop-${HADOOP_VERSION}.tar.gz -C /usr/local && \
        mv /usr/local/hadoop-${HADOOP_VERSION} /usr/local/hadoop && \
        rm hadoop-${HADOOP_VERSION}.tar.gz
    ENV HADOOP_HOME=/usr/local/hadoop
    ENV PATH=$PATH:$HADOOP_HOME/bin
    CMD ["hadoop", "version"]
    

    你可以使用这个 Dockerfile 构建自己的 Hadoop 镜像:

    docker build -t my-hadoop .
    

    如需进一步配置高可用性或集群模式,请告知我,我可以提供更详细的方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月26日