1.利用yum安装docker
2.确保docker安装完成后需要关闭防火墙并重启系统
systemctl stop firewallds
systemctl disable firewallds
注意:执行完上面的命令之后需要重启系统
reboot -h(重启系统)闭防火墙
注意:执行完上面的命令之后需要重启系统
reboot -h(重启系统)闭防火墙
3.需要关闭selinux
解决方法:1:setenforce 0(立刻生效,不需要重启操作系统)
2:修改/etc/selinux/config文件中的SELINUX=disabled ,然后重启系统生效
建议两个步骤都执行,这样可以确保系统重启之后selinux也是关闭状态
4.镜像的构建(jdk1.8+hadoop2.7.3)
(1)构建centos-ssh-root镜像
(2)构建centos-ssh-root-jdk镜像(jdk为1.8)
(3)构建 centos-ssh-root-jdk-hadoop镜像(hadoop2.7.3版本)
(4)验证构建镜像
进入各个镜像目录文件执行docker build -t="centos-ssh-root" .
docker build -t="centos-ssh-root-jdk" .
docker build -t="centos-ssh-root-hadoop" .
5.构建hadoop集群
(1)分别启动三个容器,分别作为hadoop0 hadoop1 hadoop2
docker run --name hadoop0 --hostname hadoop0 -d -P -p 50070:50070 -p 8088:8088 centos-ssh-root-jdk-hadoopdocker run --name hadoop1 --hostname hadoop1 -d -P centos-ssh-root-jdk-hadoop
docker run --name hadoop2 --hostname hadoop2 -d -P centos-ssh-root-jdk-hadoop
(2)修改hosts文件(根据每个容器的分配ip进行修改)
vi /etc/hosts(3)设置ssh免密码登录
在hadoop0上执行下面操作cd ~
mkdir .ssh
cd .ssh ssh-****** -t rsa(一直按回车即可)
ssh-copy-id -i localhost
ssh-copy-id -i hadoop0
ssh-copy-id -i hadoop1
ssh-copy-id -i hadoop2
在hadoop1上执行下面操作
cd ~
cd .ssh
ssh-****** -t rsa(一直按回车即可)
ssh-copy-id -i localhost
ssh-copy-id -i hadoop1
在hadoop2上执行下面操作
cd ~ cd .ssh ssh-****** -t rsa(一直按回车即可)
ssh-copy-id -i localhost
ssh-copy-id -i hadoop2
(4)hadoop0上修改hadoop的配置文件
(4-1)修改hadoop-env.sh的jdk路径
vi hadoop-env.sh(4-2)修改core-site.xml
(4-3)修改hdfs-site.xml
(4-4)修改yarn-site.xml
(4-5)修改mapred-site.xml
执行mv mapred-site.xml.template mapred-site.xmlvi mapred-site.xml
(6)添加指定nodemanager的地址,修改文件yarn-site.xml
(7)修改hadoop0中hadoop的一个配置文件etc/hadoop/slaves
(8)将在hadoop0中的配置,复制到hadoop1和hadoop2中
scp -rq /usr/local/hadoop hadoop1:/usr/localscp -rq /usr/local/hadoop hadoop2:/usr/local
(9)执行执行格式化命令并启动start-all.sh
bin/hdfs namenode -format(10)登录浏览器查看结果
http://172.176.0.2:8088/cluster/nodeshttp://172.176.0.2:50070/dfshealth.html#tab-datanode