HDFS介绍:

简述:

Hadoop Distributed File System(HDFS)是一种分布式文件系统,设计用于在商用硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异很大。HDFS具有高度容错能力,旨在部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS放宽了一些POSIX要求,以实现对文件系统数据的流式访问。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的。HDFS是Apache Hadoop Core项目的一部分。

主要成分:

HDFS主要由NameNode和DataNode组成。NameNode负责存储数据的元数据信息和数据的偏移量。DataNode负责存储数据。

数据进入先通过NameNode

NameNode在Hadoop1.x存在一个,在Hadoop2.x可以有两个了。推荐使用2.x,因为2.x相比1.x更能快速切换新的NameNode。

NameNode里面由EditLog和FsImage组成,EdtiLog记录的是操作日志,FsImage记录的所有文件的元数据(包括:文件大小,文件名称,创建时间等等)。另外FsImage还记录了文件的偏移量,不过这个偏移量是由DataNode做心跳机制反馈给NameNode的。当NameNode启动或者触发配置的检查点时,它会读取EditLog和FsImage,并使用EditLog应用到FsImage并加载到缓存,然后刷新EditLog。

我画了个交互图如下:

下面这则漫画摘自https://blog.csdn.net/hudiefenmu,他很形象的讲解了文件的写入原理,读取原理以及处理故障原理。

HDFS写数据原理:

HDFS读数据原理:

HDFS故障类型和其检测方法:

-读写故障的处理

-DataNode故障处理

-副本布局策略

Quorum Journal Manager :

简述:

由于部署了两个NameNode,并且仅仅允许一台(ActiveNode)对外提供服务,另一台(StandByNode)在NameNode不可用的时候切换过去,这样就要保证StandBy数据是最新的。 而JournalManager就是接受ActiveNode的变动日志,然后StandBy节点读取同步更新数据。

结合上面的NameNode我画了个图如下:

Zookeeper和ZookeeperFailOverController介绍:

简述:

Zookeeper简称ZK,ZookeeperFailOverController简称ZKFC

上面使用JournalManager遇到故障的时候需要手动切换NameNode节点,这样处理会很不及时,所以必须想个办法自动切换,这样就有了Zookeeper,然后配套的出现了ZKFC,ZKFC和NameNode是一一对应的,它是一个守护进程,它负责和ZK通信,并且时刻检查NameNode的健康状况。它通过不断的ping,如果能ping通,则说明节点是健康的。然后ZKFC会和ZK保持一个持久通话,及Session对话,并且ActiveNode在ZK里面记录了一个"锁",这样就会Prevent其它节点成为ActiveNode,当会话丢失时,ZKFC会发通知给ZK,同时删掉"锁",这个时候其它NameNode会去争抢并建立新的“锁”,这个过程叫ZKFC的选举。

结合上面简要图如下:

系列传送门

入门大数据---HDFS,Zookeeper,ZookeeperFailOverController(简称:ZKFC),JournalNode是什么?的更多相关文章

  1. 入门大数据---基于Zookeeper搭建Kafka高可用集群

    一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...

  2. 入门大数据---基于Zookeeper搭建Spark高可用集群

    一.集群规划 这里搭建一个 3 节点的 Spark 集群,其中三台主机上均部署 Worker 服务.同时为了保证高可用,除了在 hadoop001 上部署主 Master 服务外,还在 hadoop0 ...

  3. 2020/4/26 大数据的zookeeper分布式安装

    大数据的zookeeper分布式安装 **** 前面的文章已经提到Hadoop的伪分布式安装.现在就在原有的基础上安装zookeeper. 首先启动Hadoop平台 [root@master ~]# ...

  4. 大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用

    ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知. ...

  5. 大数据-hdfs技术

    hadoop 理论基础:GFS----HDFS:MapReduce---MapReduce:BigTable----HBase 项目网址:http://hadoop.apache.org/ 下载路径: ...

  6. 入门大数据---HDFS-HA搭建

    一.简述 上一篇了解了Zookeeper和HDFS的一些概念,今天就带大家从头到尾搭建一下,其中遇到的一些坑也顺便记录下. 1.1 搭建的拓扑图如下: 1.2 部署环境:Centos3.1,java1 ...

  7. 入门大数据---Flink学习总括

    第一节 初识 Flink 在数据激增的时代,催生出了一批计算框架.最早期比较流行的有MapReduce,然后有Spark,直到现在越来越多的公司采用Flink处理.Flink相对前两个框架真正做到了高 ...

  8. 【大数据】Zookeeper学习笔记

    第1章 Zookeeper入门 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景 提供的服务包括:统 ...

  9. 入门大数据---Hadoop是什么?

    简单概括:Hadoop是由Apache组织使用Java语言开发的一款应对大数据存储和计算的分布式开源框架. Hadoop的起源 2003-2004年,Google公布了部分GFS和MapReduce思 ...

随机推荐

  1. Beta冲刺 —— 5.28

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.组员一起学习Git分支管 ...

  2. Rocket - tilelink - Xbar

    https://mp.weixin.qq.com/s/UXFHYEQaYotWNEhshro68Q   简单介绍Xbar的实现.   ​​   1. 基本介绍   用于为Xbar的输入和输出连接生成内 ...

  3. Chisel3 - Wire & Reg

    https://mp.weixin.qq.com/s/Y26N5P4XOr5e3uyi5XQY-w   不同于Verilog,Chisel中Wire和Reg并不是数据类型,而是数据容器,作为数据的一个 ...

  4. Java实现 蓝桥杯 算法提高 八数码(BFS)

    试题 算法提高 八数码 问题描述 RXY八数码 输入格式 输入两个33表格 第一个为目标表格 第二个为检索表格 输出格式 输出步数 样例输入 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 ...

  5. Java GUI 键盘事件

    import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event. ...

  6. Java实现 洛谷 P1567 统计天数

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  7. Java实现第九届蓝桥杯字母阵列

    字母阵列 题目描述 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:"LANQIAO". SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLAN ...

  8. CRC循环冗余校验---模2除法解析

    关于模2除法,网上的人说了一大堆规则和原理,感觉很容易把小白绕进去,下面我只说怎么计算,不说其中的规则和原理.

  9. 需要加token验证的接口返回文件流下载

    没有加token之前,下载文件用的是a标签,直接下载. 现在要求是需要在header中加入token. getDownload(urls, fileName) { var url = urls; va ...

  10. 关于mysql auto-increment

    创建表语句如下mysql> show create table Tautoincrement\G *************************** 1. row ************* ...