首页 > 其他分享 >基于Docker容器搭建hadoop完全分布式集群环境

基于Docker容器搭建hadoop完全分布式集群环境

时间:2023-12-10 10:11:59浏览次数:36  
标签:容器 RUN hadoop centos7 ssh 镜像 docker Docker 分布式

简介

  • 物理机:windows10
  • 宿主机:Centos7虚拟机,需要安装Docker服务
  • hadoop集群节点:3个centos7的容器,hadoop1、hadoop2、hadoop3
  • 组件:
    • 容器镜像:Centos7
    • Docker CE 24.0.7
    • JDK1.8.0_181
    • Hadoop3.1.3

1.新建虚拟机

安装CentOS7

2.安装Docker

2.1安装docker服务

yum -y install docker-ce

2.2 开启docker服务

systemctl start docker
systemctl status docker # 查看服务状态
docker version # 查看版本
Client: Docker Engine - Community
Version: 24.0.7
Server: Docker Engine - Community
Engine:
Version: 24.0.7

3. 制作镜像

3.1 拉取镜像

docker pull centos:7
docker images #查看镜像
centos 7 eeb6ee3f44bd 2 years ago 204MB

3.2 制作镜像

(1)制作Dockerfile文件
vi Dockerfile

Dockerfile
FROM centos:7
MAINTAINER zyz

RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*
RUN yum makecache
RUN yum update -y

RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN yum install -y openssh-clients

RUN echo "root:root" | chpasswd
RUN echo "root   ALL=(ALL)       ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

FROM:基于什么镜像来制作自己的镜像
MAINTAINER:表示该镜像的作者(维护者)
第2段:配置yum,包括修改镜像源、提速、更新
第3段:安装ssh服务和ssh客户端
第4段:生成ssh密钥
第5段:开启ssh服务,暴露SSH的默认端口22
(2)生成镜像
docker build -t centos7-ssh .
"."表示当前目录,即Dockerfile所在的位置
docker images
centos7-ssh latest d39095d60198 17 hours ago 1.42GB

4. 创建容器

(1)创建网桥
docker network create hadoop
docker network ls # 查看网桥
371545b29a8d hadoop bridge local
(2)创建容器

docker run -itd --network hadoop --name hadoop1 -p 50070:50070 -p 8088:8088 centos7-ssh
docker run -itd --network hadoop --name hadoop2 centos7-ssh
docker run -itd --network hadoop --name hadoop3 centos7-ssh

i:立即运行,t:终端,d:后台运行
*--network:容器要加入的网桥,--name:指定容器名称,-p:表示映射端口,centos7-ssh表示创建容器的镜像 *
(3)查看容器
docker ps #查看正在运行的容器


点击查看容器信息
CONTAINER ID   IMAGE         COMMAND               CREATED        STATUS        PORTS                                                                                              NAMES
71c3b5fa9846   centos7-ssh   "/usr/sbin/sshd -D"   12 hours ago   Up 10 hours   22/tcp                                                                                             hadoop3
a16e70f1373e   centos7-ssh   "/usr/sbin/sshd -D"   17 hours ago   Up 10 hours   22/tcp                                                                                             hadoop2
bac46cc68c73   centos7-ssh   "/usr/sbin/sshd -D"   17 hours ago   Up 10 hours   0.0.0.0:8088->8088/tcp, :::8088->8088/tcp, 22/tcp, 0.0.0.0:50070->50070/tcp, :::50070->50070/tcp   hadoop1

(4)查看网桥
docker network inspect hadoop

点击查看网桥信息
"Containers": {
            "71c3b5fa98463d995affb206496c04ee6f2fdaedda15240dc490f79f8cad23f9": {
                "Name": "hadoop3",
                "EndpointID": "2710a60e5ef5ea4e590ed2faff7a9db5eca2e5ea960867f05cc818a665a3c4bf",
                "MacAddress": "02:42:ac:13:00:04",
                "IPv4Address": "172.19.0.4/16",
                "IPv6Address": ""
            },
            "a16e70f1373ef80a53bee0fa0af01b861137ada82787bc909d708fe8774a6651": {
                "Name": "hadoop2",
                "EndpointID": "eee50c5aae298154e0811b6dfdc60fc46e9bf2d4a097b67b73582150748fd890",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "bac46cc68c739292fa36b4a1b92ed9f0347f8d622a7129922b6ab7d009b618f9": {
                "Name": "hadoop1",
                "EndpointID": "209ace260c8f2161e0aa805f3b034c66b7892fb8fa9a2a1f7d903dc9100aff3f",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            }
        }

5.给容器安装软件

标签:容器,RUN,hadoop,centos7,ssh,镜像,docker,Docker,分布式
From: https://www.cnblogs.com/beast-king/p/17892187.html

相关文章

  • docker基础知识
    目录1.docker简介1.为什么要创建隔离的环境?2.为什么dockeri可以比虚拟机极大的节省资源?3.docker基础概念(1)镜像(Image)(2)容器(Container)2.docker使用1.docker安装2.docker命令dockersearch查询镜像dockerpull拉取镜像dockerimages查看镜像dockerbuild构建镜像dockerstart......
  • 分布式ID
    1.分布式ID什么是ID?日常开发中,我们需要对系统中的各种数据使用ID唯一表示,比如用户ID对应且仅对应一个人,商品ID对应且仅对应一件商品,订单ID对应且仅对应一个订单。简单来说,ID就是数据的唯一标识。什么是分布式ID?分布式ID是分布式系统下的ID。举一......
  • Docker的常用命令
    docker命令有很多,总的分为以下几大类:容器生命周期管理—docker[run|start|stop|restart|kill|rm|pause|unpause]容器操作运维—docker[ps|inspect|top|attach|events|logs|wait|export|port]容器rootfs命令—docker[commit|cp|diff]镜像仓库—docker[login|pu......
  • Docker - Remove build cache
    dockerbuilderpruneRemovebuildcacheUsagedockerbuilderpruneDescriptionRemovebuildcacheOptionsOptionShortDefaultDescription--all-a Removeallunusedbuildcache,notjustdanglingones--filter  Providefiltervalues(e.g. unt......
  • How to Use Docker and NS-3 to Create Realistic Network Simulations
    https://insights.sei.cmu.edu/blog/how-to-use-docker-and-ns-3-to-create-realistic-network-simulations/ HowtoUseDockerandNS-3toCreateRealisticNetworkSimulationsALEJANDROGOMEZMARCH27,2023Sometimes,researchersanddevelopersneedt......
  • 3-运行第一个docker image-hello world
    CentOS7.9下安装完成docker后,我们开始部署第一个dockerimage-helloworld1.以root用户登录CentOS7.9服务器,拉取centos7images命令:dockerpullhello-world[root@centos79~]#dockerpullhello-worldUsingdefaulttag:latestlatest:Pullingfromlibrary/hello-world2db29......
  • Docker入门教程
    什么是DockerDocker是开源的应用容器引擎。Docker可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。Docker容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像......
  • 分布式学习记录,第三天
       在分布式学习的探索之旅中,我们继续深入学习并实践了分布式学习的核心概念和技巧。第三天,我们主要关注于分布式学习中的同步和异步策略,以及如何优化通信开销以进一步提高学习效率。    首先,我们讨论了分布式学习中的同步策略。同步策略是指在所有计算节点上同时进......
  • Docker build 无法解析域名
    ###报错Dockerbuild无法解析域名报错:ERROR[2/12]RUNcurl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo解决Dockerbuild无法解析域名#追加到etc/docker/daemon.json,注意JSON的格式{"dns":["8.8.8.8","114.114.1......
  • 分布式架构和微服务架构的概念理解
    分布式架构相当于物理上的拆分,微服务架构相当于逻辑上的拆分。比如一个互联网平台有mes系统,wms系统,把mes系统单独部署在一个服务器上,把wms系统单独部署在另一个服务器上,这就相当于是一个物理拆分的分布式架构。如果mes的生产模块会有大量的请求此时只能针对整个mes系统进行集群部署......