Hadoop踩坑-Hbase篇

Hadoop环境支持

hadoop 是Apache 软件基金会旗下的一个开源分布式计算平台。以hadoop 文件系统(hdfs)和 mapreduce (google 提出的mapreduce计算框架)为核心的分布式基础架构。


image.png
  • hadoop 架构


    image.png
  • hadoop 部署结构


    image.png

    在Hadoop的系统中,会有一台master,主要负责NameNode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台slave,每一台slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。

  • mapreduce
    mapreduce 是一个分布式的编程模型,允许用户在不了解分布式底层细节的情况下,写出并行的分布式程序,完成海量数据的处理。


    image.png

    先是 Map(任务的分解) 过程,然后是 Reduce(结果的汇总) 过程。
    Map就是将一个任务分解成多个任务,Reduce就是将分解后多任务分别处理,并将结果汇总为最终结果。


    image.png
  • MapReduce流程


    image.png

    在Map之前,可能还有对输入数据的Split过程以保证任务并行效率,在Map之后可能还有Shuffle过程来提高Reduce的效率以及减小数据传输的压力。

HDFS搭建

hdfs 是一个高性能的文件系统。具有高容错性,可靠性,高伸缩性等优点。下图为HDFS系统架构图,主要有三个角色,Client、NameNode、DataNode。

image.png

Namenode:namenode是一个名称节点,是hdfs的大脑,它维护着文件系统的目录树。
Secondarynode:第二个名字节点,用于备份,一旦namenode挂掉,那么secondarynode就补上。
Datanode:data节点用来存储数据。�
Client:客户机是用来读写数据。
写流程

读流程

Zookeeper搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper以Fast Paxos算法为基础,实现同步服务、配置维护和命名服务等分布式应用。
ZooKeeper 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员。


image.png

HBase主要用ZooKeeper来实现HMaster选举与主备切换、系统容错、RootRegion管理、Region状态管理和分布式SplitWAL任务管理等。

Hbase搭建

HBase是一种构建在HDFS之上的分布式、面向列、多版本、非关系型的数据库。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列,使系统有可能提高高效的数据结构的序列化、存储和检索。


image.png

HBase是一个分布式的架构,除去底层存储的HDFS外,HBase本身从功能上可以分为三块:Zookeeper群、Master群和RegionServer群。


image.png

image.png
  • HBase架构图


    image.png

    从HBase的架构图上可以看出,HBase中的组件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、Hlog。


    image.png
  • Data model
    image.png

    Row Key�与 NoSQL 数据库一样,Row Key 是用来检索记录的主键。
    列族�HBase 表中的每个列都归属于某个列族。必须在使用表之前定义。
    Cell�时间戳HBase 中通过 Row 和 Columns 确定的一个存储单元称为 Cell。每个 Cell 都保存着同一份数据的多个版本。
  • HBase的Region寻址


    image.png
  • HBase的Region数据写入


    image.png
  • HBase的Region数据Flush


    image.png

    HRegionServer的一次更新操作,使得整个内存使用超过警戒线。凡是超过这个值的情况,会直接触发FlushThread,从全局的HRegion中选择一个,将其MemStore刷入hdfs,从而保证rs全局的memstore容量在可控的范围。

小白学习 无关利益

感谢:

学习笔记一:hadoop单节点搭建 - 简书

Hadoop:启动与停止命令 - CSDN博客

zookeeper 启动出错问题排查 - 四维空间 - ITeye博客

0基础搭建Hadoop大数据处理-集群安装 - 简书

HBase Getting Started(入门指南) - 简书

HBase之——单节点安装 - CSDN博客 节点冲突

一条数据的HBase之旅,简明HBase入门教程-开篇 - 简书启动HBase Shell

Spark单机部署听风铃的声音新浪博客

学习笔记二:spark单节点搭建 - 简书

spark生态圈整体技术架构图-成都加米谷大数据培训分享 - 简书

『 Spark 』1. spark 简介 - 简书

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容