`

HBase的数据结构(HTable)

阅读更多

HBase的数据结构

     CSDN这个哥们共享的博客讲得很清晰并且附案例,站在巨人肩膀上,也可以为自己节约很多时间,同时自己也得去实践,结合理解自己再进行分析得出自己认识,学习效率才会提高,非常感谢共享:

               http://blog.csdn.net/lifuxiangcaohui/article/details/39894265

               http://blog.csdn.net/cnbird2008/article/details/9151585

 

Hbase适合场景

     HBase是松散型面向列的key/value存储模式,数据存储访问都在列族(Column Family),对于空的列并不占用存储空间,列名支持动态增减,非常稀疏的数据结构,提高读写并发。缺点是不支持条件查询,只支持row key来查询,所以row key的设计需要根据业务、存储排序性提高性能

 

与传统RDBMS数据对比

    1.RDMBS固定列,null浪费大量存储空间;

    2.关联关系比较复杂;

 

应用场景

    当数据量越来越大,RDBMS数据库撑不住了,就出现了读写分离策略,通过一个Master专门负责写操作,多个Slave负责读操作,服务器成本倍增。随着压力增加,Master撑不住了,这时就要分库了,把关联不大的数据分开部署,一些join查询不能用了,需要借助中间层。随着数据量的进一步增加,一个表的记录越来越大,查询就变得很慢,于是又得搞分表,比如按ID取模分成多个表以减少单个表的记录数。经历过这些事的人都知道过程是多么的折腾。采用HBase就简单了,只需要加机器即可,HBase会自动水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce)。

 

摘录:HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,因此可以通过web界面对HBase进行管理和查看当前运行的一些状态,非常轻巧。为什么采用HBase?HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。

HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。
简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在HBase中没有表与表之间关联查询。你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是你需要注意HBase中不包含事务此类的功 能。
Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。
分享到:
评论
1 楼 littlevine 2016-06-03  
   

相关推荐

    基于Mysql的表转HBase小Demo

    3. **数据写入HBase**:在HBase中写入数据需要使用HBase的Java API,包括HBaseAdmin、HTable和HTableInterface等类。首先,创建或检查HBase表是否存在,然后根据设计的HBase表结构,将Mysql数据转化为HBase的Put对象...

    HBase编程实践

    这种结构使得HBase能够在大规模数据中快速定位和访问数据。 **HBase的编程实践** 在实际开发中,我们通常会使用Java API或者HBase Shell来与HBase进行交互。Java API提供了丰富的类和接口,如HBaseAdmin、HTable等...

    hbase API

    - MapReduce用于批量处理HBase数据,如数据导入导出、批处理计算等。 5. **HBase优化** - Bloom Filters: 用于快速判断某个元素是否存在于表中,减少不必要的磁盘I/O。 - Compaction: 对Region内的StoreFiles...

    hbase的基本crud封装

    HBase构建于Hadoop之上,利用HDFS作为其底层存储,提供实时读写能力,适合处理大规模结构化数据。在本教程中,我们将深入探讨HBase的基本CRUD(创建、读取、更新和删除)操作的封装。 首先,要进行HBase的CRUD操作...

    scala API 操作hbase表

    在本文中,我们将深入探讨如何...理解HBase的表结构、行键设计、列族和时间戳等概念对于有效地使用Scala API操作HBase至关重要。同时,熟悉HBase的RegionServer和Master节点的工作原理也有助于优化你的应用程序性能。

    多线程 hbase

    HBase是一种列式存储的数据库,它适合存储非结构化或半结构化的海量数据。HBase基于Hadoop文件系统(HDFS)提供高可用性和容错性,其设计目标是支持实时读写操作,适用于大规模数据处理场景。 二、多线程与HBase 1....

    Hbase调用JavaAPI实现批量导入操作

    在大数据处理领域,Apache HBase是一个分布式的、版本化的NoSQL数据库,它构建于Hadoop之上,特别适合处理海量结构化数据。这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase...

    hbase资料api

    HBase数据查询API HBase是一种分布式的、面向列的NoSQL数据库,主要应用于存储大量的半结构化数据。HBase提供了多种查询方式,包括单条查询和批量查询。 单条查询 单条查询是通过rowkey在table中查询某一行的数据...

    hbase-0.94.13 jar和源码

    5. `MemStore`和`HFile`:内存数据结构和磁盘存储格式,构成了HBase的数据层。 总的来说,HBase 0.94.13的jar包和源码提供了全面了解和使用HBase的工具。通过分析源码,开发者可以深入理解分布式数据库的设计思想,...

    hadoop中安装hbase及创建表等.docx

    然后在hbase-site.xml中,设置hbase.rootdir属性,指定HBase数据的存储位置,通常是HDFS的一个路径。启动HBase使用start-hbase.sh脚本,进入HBase Shell进行操作,停止HBase则使用stop-hbase.sh脚本。 在HBase ...

    Hbase结合echart.js实例主要代码

    5. 加载Hbase数据:编写Java代码连接到Hbase,使用Get或Scan操作获取所需数据,然后将数据转换为Echart.js可以识别的格式,例如JSON数组。 6. 渲染图表:将配置项赋值给ECharts实例的`setOption`方法,这将根据配置...

    HBase实现批量存取

    HBase是建立在Hadoop文件系统(HDFS)之上的,以行键、列族、列和时间戳为索引的表结构数据库。这种设计使得HBase能快速处理PB级别的数据,同时支持随机读写。在Eclipse中运行HBase项目,我们需要先确保已经安装了...

    HBase详细讲解

    1. HTable:HTable是HBase中的主要存储单位,其内部会根据行的范围被分割为多个HRegion。 2. HRegion:HRegion是HBase中分布式存储和负载均衡的最小单元,它管理着一系列行。当HRegion中的数据量超过设定的阈值时,...

    HBase基本数据操作详解.docx

    ### HBase基本数据操作详解 #### 一、命名空间 Namespace **1.1 命名空间概述** 在HBase中,命名空间(namespace)的概念类似于传统数据库中的模式(schema),它提供了一种对表进行逻辑分组的方式。这种分组不仅有助...

    hadoop和hbase集成所需jar包

    Hadoop提供了强大的数据处理能力,而HBase则是一个基于Hadoop的分布式列式数据库,适合处理大规模的半结构化数据。为了将这两个系统集成,以便在MapReduce任务中使用HBase,我们需要特定的JAR包来建立连接和通信。...

    大数据hbase.zip

    在Java API层面,我们首先需要了解HBase的基本操作类,如HBaseAdmin用于管理表,HTable接口用于与表交互,HTableDescriptor用于描述表的结构。创建表时,我们需要定义表名和列族,列族下可以动态添加列。例如: ```...

    HBASE使用注意事项

    通过对HBase的使用注意事项进行深入分析,我们了解到在表设计阶段应当重视RowKey的设计及其对数据分布的影响,同时还需要考虑压缩算法、过滤器的选择以及版本控制等因素。此外,对于Java API的使用也需要注意资源...

    hbase-0.98.6.1-src.zip

    - **HBase Region**:HBase数据存储的基本单元,每个region包含一个或多个列族。 - **Column Family**:逻辑上存储相关列的集合,数据按行键排序。 3. **数据模型**: HBase采用稀疏、多维度、排序的键值对存储...

Global site tag (gtag.js) - Google Analytics