创帆云大数据教程系列1-搭建基于docker的hadoop环境安装规划、容器通信及zookeeper...

从今天开始,我将原原本本的讲述,如何利用Docker从头到尾搭建一个大数据hadoop环境。

首先,先介绍需要搭建的服务器集群环境,见下图:

v2-327b0592b5bbb63f74c53e854d2092ff_b.jpg

总共13台机器(13个docker 容器),其中:

namenode 2个节点,一主一备;

journalnode 3个节点;

resourceManager2个主节点,一主一备;

datanode 3个节点

zookeeper 3个节点

接下来具体一步一步开始:

准备工作

容器内默认是互相不能访问的,这个时候我们需要一个工具(这里推荐weave),先要让容器间可以互相访问,这样大数据间才能正常通信:

所有主机都需要安装

        $ curl -L git.io/weave -o /usr/local/bin/weave
 $ chmod a+x /usr/local/bin/weave
      

测试是否安装成功

        weave version
      

接下来在weave的主节点上:

        weave launch
      

在其他需要跨物理机互访的节点上:

        weave launch ip1 ip2 ip3 ipn......
      

解析:ip1是前面启动的weave主节点,其他ip是物理机间容器需要互相通信的局域网ip地址

分别对weave状态进行查询

        weave status
      

搭建zookeeper

启动zookeeper基础容器

        docker run -itd  --name zk XXX /usr/sbin/init
      

解析:

XXX是镜像的名称,此镜像应该是之前已经制作好的镜像,里面包括了下载的SSH、zookeeper文件以及JDK

注意:镜像的环境变量需要提前配置好,参考如下:

具体的环境变量的路径,根据你实际安装的路径修改:

         JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
 JRE_HOME=$JAVA_HOME/jre
 CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
 export JAVA_HOME JRE_HOME CLASS_PATH PATH
 export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.5.5
 PATH=$PATH:$ZOOKEEPER_HOME/bin
      

启动容器后,修改配置

进入zookeeper文件夹的conf目录

        cd /usr/local/conf/
      

将sample文件拷贝

        cp zoo_sample.cfg zoo.cfg
      

修改zoo.cfg文件

        vim zoo.cfg
      

修改:dataDir=zookeeper/tmp

并在文件最后添加:

在最后添加:

server.1=zk1:2888:3888

server.2=zk2:2888:3888

server.3=zk3:2888:3888

保存退出后,再创建一个tmp文件夹

        mkdir /zookeeper/tmp
      

再创建一个空文件

        touch /zookeeper/tmp/myid
      

最后向该文件写入ID

        echo 1 > /zookeeper/tmp/myid

      

配置完成,提交zookeeper容器为zookeeper的基础镜像

        docker commit zk zk:base
      

到这里,你的zookeeper的主节点镜像就部署好了。

启动3个zookeeper就很简单了,只需要基于zk:base镜像,创建3个容器,修改下配置就可以

部署zk1、zk2、zk3

注意:为保证容器间可以正常通过zk1、zk2这样的主机名直接通信,运行容器前先需要设置weave变量

先运行:

        eval $(weave env)
      

接着启动容器:

        docker run -d --privileged=true -v /home/docker/hadoop/zookeeper/zk1:/zookeeper --name zk1 zk:base /usr/sbin/init
      

解析:

-v 参数:将本机的文件夹目录与容器内目录共享

–privileged 特权模式,防止出现权限不足的情况,尤其是需要开机启动的服务

–name 将此容器命名为 zk1

设置myid:

        echo 1 > /zookeeper/tmp/myid
      

这样zk1就设置完成,启动服务

        zkServer.sh start
      

运行jps命令,如果和下图一致就成功

v2-12139d76f79db78238ed590f543fe90d_b.jpg

其他的zk2、zk3等等,只需要基于基础镜像启动容器,并把/zookeeper/tmp/myid的值改为2、3就可以了

注意:一定要保证容器间能正常通过容器名通信,如在zk2的容器内,

ping zk1

试一下,能正常通信才是集群搭建的基础‘

设置开机启动:

        chmod u+x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
      

文件中输入并保存:

        /usr/local/apache-zookeeper-3.5.5/bin/zkServer.sh start
      

至此,一个完整的三个节点的zookeeper集群就搭建完成。

如果需要查看zookeeper的状态,只需要运行命令:

        zkServer.sh status
      

能看到这个节点是leader还是follower(理论上只有一个leader)


结尾发福利啦!免费云主机,下方链接领取:

免费云主机


原文出处:


下一讲如何

搭建namenode及resourceManager

禁止转载,违者必究!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值