hdfs本质是分布式文件系统,可部署于大量价格低廉的服务器,提供了可扩展的、高容错性的文件读写服务。

hbase本身不负责文件层面的高可用和扩展性,通过把文件存储在hdfs实现大容量文件存储和备份。

与其他的分布式文件系统相比,HDFS擅长的场景是大文件(一般认为字节数超过数十MB的文件为大文件)的顺序读、随机读和顺序写。

一个线上的高可用HDFS集群主要由4个重要的服务组成:NameNode、DataNode、JournalNode、ZkFailoverController。

数据块(Block,大小默认为128MB),读取的时候只需要依次读取组成这个文件的Block即可完整读取整个文件。

线上需要部署2个NameNode :一个节点是Active状态并对外提供服务;另一个节点是StandBy状态,作为Active的备份,备份状态下不提供对外服务,也就是说HDFS客户端无法通过请求StandBy状态的NameNode来实现修改文件元数据的目的。如果ZkFailoverController服务检测到Active状态的节点发生异常,会自动把StandBy状态的NameNode服务切换成Active的NameNode。

NameNode存储并管理HDFS的文件元数据,这些元数据主要包括文件属性(文件大小、文件拥有者、组以及各个用户的文件访问权限等)以及文件的多个数据块分布在哪些存储节点上。文件元数据是在不断更新的

NameNode本质上是一个独立的维护所有文件元数据的高可用KV数据库系统(键值对存储数据的数据库)。

NameNode采用写EditLog(日志)和FsImage(镜像)的方式来保证元数据的高效持久化。

NameNode会把所有文件的元数据全部维护在内存中。HDFS中存放大量的小文件,则造成分配大量的Block,这样可能耗尽NameNode所有内存而导致OOM

组成文件的所有Block都是存放在DataNode节点上的。一个逻辑上的Block会存放在N个不同的DataNode上

存在一个问题——在StandBy状态下的NameNode切换成Active状态后,如何才能保证新Active的NameNode和切换前Active状态的NameNode拥有完全一致的数据?
HDFS单独实现了一个叫做JournalNode的服务。线上集群一般部署奇数个JournalNode(一般是3个,或者5个),在这些JournalNode内部,通过Paxos协议来保证数据一致性。因此可以认为,JournalNode其实就是用来维护EditLog一致性的Paxos组。

ZKFailoverController主要用来实现NameNode的自动切换。

HDFS的视角看,HBase就是它的客户端。

HBase本身并不存储文件,它只规定文件格式以及文件内容,实际文件存储由HDFS实现。

HBase不提供机制保证存储数据的高可靠,数据的高可靠性由HDFS的多副本机制保证。

HBase-HDFS体系是典型的计算存储分离架构。

详细请参考《HBase原理与实践》

hdfs与hbase关系原理简述相关推荐

  1. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

  2. Hbase基础原理及应用(中篇)

    HBase(中) 12.HBase与MapReduce的集成 HBase当中的数据最终都是存储在HDFS上面的,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase当中的数据,并且MR可 ...

  3. 大数据分析常用组件、框架、架构介绍(Hadoop、Spark、Storm、Flume、Kafka、Logstash、HDFS、HBase)

    在正式开始介绍大数据知识之前我们先来了解一下一些大数据常用名词,如果您是"过来人"的话,可以直(jia)接(shen)跳(yin)过(xiang):如果您是新手的话,可以带着对新鲜 ...

  4. HBase Region原理总结归纳

    HBase Region原理总结 1. 环境准备 基于Hadoop 3.2.1 基于zookeeper 3.4.6 基于Hbase 2.2.5 资料来源: 官网http://hbase.apache. ...

  5. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  6. Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

    编者按:HDFS和MapReduce是Hadoop的两大核心,除此之外Hbase.Hive这两个核心工具也随着Hadoop发展变得越来越重要.本文作者张震的博文<Thinking in BigD ...

  7. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

  8. 初步掌握HDFS的架构及原理

    原文链接:http://www.cnblogs.com/codeOfLife/p/5375120.html 目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如 ...

  9. HBase数据库原理解析

    文章目录 1.HBase 数据库介绍 1.1产生背景 1.2简介 1.3表结构逻辑视图 1.3.1行键(RowKey) 1.3.2列簇(Column Family) 1.3.3时间戳(TimeStam ...

最新文章

  1. 卸载linux系统自带JDK,安装自己的jdk
  2. 国王放米粒的C语言程序,云南大学软件学院C语言实验米粒问题.doc
  3. Vaadin应用程序中的EJB查找
  4. “因为你不懂技术…” 警察:???
  5. 笔记 英语二 考研先导课 0126
  6. uniapp小程序迁移到TS
  7. linux用户和用户组及权限管理
  8. 国产APP自动化测试工具AndroidRobot下载地址
  9. tp5 自定义配置文件
  10. 定时重启php,linux系统定时重启
  11. Computer:C盘简介成功解决当Win10系统进行深度学习的时候发现系统C盘满了,教你如何正确卸载一些非必要的内容(提高磁盘内存和网速)
  12. Wireshark菜单栏介绍
  13. 2021滴滴笔试题算法题
  14. 输入年月日实现计算这是一年的第几天
  15. 数字IC后端知识扫盲——OCV(上)
  16. java pdf 转换 word_如何使用Java将pdf文件转换为word文件
  17. 女生从猫猫身上学到的.........||精品||
  18. 5个超好用的自媒体网站,免费用
  19. Java Swing快速构建窗体应用程序
  20. Flink的Source端和Sink端大全

热门文章

  1. 考无忧2014职称计算机模拟考试题库软件 逆向分析研究:
  2. H.264裸流文件中获取每一帧数据
  3. html 苹果xr媒体查询,运用CSS3媒体查询判断iPhoneX、iPhoneXR、iPhoneXS MAX
  4. DVWA-XSS(DOM)Low/Medium/High低中高级别
  5. 嵌入式物联网开发,linux,单片机32(仅供借鉴,代码不共享 自行编写)
  6. 好心情:强迫症是一种难以自我控制的思维和行动
  7. 降低网站跳出率 让网站拥有更多“回头客”
  8. 企业如何做好知识文档管理?
  9. 计算机显示usb无法识别,Win10电脑总是无法识别USB设备的解决方案
  10. 专利许可合同都有哪些类型