HBase是一个类似BigTable的分布式数据库, 它是一个稀疏的长期存储的(存在硬盘上).多维度的.排序的映射表.这张表(HBase)的索引是行关键字.列关键字和时间戳.    HBase中的数据都是字符串,没有类型. 用户在表格中存储数据,每一行都有一个可排序的主键和任意多的列.由于HBase是稀疏存储,同一张表里面的每一行数据都可以有截然不同的列. HBase把同一列簇里面的数据存储在同一个目录下,并且HBase的写操作是锁行的,每一行都是一个原子元素,都可以加锁. HBase所有数据库…
所有的数据库数据一般是保存在Hadoop分布式系统上面的,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegion也只会被一个HRegion服务器维护. HRegion服务器包含两大部分:HLog部分和HRegion部分. HRegion服务器在它这里面,又相当于是个小组长.      HBase里的HRegion 其中HLog用来存储数据日志,采用的是先写日志的方式.HRegion部分由很多的HRegion组成,存储的是实际的…
在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBase这样的NoSQL里,才是存在. HBase里的长表VS宽表VS窄表 在不同场景,结合使用到底是高表还是宽表. 高表有高表的好处,宽表有宽表的优势. 起始行键是1001,结束行键是10010,则可查出如下图框出部分结果. 当然,也可以根据其他的查询条件,来查询.…
在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBase这样的NoSQL里,才是存在. HBase里的长表VS宽表VS窄表 HBASE宽表应用很多   比如BBS,可以用帖子的URL地址作为ROWKEY保存,而后面的每一个回复,作为单独的COLUMNS,回复越多,COLUMNS就越多,表就变宽了.COLUMNS的qualifier名称设计很简单 假设…
我们通过行键访问HBase.尽管使用扫描过滤器可以一次性指明大量的键,但是HBase仅仅能够根据行键识别出一行. 优秀的行键设计可以保证良好的HBase性能. 1.行键存在于HBase中的每一个单元格中.如果行键越长,用于存储单元格的I/O开销就会越大.通常我们采用MD5加密的定长键来代替行键. 2.对于组合式行键,每个组件的排序顺序取决于访问模式 如果是一个以主机名和事件类型存储的日志数据库,可能的键值选取方法有以下几种: [主机名][事件类型][时间戳] :适用于访问模式使用主机名和事件类型…
需要遵循以下步骤: 1.客户端和Zookeeper集群建立连接.在这之前客户端需要获得一些信息(可以从HBase配置文件中读取或是直接指定).客户端从Zookeeper集群中读取-ROOT-表的位置信息.这是客户端发起的第一次查询. 2.客户端连接-ROOT-表,并得到.META.表的位置信息.这是客户端发起的第二次查询. 3.客户端连接.META.表,并下载分区列表和它们的位置.这是客户端发起的第三次查询. 4.客户端使用从.META.表下载的信息直接连接分区服务器中的分区并操作数据.在这个过…
在 HBase里的HRegion 里,谈过,HRegion是按照表名+开始/结束主键,即表名+主键范围来区分的.由于主键范围是连续的,所以一般用开始主键就可以表示相应的HRegion了. 不过,因为我们有合并和分隔操作,此时,如果正好在执行这些操作的过程中出现死机,那么就可能存在多份表名和开始主键相同的数据,这样的话,只有光靠开始主键就不够了,这就需要通过HBase的元数据信息来区分哪一份才是正确的数据文件.为此,为了区分这样的情况,每个HRegion都有一个'regionId'来标识它的唯一性…
首先,要区分,HRegion服务器包含两大部分:HLog部分和HRegion部分 HBase里的HRegion服务器  HBase里的HRegion 当表的大小超过设置值的时候,HBase会自动将表划分为不同的区域,每个区域包含所有行的一个子集.对用户来说,每个表是一堆数据的集合,每个表靠主键来区分.从物理上来说,一张表是被拆分成了多块,每一块就是一个HRegion. (注意,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegi…
每台HRegion服务器都会和HMaster服务器通信,HMaster的主要任务就是告诉每个HRegion服务器它要维护哪些HRegion. 当一台新的HRegion服务器登录到HMaster服务器时,HMaster会告诉它先等待分配数据. 而当一台HRegion死机时,HMaster会把它负责的HRegion标记为未分配,然后再把它们分配到其他HRegion服务器中. 如果当前HBase已经解决了之前存在的SPFO(单点故障),并且HBase中可以启动多个HMaster,那么它能够通过Zook…
HBase里的RowKey设计,分为随机查询的RowKey设计和连续查询的RowKey设计.…