docker:Haoop集群

系列文章目录

docker:环境安装
docker:Web迁移
docker:Haoop集群



前言

年前学习了docker的相关知识,过年休息了多半月,现在开始继续学习,这次要完成我之前多次做实验的一个设想,就是用docker进行Hadoop集群部署,真正的完成一次构建,导出运行。


一、宿主机选择

这里说一下我踩过的坑,具体原因还没有找到,在最初的设想里,我是想在我的Debian服务器上运行Centos镜像的,经过测试,会出现多个容器内部无法连接的现象,最终将宿主机和容器操作系统统一时这个问题消失了,具体原因未知,所以这里我依旧选择用Cenos7作为宿主机器。

二、环境准备

1.前置技术

我要docker完成我Hadoop专栏中前两章的集群搭建,有过了解后边会更容易看懂。
Hadoop专栏
以下内容我只会记录一些与专栏有差异的操作,相同的配置和操作将不会演示,所以你想从0搭一个集群,但是还没有基础,那现在赶紧退出。

2.网络环境

1. docker网卡

docker network create --subnet=172.18.0.0/16 hadoop-br

我们为Hadoop集群专门新建一个网络。用作集群内部的互联。

2. 分配IP

我们在新建容器的时候直接完成域名和IP的绑定,就不用在docker内修改host文件了,docker会把域名和IP的对应关系直接记录在指定的网络中。

docker run -d --privileged -it -v /opt/software:/opt/software --name hadoop102 --ip 172.18.0.2 -h hadoop102 -p 9870:9870 --net hadoop-br centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop103 -h hadoop103 --net hadoop-br --ip 172.18.0.3 -p 8088:8088 centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop104 -h hadoop104 --net hadoop-br --ip 172.18.0.4 centos:centos7.9.2009 /usr/sbin/init

这里顺便将一些需要的文件通过数据卷挂载进去,一些Hadoop的WebUI需要用的端口直接也加上。

三、容器互联

我们分别开三个终端,然后连接到三个容器。

docker exec -it hadoop102 bash
docker exec -it hadoop103 bash
docker exec -it hadoop104 bash

之后我们为每个终端创建新用户,这里和专栏内容一样,不演示。
然后为新用户添加root权限,最基本的Centos7镜像是没有的/etc/sudoers的。
需要为每一个容器安装sudo。

yum install sudo -y

然后即可编写/etc/sudoers文件。
但是当修改时会出现这个报错。
在这里插入图片描述
我们需要给其添加权限。

 chmod 600 /etc/sudoers

然后可以正常修改了。
之后创建家目录和工作目录和专栏一样,不演示。
现在我们转换到新用户开始建立免密登录。

su atguigu

为三台电脑安装ssh

yum -y install openssh-clients openssh-server

我们在102上ping一下其它主机看看能否ping通。

在这里插入图片描述
能ping通就可以进行免密登录的配置。
先对ssh进行配置

vi /etc/ssh/ssh_config

在这里插入图片描述
然后重启一下ssh服务。
systemctl restart sshd
三台容器都要修改重启。
然后先手动ssh连接一下。
在这里插入图片描述
成功以后即可进行免密配置。
注意免密配置全程使用atguigu。
配置过程和专栏一样,不演示。
配置完成后测试一下。
在这里插入图片描述

三、Jdk和Hadoop安装

全程和专栏一致,不做演示。

四、分发脚本

在三个容器中安装rsync

sudo yum install rsync -y

然后编写分发脚本。
但是不知道为什么创建完之后无法直接调用,所以我们创造一个软连接。

sudo ln -s /home/atguigu/bin/xsync /usr/bin/xsync

然后尝试分发jdk和hadoop还有配置文件。

xsync /opt/module/

sudo xsync /etc/profile.d/my_env.sh

再分发配置文件的时候会出现这个问题。
在这里插入图片描述
因为我们用了sudo,所以这条命令使用root执行的,但我们没有给root用户设置免密,现在我们要设置一下。
Ctrl+D切换会root用户,然后设置密码,三台都设置。

passwd root

之后和atguigu一样设置免密。

ssh-keygen -t rsa

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

现在切换到atguigu进行配置文件分发。
在这里插入图片描述
现在就可以正常分发了。

五、启动Hadoop

hadoop102执行

hdfs namenode -format
sbin/start-dfs.sh

hadoop103执行

sbin/start-yarn.sh

然后在Web查看。
ip:9870
在这里插入图片描述
ip:8088
在这里插入图片描述


总结

至此集群的基本框架搭建完毕,可以更加自己的需要选择保存镜像或者上传仓库。

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值