随笔分类 - HBase源码系列
HBase源码系列
摘要:HDFS 的备份功能不是给 基于 HBase 等 基于HDFS 的项目做备份的。 如果 HBase 需要备份,那么久需要设置 备份(快照 )功能。 HMaster 、 kafka 等无主结构并不是自我实现的选举, 而是基于 ZooKeeper 的选举策略决策出新的 master HBase 创建表的 Region 极大的影响插入等性能 HFile写入的时候,是分一个块一个块的写入的,每个B...
阅读全文
摘要:下面介绍Hbase的缓存机制: a.HBase在读取时,会以Block为单位进行cache,用来提升读的性能 b.Block可以分类为DataBlock(默认大小64K,存储KV)、BloomBlock(默认大小128K,存储BloomFilter数据)、IndexBlock(默认大小128K,索引数据,用来加快Rowkey所在DataBlock的定位) c.对于一次随机读,Block...
阅读全文
摘要:这一章讲hbase的缓存机制,这里面涉及的内容也是比较多,呵呵,我理解中的缓存是保存在内存中的特定的便于检索的数据结构就是缓存。之前在讲put的时候,put是被添加到Store里面,这个Store是个接口,实现是在HStore里面,MemStore其实是它底下的小子。那它和Region Server、Region是什么关系?Region Server下面有若干个Region,每个Region下面有...
阅读全文
摘要:HBase 系统架构图 组成部件说明 Client: 使用HBase RPC机制与HMaster和HRegionServer进行通信 Client与HMaster进行通信进行管理类操作 Client与HRegionServer进行数据读写类操作 Zookeeper: Zookeeper Quorum存储-ROOT-表地址、HMaster地址 HRegionServ...
阅读全文
摘要:hbase源码系列(十二)Get、Scan在服务端是如何处理?<!--more--> 继上一篇讲了Put和Delete之后,这一篇我们讲Get和Scan, 因为我发现这两个操作几乎是一样的过程,就像之前的Put和Delete一样,上一篇我本来只打算写Put的,结果发现Delete也可以走这个过程,所
阅读全文
摘要:hbase源码系列(十一)Put、Delete在服务端是如何处理? <!--more--> 在讲完之后HFile和HLog之后,今天我想分享是Put在Region Server经历些了什么?相信前面看了《HTable探秘》的朋友都会有印象,没看过的建议回去先看看,Put是通过MultiServerC
阅读全文
摘要:hbase源码系列(九)StoreFile存储格式 <!--more--> 从这一章开始要讲Region Server这块的了,但是在讲Region Server这块之前得讲一下StoreFile,否则后面的不好讲下去,这块是基础,Region Sever上面的操作,大部分都是基于它来进行的。 HF
阅读全文
摘要:hbase源码系列(十)HLog与日志恢复<!--more--> HLog概述 hbase在写入数据之前会先写入MemStore,成功了再写入HLog,当MemStore的数据丢失的时候,还可以用HLog的数据来进行恢复,下面先看看HLog的图。 旧版的HLog是实际上是一个SequceneFile
阅读全文
摘要:预分Region 与 不预分Region 的测试:1 不预分Region: 23~29秒插入100W数据 并且蛋疼的是每次都写入一个 RegionServer 且 只在一个 Region 相当于人为制造的网络风暴。2 预分Region(3节点分了3个Region) 写入 18~19秒 100W 数据。 55555 每秒。(本机网络请求已满。否则应该线性增长)下面是代码...
阅读全文
摘要:其实查询无非是一个 HBase 的 RPC 计算公式 、然后给API 提供值。RPCs = (Rows * Cols per Row) / Min(Cols per Row, Batch Size)/ Scanner Caching 。Hadoop的MR运算中,Hbase可以作为输入数据源参与运算,其中作为HTable的迭代器Scan有几个使用技巧涉及的方法如下:public void setBa...
阅读全文
摘要:客户端在进行put、delete、get等操作的时候,它都需要数据到底存在哪个Region Server上面,这个定位的操作是通过Connection.locateRegion方法来完成的。loc = hConnection.locateRegion(this.tableName, row.getRow()); 这里我们首先要讲hbase的两张元数据 表-ROOT-和.META. 表,它们一个保...
阅读全文
摘要:户端调优的方法里面无非就这么几种:1)关闭autoFlush2)关闭WAL日志3)把writeBufferSize设大一点,一般说是设置成5MB 经过实践,就第二条关闭日志的效果比较明显,其它的效果都不明显,因为提交的过程是异步的,所以提交的时候占用的时间并不多,提交到server端后,server还有一个写入的队列,(⊙o⊙)… 让人想起小米手机那恶心的排队了。。。所以大规模写入数据...
阅读全文
摘要:原文如下地址 :http://www.cnblogs.com/cenyuhai/p/3650943.html看源码很久了,终于开始动手写博客了,为什么是先写负载均衡呢,因为一个室友入职新公司了,然后他们遇到这方面的问题,某些机器的硬盘使用明显比别的机器要多,每次用hadoop做完负载均衡,很快又变回来了。首先我们先看HMaster当中怎么初始化Balancer的,把集群的状态穿进去,设置maste...
阅读全文

浙公网安备 33010602011771号