实战:基于 docker 的 HA-hadoop 集群搭建

实战:基于 docker 的 HA-hadoop 集群搭建

Hadoop的master和slave分别运行在不同的Docker容器中,其中hadoop-master容器中运行NameNode和ResourceManager,hadoop-slave容器中运行DataNode和NodeManager。NameNode和DataNode是Hadoop分布式文件系统HDFS的组件,负责储存输入以及输出数据,而ResourceManager和NodeManager是Hadoop集群资源管理系统YARN的组件,负责CPU和内存资源的调度。

我们先来规划下集群:

主机名 | 安装软件|运行的进程 ---- | --- node1 | JDK、Hadoop|NameNode(Active)、DFSZKFailoverController(zkfc)、ResourceManager(Standby)| node02 | JDK、Hadoop|NameNode(Standby)、DFSZKFailoverController(zkfc)、ResourceManager(Active)、Jobhistory| slave01 | JDK、Hadoop|DataNode,NodeManager| jn01,jn02,jn03 | JDK、Hadoop|JournalNode| zk01,zk02,zk03 | JDK、zookeeper|zk,1主2备|

我们来解释下上面的几个软件

其中 NameNode 是 hdfs 中的namenode,分为一主,一备,保证高可用:

主处于active状态,备处于Standby,主备切换通过DFSZKFailoverController配合zookeeper完成。 另外为了保证master上edit日志的高可用,新建了3个JournalNode。

接着我们来看yarn,yarn是一种资源管理系统,负责集群的统一管理和调度

上面是介绍部分,下面我们来执行高可用集群的搭建

第一步到hadoop目录下,执行 docker-compose up -d 第二步执行 ./start-all.sh 完成上面步骤后,我们就可以根据控制台的输出查看数据了。

下面是一些集群验证操作:

  1. 验证HDFS 是否正常工作及HA高可用 首先向hdfs上传一个文件

/usr/local/hadoop/bin/hadoop fs -put /usr/local/hadoop/README.txt / 在active节点手动关闭active的namenode /usr/local/hadoop/sbin/hadoop-daemon.sh stop namenode 通过HTTP 50070端口查看standby namenode的状态是否转换为active 手动启动上一步关闭的namenode /usr/local/hadoop/sbin/hadoop-daemon.sh start namenode

2.验证YARN是否正常工作及ResourceManager HA高可用 运行测试hadoop提供的demo中的WordCount程序: /usr/local/hadoop/bin/hadoop fs -mkdir /wordcount /usr/local/hadoop/bin/hadoop fs -mkdir /wordcount/input /usr/local/hadoop/bin/hadoop fs -mv /README.txt /wordcount/input /usr/local/hadoop/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount /wordcount/input /wordcount/output

验证ResourceManager HA 手动关闭node02的ResourceManager /usr/local/hadoop/sbin/yarn-daemon.sh stop resourcemanager 通过HTTP 8088端口访问node01的ResourceManager查看状态 手动启动node02 的ResourceManager /usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager

代码的github地址:https://github.com/zhuanxuhit/distributed-system/issues/4 欢迎关注

你的鼓励是我继续写下去的动力,期待我们共同进步。

这个时代,每个人都是超级个体!关注我,一起成长!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

深入学习:In Memory Undo

黄玮(Fuyuncat) 资深 Oracle DBA,从事 Oracle 数据库管理、维护与开发工作十余年,有丰富的大型数据库设计、开发与维护方面的经验。个人网...

3208
来自专栏Spark生态圈

Spark Streaming管理Kafka偏移量前言从ZK获取offset

为了让Spark Streaming消费kafka的数据不丢数据,可以创建Kafka Direct DStream,由Spark Streaming自己管理of...

4393
来自专栏星汉技术

Hadoop问题:DataNode线程不见了

3146
来自专栏个人分享

Hadoop源码分类概要整理

  最近突然觉得, 很多掌握的都还是很浅的原理,需要更深入细粒度去了解整个分布式系统的运转机制。于是。。开始作死而又作死而又作死的源码之旅。

1153
来自专栏数据和云

Hadoop 面试,来看这篇就够了

原文链接 | http://www.jianshu.com/p/c97ff0ab5f49

1102
来自专栏蒋专的专栏

Spark 以及 spark streaming 核心原理及实践

作者在接触spark以及spark streaming之后,对spark技术的使用的经验积累以及心得体会,在此分享给大家。本文依次从spark生态,原理,基本概...

2.4K4
来自专栏牛肉圆粉不加葱

Spark Streaming + Kakfa 编程指北

本文简述如何结合 Spark Streaming 和 Kakfa 来做实时计算。截止目前(2016-03-27)有两种方式:

1044
来自专栏pangguoming

Hadoop视频教程汇总

一 慕课网 1.Hadoop大数据平台架构与实践--基础篇(已学习) 链接:https://www.imooc.com/learn/391 2.Hadoop进阶...

7244
来自专栏我是攻城师

Hadoop之NameNode+ResourceManager高可用原理分析

4717
来自专栏灯塔大数据

每周学点大数据 | No.64 配置Hadoop

NO.64 配置Hadoop 在开始使用Hadoop 之前,先要对Hadoop 进行配置。Hadoop 的配置分为单机模式、完全分布式、伪分布式三种。单机模式一...

35310

扫码关注云+社区

领取腾讯云代金券