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

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

总共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_64JRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATHexport ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.5.5PATH=$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命令,如果和下图一致就成功

其他的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)

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

免费云主机​www.bistudio.com.cn

原文出处:

下一讲如何

搭建namenode及resourceManager​biblog.bistudio.com.cn

禁止转载,违者必究!

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

  1. Windows家庭版下基于Docker的hadoop、Spark集群搭建

    Windows家庭版下基于Docker的hadoop.Spark集群搭建 目录 Windows家庭版下基于Docker的hadoop.Spark集群搭建 1.实验目的 2.实验平台 3.实验内容和要求 ...

  2. 基于Docker的Hadoop完全分布式安装

    之前安装Hadoop是用VMWare创建虚拟机,然后安装伪分布式,因为虚拟机太慢,太卡,实在没有玩下去的心情了,现在想到Docker可以实现虚拟化,看看能不能安装Hadoop,网上查了查,果然可以,并 ...

  3. docker搭建java测试环境_基于docker构建测试环境

    目录 0x01介绍 0x02 镜像基本操作 0x03 容器基本操作 0x04 容器的修改与保存 0x05 使用Dockerfile定制镜像 0x01介绍 Docker 是一个开源的应用容器引擎,基于 ...

  4. 阿里云大数据三次技术突围:Greenplum、Hadoop和飞天

    对于企业来说,到底什么是云计算?相信很多企业都有这样的困惑,让我们一起回到这个原始的起点探讨究竟什么是云计算?云计算对于企业而言到底意味什么? 云计算的三条发展路径及三种落地形态 当回到最初的起点再审 ...

  5. 阿里云大数据三次技术突围:Greenplum、Hadoop和“飞天”

     对于企业来说,到底什么是云计算?相信很多企业都有这样的困惑,让我们一起回到这个原始的起点探讨究竟什么是云计算?云计算对于企业而言到底意味什么? 云计算的三条发展路径及三种落地形态 当回到最初的起点再 ...

  6. 基于docker的hadoop集群搭建

    最近想学习如何使用hdfs来存储文件,在网上学习了一下,明确了HDFS(Hadoop Distribute File System 分布式存储).mapReduce(分布式计算).YARN(Yet A ...

  7. cuda默认函数与c++冲突_好程序员Python教程系列-第8讲:函数和模块

    好程序员Python教程系列-第8讲:函数和模块,在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. 事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种 ...

  8. hadoop fs –ls /hbase 无内容_Hadoop大数据实战系列文章之HDFS文件系统

    扫码加入千人跳槽求职QQ群,每日都有全国招聘信息哦     Hadoop 附带了一个名为 HDFS(Hadoop分布式文件系统)的分布式文件系统,专门 存储超大数据文件,为整个 Hadoop 生态圈提 ...

  9. 大数据之-Hadoop_环境搭建_虚拟机准备---大数据之hadoop工作笔记0016

    然后我们来安装虚拟机环境 首先我们要准备一个centos的虚拟机这里我用的是,桌面版的. 我们如果以前有做好的,可以克隆以前的. 点击下一步

  10. 多布局怎么搭建_小展位大吸引力,如何设计搭建出精致的展台?

    "每次参展的效果总是不理想,因为展位位置较偏或其他,总是错失了很多专业观众,也就错失了很多的商业机会",这大概是一个较为普遍的现象.每一个展览会都有不同的展位,不同的规模和地点供参 ...

最新文章

  1. POJ 3669 Meteor Shower
  2. Python网络爬虫与信息提取(一)(入门篇)
  3. Android混淆解析
  4. 关于C/S模式开发的学习笔记
  5. 局域网内其他电脑通过SSH访问NAT模式下的虚拟机
  6. 黑马程序员——生成html静态页面,方便seo,加快加载速度
  7. AWS SQS和Spring JMS集成
  8. 基于注解风格的Spring-MVC的拦截器
  9. PDI的steps:(5:Add XML)
  10. Maven 项目关于 plexus-utils:jar的错误解决
  11. 大数据之-Hadoop之HDFS_HDFS组成架构---大数据之hadoop工作笔记0050
  12. Linux注册服务(chkconfig)
  13. 2022 基于SpringBoot/SSM的数据库查询平台
  14. 常用Win32 API函数
  15. 伊甸园日历游戏 c语言,洛谷 P1024 — 一元三次方程求解
  16. 微信支付(java版本)
  17. 迄今见过的最好的职业规划文章
  18. 图的最小生成树(Prim算法、Kruskal算法)
  19. python中的对数_Python中求对数方法总结
  20. Primo Ramdisk内存盘工具软件

热门文章

  1. hadoop hive集群_大数据专栏 | Hive 安装初体验
  2. maya python 游戏与影视编程指南_Maya Python 游戏与影视编程指南
  3. cedit多行文本设置透明背景会重叠_python:电商用户评价文本分析(wordcloud+jieba)...
  4. ElementUI:tree组件背景色、鼠标hover悬浮背景色、选中背景色修改
  5. SQL:postgresql中st_union合并多条geom数据
  6. asp.net html 扩展,StaticHtml
  7. 一把数学上完美的尺子(哥隆尺)
  8. 接口测试基础与工具(一)
  9. Asp.net导出Excel/Csv文本格式数据
  10. SLAM_VIO中的IMU模型