Docker 上部署一主两从Hadoop集群 | [Centos7](上)

简介: 写在前面配置前须知集群规划step0 可能会遇到的问题及解决方式step1 开启docker拉取镜像step2 创建容器step3 免密登录配置1. ip查看2. 设置主机名3. 主机名与ip地址映射4. 免密登录5. 免密登录效果***bug fix1.0 /etc/hosts修改完成后重

写在前面


配置前须知


  1. 请用root用户登录虚拟机,以保证有充分的操作权限
  2. 可以使用第三方终端来连接虚拟机,这样会让我们配置的效率更高
  3. 有良好的心态来应对可能出现的意料之外的问题,有问题可以留言或私信,博主将会第一时间回复
  4. 在中途配置的过程中,尽量不要重启虚拟机,以免配置失效,如果重启,可能需要重新配置/etc/下的文件
  5. 配置过程中的主机名等请自行修改为自己的个人所需信息


第三方终端可以使用Windows自带的cmd,也可以使用之前博主推荐过的Tabby,详见往期博客


集群规划


一主两从

291781ba10314651a6b3b1c0349b4843.png


step0 可能会遇到的问题及解决方式


CentOS7 启动Docker后进入tty命令行界面无法退出的解决方式 链接

CentOS7下 Docker 重启容器后防火墙因重置失效的解决方式  链接


step1 开启docker拉取镜像


Docker 镜像查看:

docker images

d2b0380b389c400eaf3351efb4da253d.png


拉取镜像:

docker pull registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop

进行中:

7b92e9551e974ebcaf3fd99894003dd0.png


结束:

560da8f49d42493598ea5072fa5da432.png


step2 创建容器


DMaster315:

docker run -d --name DMaster315 -h DMaster315 \
 -p 50070:50070 --privileged=true \
registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init

528581a9a2684c058f7d1fa1188dabe1.png


DSlave01-315 && DSlave02-315:

docker run -d --name DSlave01-315 -h DSlave01-315 \
--privileged=true \
registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init
docker run -d --name DSlave02-315 -h DSlave02-315 \
--privileged=true \
registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init

b5a3b2d82e2e4cb5bdb36d329564481b.png


docker images查看:

8fac2d83f5404577bcc6f81325c39626.png


如果说你是直接在虚拟机的终端中操作的命令,可能会遇见跳转到了命令行模式,而没有了图形化界面,可以参考博主的这篇博客


CentOS7 启动Docker后进入tty命令行界面无法退出的解决方式:进入图形化界面


step3 免密登录配置


1. ip查看


如果此时你下载了第三方终端,建议开启三个标签页同时连接虚拟机,并使得三个标签页分别进入docker的三个机器:一个进入DMaster,一个进入DSlave01,另一个进入DSlave02


请先确认容器已经开启(docker ps查看所有已经开启的容器),如果未开启,请用命令docker ps -a查看想要开启的容器的id,然后用命令docker start 容器id来开启

命令:


进入DMaster315,并进入该机器的命令行终端
docker exec -it DMaster315 /bin/bash
进入DSlave01-315,并进入该机器的命令行终端
docker exec -it DSlave01-315 /bin/bash
进入DSlave02-315,并进入该机器的命令行终端
docker exec -it DSlave02-315 /bin/bash


进入容器查看IP:

命令是:ip addr

172.17.0.2/16 DMaster315

31315ecb53fa445fa8707c308622e6ee.png


172.17.0.3/16 DSlave01-315

3dfce6b24fcd4cbfa7186ba2864f027f.png


172.17.0.4/16 DSlave02-315

7f778b3f8c724f44a4e16f6ea6310f39.png


整理一下:

172.17.0.2 DMaster315
172.17.0.3 DSlave01-315
172.17.0.4 DSlave02-315


2. 设置主机名


DMaster315

d97064226a8b453c9df7b84a99b55839.png


vi /etc/sysconfig/network

需要写入:

NETWORKING=yes
HOSTNAME=DMaster315


d70db6abf4d64febbe94ce5758ca7601.png


DSlave01-315

vi /etc/sysconfig/network


ad763350d7514e91b26b70930163ed4a.png


需要写入:

NETWORKING=yes
HOSTNAME=DSlave01-315


86479d81180e4c23967f5a5016c664a3.png


DSlave02-315:

vi /etc/sysconfig/network

4d8b5a361a254fe18bb733d93f90033e.png


需要写入:

NETWORKING=yes
HOSTNAME=DSlave02-315


511204b651dc4afcb4e93f73f28aff1f.png


3. 主机名与ip地址映射


在三个机器上操作

修改/etc/hosts

使得三个机器该文件都有以下三行:

172.17.0.2 DMaster315
172.17.0.3 DSlave01-315
172.17.0.4 DSlave02-315


DMaster315:

2357bce31034404187abb40aa9aeaa60.png


DSlave01-315:

0b21c83452554d10be2a5b5717daf4f5.png


DSlave02-315:

b37427fc27ae471a9ec312cd3a269c23.png


4. 免密登录


安装passwd

yum install passwd

eb7a86a59f0840829c8cdaffb95a6835.png


修改root密码,需要两次输入相同密码

DMaster315修改密码:

770ed1454cea4e4a874837b15738c43a.png


DSlave01-315:

a3679f89fc6a40d7b9ac173752f40e27.png


DSlave02-315:

365ece0adcea4413a81ec4baffb37a61.png


查看各个机器~/.ssh下是否有密钥文件(id_rsa.pub文件)

如果没有需要自己生成,已经有的话,查看三个机器的密钥文件是否相同


  1. 如果相同的话,只需要在三个机器分别连接其他机器


  1. 如果不相同的话,参考本人博客进行配置

查看authorized_keys中是否包含有三个机器的id_rsa.pub


  1. 如果有,便不用追加进入authorized_keys


  1. 如果没有,需要将文件追加进入authorized_keys


  1. 如果和博主一样三个机器均已经含有id_rsa.pub文件,并且authorized_keys 文件中已经含有三个机器的id_rsa.pub文件,可以不必进行任何修改


5. 免密登录效果


DMaster315 ssh 其他机器

19b9a07862114243ae412745a5f71aa0.png


DSlave01-315 ssh 其他机器:

6c18a0a5755243a39342ce5c5551a5fc.png


DSlave02-315 ssh 其他机器:

c80872e3217f4cb98859e6ed6d2a9e8f.png


免密登陆成功


***bug fix1.0 /etc/hosts修改完成后重启容器失效


在配置完/etc/hosts之后,由于一些原因就关闭了虚拟机,再次打开之后发现免密登录失效

查看之后得知,在每次重启之后,/etc/hosts就会重置,因为运行容器是以挂载的方式进行的,所以就会在下次登陆的时候失效:

5e76a1e7dd8d4de2996168b1f6721898.png


可以参考博客

解决方式:

要在三个机器的/etc/hosts中都含有ip和主机名的映射

在三个机器的~/.bashrc中分别添加:

为了方便复制:

是>>追加写,切勿少了一个大于号


# add 2 lines to fix the problem : restart container ,/etc/hosts reset
echo "172.17.0.3 DSlave01-315" >> /etc/hosts
echo "172.17.0.4 DSlave02-315" >> /etc/hosts
echo "172.17.0.2 DMaster315" >> /etc/hosts


Dmaster315:

19df5e3c03424ee99ea4e7177fb1c55d.png


DSlave01-315:

83df3d727802409a8272505e7644a9a6.png


DSlave02-315:

6717a4d7965a4082bbcda6f77d219ba7.png


然后必须要source ~/.bashrc必须在三个机器上均进行source操作




目录
相关文章
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
1226 6
|
分布式计算 Hadoop Java
CentOS中构建高可用Hadoop 3集群
这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
496 21
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
1129 20
|
Java Linux
CentOS环境搭建Elasticsearch集群
至此,您已成功在CentOS环境下搭建了Elasticsearch集群。通过以上介绍和步骤,相信您对部署Elasticsearch集群有了充分的了解。最后祝您在使用Elasticsearch集群的过程中顺利开展工作!
689 22
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
1571 4
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
466 4
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
311 3
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
351 3
|
安全 NoSQL MongoDB
mongoDB CentOS7.2集群部署
1.关闭selinux vi /etc/selinux/config SELINUX=disabled setenforce 0   2.
1933 0