Docker部署hadoop

一、环境准备

  • 操作系统:Centos7.9

二、安装并启动Docker

  1. 安装
  • 方法一:从阿里云镜像获取安装包
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 方法二:从docker官方获取安装包
 sudo yum install -y yum-utils

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

建议使用方法一安装过程较快

获取到安装包以后开始安装

yum install -y docker-ce docker-ce-cli containerd.io

安装完成以后可输入docker version验证docker是否安装成功
如果出现
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:41 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:44:05 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
表示安装成功

  1. 启动
sudo systemctl start docker

三、 配置hadoop

  1. 下载doker下的hadoop
docker pull kiwenlau/hadoop1.0
  1. 在docker中搭建网络
docker network create –d=bridge hadoop
  1. 创建hadoop-master容器
docker run -itd \
--net=hadoop \
--name hadoop-cluster1 \
--hostname haddoop-master \
-p 50070:50070 \
-p 9000:9000 \
-p 8088:8088 \
kiwenlau/hadoop1.0
  1. 创建hadoop-slave1容器
docker run -itd \
--net=hadoop \
--name hadoop-cluster2 \
--hostname haddoop-slave1 \
kiwenlau/hadoop1.0
  1. 创建hadoop-slave2容器
docker run -itd \
--net=hadoop \
--name hadoop-cluster3 \
--hostname haddoop-slave2 \
kiwenlau/hadoop1.0

四、启动hadoop集群

  1. 进入hadoop-master容器
docker exec -it hadoop-master bash
  1. 启动hadoop集群
./start-hadoop.sh
  1. 使用jps命令查看启动的服务

root@hadoop-master:~# jps
1549 SecondaryNameNode
1356 NameNode
8098 Jps
1705 ResourceManager

五、关闭hadoop集群

  1. 使用exit可以退出当前容器的命令窗口

     exit
    

    此时hadoop容器仍会在后台继续运行
    root@hadoop-master:~# exit
    exit
    [root@qh ~]#

  2. 退出容器命令窗口后可使用docker stop hadoop-master命令停止容器,停止后容器不再运行

    [root@qh ~]# docker stop hadoop-master

  3. 可使用docker ps命令查看所有容器的运行情况

[root@qh ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5927d483b848 a59a34125272 “sh -c 'service ssh …” 2 days ago Up 2 days hadoop-slave1
290b68fef58d a59a34125272 “sh -c 'service ssh …” 2 days ago Up 2 days hadoop-slave2
785a90585d6b a59a34125272 “sh -c 'service ssh …” 2 days ago Stop 5 seconds ago 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:50070->50070/tcp, :::50070->50070/tcp hadoop-master
可见hadoop-master已经停止

六、卸载Docker

  1. 卸载 Docker软件包
 sudo yum remove docker-ce docker-ce-cli containerd.io
  1. 卸载docker后,主机上的容器等一系列文件不会自动删除,删除所有docker有关文件可用:
 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker上搭建Hadoop集群,可以分为以下几个步骤: 1. 安装DockerDocker Compose; 2. 创建一个Docker Compose文件,定义Hadoop集群的各个节点(namenode、datanode、resourcemanager、nodemanager、historyserver); 3. 在Docker Compose中配置Hadoop集群的网络; 4. 编写Hadoop集群的配置文件,并将其挂载到Docker容器中; 5. 启动Docker容器部署Hadoop集群。 以下是一个示例的Docker Compose文件,用于部署一个包含一个namenode节点、一个datanode节点、一个resourcemanager节点、两个nodemanager节点和一个historyserver节点的Hadoop集群: ``` version: "3.7" services: namenode: image: sequenceiq/hadoop-docker:2.7.0 container_name: namenode hostname: namenode ports: - "50070:50070" - "8088:8088" volumes: - ./hadoop-conf:/etc/hadoop - ./hadoop-data/namenode:/hadoop/dfs/name environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -namenode networks: hadoop-net: ipv4_address: 172.18.0.2 datanode: image: sequenceiq/hadoop-docker:2.7.0 container_name: datanode hostname: datanode ports: - "50075:50075" volumes: - ./hadoop-conf:/etc/hadoop - ./hadoop-data/datanode:/hadoop/dfs/data environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -datanode networks: hadoop-net: ipv4_address: 172.18.0.3 resourcemanager: image: sequenceiq/hadoop-docker:2.7.0 container_name: resourcemanager hostname: resourcemanager ports: - "8088:8088" volumes: - ./hadoop-conf:/etc/hadoop environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -resourcemanager networks: hadoop-net: ipv4_address: 172.18.0.4 nodemanager1: image: sequenceiq/hadoop-docker:2.7.0 container_name: nodemanager1 hostname: nodemanager1 volumes: - ./hadoop-conf:/etc/hadoop environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -nodemanager networks: hadoop-net: ipv4_address: 172.18.0.5 nodemanager2: image: sequenceiq/hadoop-docker:2.7.0 container_name: nodemanager2 hostname: nodemanager2 volumes: - ./hadoop-conf:/etc/hadoop environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -nodemanager networks: hadoop-net: ipv4_address: 172.18.0.6 historyserver: image: sequenceiq/hadoop-docker:2.7.0 container_name: historyserver hostname: historyserver ports: - "19888:19888" volumes: - ./hadoop-conf:/etc/hadoop environment: - CLUSTER_NAME=hadoop-cluster command: /etc/bootstrap.sh -d -historyserver networks: hadoop-net: ipv4_address: 172.18.0.7 networks: hadoop-net: driver: bridge ipam: driver: default config: - subnet: 172.18.0.0/16 ``` 在上述文件中,定义了一个名为"hadoop-net"的网络,用于连接Hadoop集群中的各个节点。每个节点都有一个对应的Docker容器,其中包含了所需的Hadoop组件和配置文件,以及相关的环境变量和命令。 在启动Docker容器之前,需要先编写Hadoop集群的配置文件,并将其挂载到Docker容器中。例如,可以在本地创建一个名为"hadoop-conf"的文件夹,其中包含了core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml和hadoop-env.sh等配置文件。 最后,使用docker-compose命令启动Docker容器,即可完成Hadoop集群的部署: ``` docker-compose up -d ``` 在启动之后,可以通过访问http://localhost:50070查看Hadoop集群的状态,并通过Hadoop命令行工具(例如hdfs dfs -ls /)来操作文件系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值