美文网首页大数据
Hadoop踩坑-Hbase篇

Hadoop踩坑-Hbase篇

作者: 林桉 | 来源:发表于2018-09-14 00:17 被阅读82次

    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 简介 - 简书

    相关文章

      网友评论

        本文标题:Hadoop踩坑-Hbase篇

        本文链接:https://www.haomeiwen.com/subject/wlkngftx.html