docker 容器实现 hadoop分布式集群部署

在学习hadoop课程中,讲师介绍了hadoop的单机以及集群部署方式,由于本地资源限制,只有一台虚拟机,所以考虑使用docker的方式实现分布式集群搭建。
在这里插入图片描述
如上图:
需要在主节点启动NameNode,Secondary namenode,Resource Manager
从节点启动:DataNode,Node Manager

准备

  1. 下载centos镜像: docker pull centos
  2. 启动一个容器:docker run -td --name base -i centos bash
  3. 进入容器,安装jdk及hadoop,方法和主机一样
  4. 容器中安装ssh:yum install openssh-server openssh-clients
  5. 设置免密登录: ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  6. 保存容器修改:docker commit base hadoop:4

配置

新建目录结构如下,只需要创建两个文件:docker-compose.yml以及Dockerfile,其他文件夹是启动后自动生成的

在这里插入图片描述
docker-compose.yml

version: '2.0'
services:
  hadoop01:
    build: .
    container_name: "hadoop01"
    volumes:
     - ./hadoop01:/data/hadoop_repo
    tty: true
    privileged: true
    hostname: hadoop01
    ports:
     - "9870:9870"  
     - "8088:8088"
  hadoop02:
    image: "hadoopdockercluster_hadoop01"
    container_name: "hadoop02"
    tty: true
    privileged: true
    hostname: hadoop02
    volumes:
     - ./hadoop02:/data/hadoop_repo
  hadoop03:
    image: "hadoopdockercluster_hadoop01"
    container_name: "hadoop03"
    tty: true
    privileged: true
    hostname: hadoop03
    volumes:
     - ./hadoop03:/data/hadoop_repo

Dokerfile

FROM hadoop:4
ENV JAVA_HOME=/opt/jdk1.8.0_181
ENV HADOOP_HOME=/opt/hadoop-3.2.0-cluster
ENV PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
CMD ["/usr/sbin/sshd","-D"]

启动

docker-compose build
docker-compose up -d
docker exec -it hadoop01 bash
格式化HDFS: hdfs namenode -format
启动: start-all.sh

验证

查看容器列表

在这里插入图片描述

前台访问:

hdfs: http://192.168.56.104:9870/

在这里插入图片描述

yarn: http://192.168.56.104:8088/

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值