[Hadoop]在CentOS7上使用Docker部署Hadoop

请支持原创,认准DannisTang(tangweixuan1995@foxmail.com)

时间 更新日志
20190425 1、创建文章:以后慢慢填坑(虽然留了很多坑,但是正在慢慢解决中,不明白的地方请发邮件给我)
20190427 1、添加内容:运行Docker;2、修改文章的部分问题;3、I love you three thousand times.
20190428 1、添加内容:Docker网络和子网容器设置;2、添加内容:Docker镜像和容器安装;3、添加内容:Docker镜像删除报错.
20190430 1、添加内容:我也忘了添加了什么了
20190504 1、添加内容:docker的镜像查找;阿里云镜像的使用;修改yum的更新步骤
20190508 1、添加内容:安装完阿里云的docker之后,与宿主机通信的方式;2、新增资源:找到了一个比较不错docker教程网站贴出来
20190624 1、添加内容:诈尸级别的更新,我把阿里云的docker的完全分布式搞定了
20190702 1、添加内容:上次更新的时候,突然被其他事情打断了,没有更新完成,这次好好更新一下
20190707 1、添加内容:继续填坑

〇、先决条件

如果你没有使用过docker来部署hadoop,那么这篇文章从零开始教你使用Docker部署Hadoop。
网上的资料众多,我本人也是踩了不少的坑,顺表贴一个比较好的docker教程,算是比较不错的入门的网站的,docker教程

1、Linux操作系统

  1. 系统要求:
    我们这篇文章是讲Cent OS7上面的安装,所以先安装好的一个Cent OS7以上的系统吧
  2. 设置静态ip:
    在设置静态IP的时候,容易踩坑,容易出现设置完(即修改完network-scripts里面的网络配置文件后无法ping通外网,如百度,显示:未知网址的错误)无法联网的问题。所以要先设置好静态ip,而且能够连网的。之前我在设置静态ip的时候踩了一个大坑,设置完不能连网,可以看我的另一篇文章[LINUX]CentOS7设置静态IP,设置静态ip
  3. 主机设置:
    因为搭建集群,所以要四台以上的机器,我这里就贴出了我自己搭建好的四台机器信息,IP一定要静态IP,不然容易出现已配置好的集群找不到机器的错误
OS 内核 主机名Hostname IP地址 备注
CentOS 7.6.18 3.10.0 hadoopmaster 192.168.137.25 Hadoop架构主节点
CentOS 7.6.18 3.10.0 hadoopslave1 192.168.137.26 Hadoop架构从节点
CentOS 7.6.18 3.10.0 hadoopslave2 192.168.137.27 Hadoop架构从节点
CentOS 7.6.18 3.10.0 hadoopslave3 192.168.137.28 Hadoop架构从节点
CentOS 7.6.18 3.10.0 hadoopslave4 192.168.137.29 Hadoop架构从节点

2、阅读本文的注意事项

1. 在贴出的代码中,如果没有标注,均为ssh会话
2. 使用sh脚本的注释号#号来表示说明,如以下的示例中,三个井号后面:###就是我自己的注释讲解

###这里先查看内核版本
[root@localhost ~]# uname -r 

3. 因为文章篇幅问题,部分的代码(通常是ssh会话出现的代码)就省略了
4. 在文中会列举一些出现错误的情况:如果出现了,请按照提示进行解决;如果没出现,那就不要管了,跳过就行;如果未能解决,请发邮件给我或是问问神奇的百度

3、本文相关连接

本文所有的外部连接都会在此处贴出,省去重复查找的麻烦

  1. 设置静态IP[LINUX]CentOS7设置静态IP
  2. 关闭防火墙linux常用命令和关闭防火墙(其他博主的文章)
  3. 使用阿里云的镜像在 Centos7 下使用 Docker 快速搭建 Hadoop 集群(其他博主的文章)
  4. 使用无密的ssh机制ssh-keygen的使用ssh-keygen的使用(其他博主的文章)
  5. 比较不错的docker教程docker教程

4、本文说明

  1. Error开头的为可能遇到的问题举例示意,并且贴上解决方法
  2. Command开头的为一些常用命令补充

5、用户设置

用户设置这一步应该是在安装之前的步骤,所以先贴在这里

[root@localhost ~]# groupadd docker
###创建用户组docker组
[root@localhost ~]# usermod -aG docker hadoopmaster
###将hadoopslave1用户添加到docker用户组中,你可以自己创建其他名字的docker用户来完成这一步
[root@localhost ~]# su - hadoopmaster
###然后切换到hadoopslave1这个用户开始进行会话
###注意在后面会话中的根据会话前面的用户名来切换用户
[hadoopmaster@localhost ~]$ 

还要赋予hadoopmaster用户root权限

[root@localhost ~]# vim /etc/sudoers
###找到一处有如下所示的地方

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

###你的原文可能是这样: #%wheel  ALL=(ALL)       ALL    这里要把这个注释号去掉,变成上面这样,意思是让这条语句生效
###再找到还有下面这样一处的地方

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
hadoopmaster ALL=(ALL)   ALL
###hadoopmaster这一行是新加的,不一定是hadoopmaster,也可以使用你自己命名的用户
[root@localhost ~]# usermod -a -G root hadoopmaster
###添加hadoopmaster用户到root组中
[root@localhost ~]# su - hadoopmaster
###切换到hadoopmaster用户
[hadoopmaster@localhost ~]$ who mom likes
root     pts/0        2019-04-27 05:06 (###这个括号会显示出计算机域组名,这里为了脱敏就不贴出来了)
[hadoopmaster@localhost ~]$ 

在添加这些完成之后,一些root用户的权限的命令也能用的hadoopmaster执行,只不过需要加sudo,可以自行尝试一下,比如root用户权限的yum update可以使用hadoopmaster用户的sudo yum update来执行。

Command 1:添加用户到组

用户添加到多个组的用户

usermod -G groupname username 
###这种会把用户从其他组中去掉,只属于该组)、
###例如:usermod -G hadoop hadoopmaster(hadoopmaster只属于hadoop组)

usermod -a -G groupname username 
###也可以写成usermod -aG groupname username 
###把用户添加到这个组,之前所属组不影响
###例如:usermod -a -G spark hadoopmaster(hadoopmaster属于之前hadoop组,也属于spark 组)

6、图解安装步骤

一、安装Docker

很多人先卡死在Docker上,所以还是先安装Docker比较好。

1、查看内核

Docker 对于 CentOS 系统的内核版本要求是高于或等于 3.10 ,在安装之前,先验证你的CentOS 版本是否支持 Docker 。可以通过 uname -r 命令查看你当前的内核版本

[root@localhost ~]$ uname -r
3.10.0-327.el7.x86_64
[root@localhost ~]$ 

如果显示的数字大于或等于3.10即可,如果低于3.10版本的话,需要更新一下。

2、更新yum源和yum包

使用 root 权限登录 Centos。更换成阿里云的yum源,确保 yum 包更新到最新。但是你也可以用其他的yum源。
此处更新完毕后,版本系统会更新,属于正常现象,但是内核不会更新,要更新内核的话要用其他的方法

[root@localhost ~]# cat /etc/redhat-release 
###更新之前先看一下版本号
CentOS Linux release 7.2.0940 (Core) 
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
###这里设置的是阿里云的yum源
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@localhost ~]# yum update
###这里省略中间的代码,主要是显示更新安装包的信息,内容巨多,然后会开始让你确认是否下载安装,直接输入y即可
[root@localhost ~]# yum makecache fast
###更新完之后,更新一下yum缓存即可,你电脑上显示的可能跟我的不一样,属于正常
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: ftp.sjtu.edu.cn
base                                                                                                                                                                                           | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                                                                               | 3.5 kB  00:00:00     
extras                                                                                                                                                                                         | 3.4 kB  00:00:00     
updates                                                                                                                                                                                        | 3.4 kB  00:00:00     
(1/2): extras/7/x86_64/primary_db                                                                                                                                                              | 201 kB  00:00:00     
(2/2): updates/7/x86_64/primary_db                                                                                                                                                             | 4.2 MB  00:00:01     
Metadata Cache Created
[root@localhost ~]# reboot

更新完之后最好重启一下

[root@localhost ~]# cat /etc/redhat-release 
###再看版本号,发现一家被更新到了7.6
CentOS Linux release 7.6.1810 (Core) 

3、卸载旧版本

卸载旧版本(如果安装过旧版本的话,如果之前没有安装过,这一步可以忽略)

[root@localhost ~]# yum remove docker  docker-common docker-selinux docker-engine
Loaded plugins: fastestmirror, langpacks
No Match for argument: docker
No Match for argument: docker-common
No Match for argument: docker-selinux
No Match for argument: docker-engine
No Packages marked for removal
###以上是没有安装过旧版本显示出来的会话
[root@localhost ~]# 

4、安装所需的软件包

安装需要的软件包, yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的,不过部分系统在更新完之后执行这一个步骤,一般会显示“nothing to do”,是正常现象,请放行使用

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
###在执行这一条命令的过程中,也是需要输入y进行确认的,直接输入即可
###如果之前更新过yum包,那这里会不需要安装的,如下所示
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                                           | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                                                                               | 3.5 kB  00:00:00     
extras                                                                                                                                                                                         | 3.4 kB  00:00:00     
updates                                                                                                                                                                                        | 3.4 kB  00:00:00     
Package yum-utils-1.1.31-50.el7.noarch already in
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值