美文网首页
Java大数据:Hbase分布式存储入门

Java大数据:Hbase分布式存储入门

作者: 成都加米谷大数据 | 来源:发表于2020-11-16 15:49 被阅读0次

之前的系列文章当中,已经为大家介绍了大数据存储当中的MongoDB、Redis等数据库,今天接着来讲Hbase。Hbase在大数据存储当中,与Hadoop生态紧密相关,也是Hadoop生态当中必学的重要组件。下面我们从基础入门开始,来讲讲Hbase。

支持大数据处理的第一代框架,以Hadoop为主流代表,而基于Hadoop,产生了比较完善的大数据技术生态,发展至今已有二十多个组件。这其中,Hbase主要在大数据存储环节,发挥着重要作用。

Hbase简介

HBase,根据官方给出的定义,是面向列的非关系型分布式数据库,在Hadoop体系当中,基于分布式文件系统HDFS来工作。

Hbase的原型,来自于谷歌的BigTable,采用Java语言编程,实现了BigTable论文提到的一些压缩算法、内存操作和布隆过滤器等,这使得Hbase在海量数据存储、高性能读写场景当中,具备相当的优势。

Hbase特性

基于列式存储模型,实现数据高度压缩,节省存储成本;

采用LSM机制而不是B(+)树,更加适合海量数据实时写入;

高可靠,数据存储为多个副本(默认是3副本),且具备自动故障转移功能;

高扩展,支持分片扩展能力(基于Region),可实现自动、数据均衡;

强一致性读写,数据的读写都针对主Region上进行,属于CP型系统;

易操作,HBase提供了Java API、RestAPI/Thrift API等接口

查询优化,采用Block Cache和布隆过滤器来支持海量数据的快速查找。

Hbase整体架构

Hbase集群架构,通常涉及到HBase Master、Region Server、Zookeeper、HDFS等几个配合。

一个Hbase集群,由一个Master和几个Region Server组成。其中,Master负责维护表结构信息;实际的数据存储在Region Server上,最终Region Server保存的表数据会直接存储在HDFS上。

HBase Master

HBase Master作为管理节点,通常在集群当中会设置有一个主Master,一个备Master,主Master和备Master的管理,由Zookeeper实现。

Master的职责,包括:

管理监控所有的Region Server,负责Region Server故障转移;

负责表的相关操作(create、modify、remove、enable、disable),列族的相关操作(add、modify、remove),还有Region的move、assign、unassign;

平衡集群负载并定期检查并清理hbase:meta表。

Region Server

Region Server,主要负责服务和管理Region。在分布式集群中,Region Server与DataNode通常按1:1比例安装,从而实现利用HDFS中的短路径读取(Short Circuit),来降低延时。

Region Server的职责,包括:

数据的读取和写入,比如:get,put,delete,next等;

Region的拆分和压缩;

检查拆分并处理轻微压缩;

检查主要的压缩;

定期刷新MemStore到StoreFiles中的内存中写入;

定期检查RegionServer的WAL。

Zookeeper

在集群环境当中,Zookeeper总是扮演着“管家”的角色,而Hbase的Region Server非常依赖Zookeeper服务,ZooKeeper管理HBase所有Region Server的信息,包括具体的数据段存放在哪个Region Server上。

具体来说,ZooKeeper存储着hbase:meta信息。hbase:meta表记录着HBase中所有Region的相关信息。

HDFS

在Hadoop集群环境下,Hbase是运行于HDFS上的,所以对于HDFS的架构也建议要有比较清晰的了解和认知。尤其是在存储文件,处理故障转移和复制块的方面,HDFS当中的NameNode和DataNode,可以联动起来学习。

关于Java大数据,Hbase分布式存储入门,以上就为大家做了简单的介绍了。Hbase在大数据技术生态体系当中,重要性不言而喻,学习当中也应当给予相应的重视。

相关文章

  • 一句话总结hadoop生态系统成员

    HDFS 分布式存储数据 MapReduce 分布式数据处理 HBase 结构化数据存储 spooq 和传统数据库...

  • Java大数据:Hbase分布式存储入门

    之前的系列文章当中,已经为大家介绍了大数据存储当中的MongoDB、Redis等数据库,今天接着来讲Hbase。H...

  • HBase

    HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 HBase结构 数据模型 1...

  • HBase架构详解及读写流程

    HBase 定义 HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 HBase的架构图 ...

  • HBase架构与原理

    HBASE基本概念 Hbase是构建在HDFS上的分布式列存储系统,用于海量结构化数据存储 为什么需要HBASE?...

  • NoSql_HBase-存储原理

    存储设计 Hbase是一个基于Hdfs的分布式列式存储nosql大表数据库拥有实时读写,和及时查询以及大表存储等功...

  • Module-Hbase技术文档

    Hbase技术文档.md tags: 大数据 底层存储 分布式 Hbase 2019年 安装部署 环境依赖说明: ...

  • hbase-phoenix集合的应用

    我们知道hbase是列式存储的分布式数据库,数据是以kv形式存储的,hbase官方也开放了API接口供我们使用,进...

  • hbase学习笔记

    Hbase概述 Hbase是一个开源可伸缩的针对海量数据存储的分布式nosql数据库。Hbase可以看成是以行键(...

  • Hbase原理与架构

    我们都知道Hbase是一个构建在HDFS上的分布式列存储系统。Hbase主要用于海量数据的结构化存储。 Hbase...

网友评论

      本文标题:Java大数据:Hbase分布式存储入门

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