[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操作系统
- 系统要求:
我们这篇文章是讲Cent OS7上面的安装,所以先安装好的一个Cent OS7以上的系统吧 - 设置静态ip:
在设置静态IP的时候,容易踩坑,容易出现设置完(即修改完network-scripts里面的网络配置文件后无法ping通外网,如百度,显示:未知网址的错误)无法联网的问题。所以要先设置好静态ip,而且能够连网的。之前我在设置静态ip的时候踩了一个大坑,设置完不能连网,可以看我的另一篇文章[LINUX]CentOS7设置静态IP,设置静态ip - 主机设置:
因为搭建集群,所以要四台以上的机器,我这里就贴出了我自己搭建好的四台机器信息,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、本文相关连接
本文所有的外部连接都会在此处贴出,省去重复查找的麻烦
- 设置静态IP[LINUX]CentOS7设置静态IP
- 关闭防火墙linux常用命令和关闭防火墙(其他博主的文章)
- 使用阿里云的镜像在 Centos7 下使用 Docker 快速搭建 Hadoop 集群(其他博主的文章)
- 使用无密的ssh机制ssh-keygen的使用ssh-keygen的使用(其他博主的文章)
- 比较不错的docker教程docker教程
4、本文说明
- Error开头的为可能遇到的问题举例示意,并且贴上解决方法
- 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万+

被折叠的 条评论
为什么被折叠?



