Hbase入门
文章平均质量分 75
luyee2010
这个作者很懒,什么都没留下…
展开
-
Hbase0.96源代码之HMaster(三)Hmaster主要循环
1,Master初始化1.1 if (!this.stopped) { finishInitialization(startupStatus, false); loop(); }1.2 finishInitialization(),这里主要完成master组件components:filesystem manager,servermanager,assig原创 2014-05-21 02:02:08 · 1500 阅读 · 0 评论 -
Hbase region split源代码阅读笔记
客户端 1. HbaseAdmin.split(final byte [] tableNameOrRegionName, final byte [] splitPoint) 这个方法首先判断参数是regionName还是tableName;如果是regionName则只分裂该region,如果是tableName则分裂该表下的所有region if (isReg转载 2013-03-03 16:46:48 · 1047 阅读 · 0 评论 -
Hbase的Region Compact算法实现分析
Hbase的Region Compact算法属于一种多路归并的外排算法。这种算法的特点是,待排序文件本身是有序的,同时打开这些文件,顺序遍历并对比它们的首条数据,最后合并输出为一个文件,多个文件遍历时的首条数据用内存堆进行内排。 Hbase在实现该算法的过程中重要的是下面这五个类。 1.org.apache.hadoop.hbase.regionserver.Store 2.org转载 2013-03-03 16:46:08 · 1652 阅读 · 0 评论 -
hadoop工程师要求
记录下:感觉才有点学习方向Hadoop/Hive开发工程师(15K-30K)工作地点:上海、杭州、深圳、北京岗位职责:1. 预研、开发、测试hdfs/mapreduce/hive/hbase的功能、性能和扩展;2. 对有助于提升集群处理能力/高可用性/高扩展性的各种解决方案进行跟踪和落地;3. 解决海量数据不断增长面临的挑战,解决业务需求。原创 2013-01-07 14:39:09 · 3524 阅读 · 0 评论 -
HBase中的Client如何路由到正确的RegionServer
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究源码的基础上揭转载 2013-02-28 23:13:02 · 1231 阅读 · 0 评论 -
HBase异常——当RegionServer Crash之后
对于分布式数据库来说,容错处理是非常重要的一个部分。RegionServer是HBase系统中存在最多的节点,所以对于RegionServer的容错处理对于HBase来说至关重要。本文对RegionServer的容错处理进行Step by Step的分析,希望能解释清除整个过程并加以点评。我们假设在HBase运行的过程中有一个RegionServer突然Crash, 基于这个场景进行分析。转载 2013-02-28 23:11:13 · 5373 阅读 · 0 评论 -
HFile存储格式
HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括两种文件类型:1. HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile2. HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是H转载 2013-02-28 23:03:24 · 2072 阅读 · 0 评论 -
HBaseClient源码分析
1.1 HConnection: 管理连接的接口,定位server端 , master端的位置,建立连接,规定调用server端的接口。HConnection真正的实现是HConnectionManager.TableServers主要方法:processBatchOfRows,processBatchOfDeletes:批量插入,删除操作getRegionSer转载 2013-02-28 22:22:57 · 4600 阅读 · 2 评论 -
详解HBase Compaction
1. Compaction是什么合并多个HFile生成一个HFileCompaction有两种:Minor Compaction(部分文件合并)Major Compaction(完整文件合并)2.为什么要Compaction?减少HFile文件的个数提高性能清除过期和删除数据3.配置修改Hbase配置文件可以控制compaction行为转载 2013-02-28 22:09:38 · 1556 阅读 · 0 评论 -
hbase 介绍
hbase 介绍一、简介history started by chad walters and jim2006.11 G release paper on BigTable2007.2 inital HBase prototype created as Hadoop contrib2007.10 First useable Hbase2008转载 2013-02-28 21:44:58 · 838 阅读 · 0 评论 -
hbase SCAN操作-ROOT- .META.
hbase(main):015:0> scan '-ROOT-'ROW COLUMN+CELL .META.原创 2013-03-31 02:22:52 · 5148 阅读 · 0 评论 -
Hbase0.96源代码之HMaster(二)Hmaster主要循环becomeActiveMaster
1,Hmaster主循环主要这里主要有:1,1 becomeActiveMaster(startupStatus);1.2 finishInitialization1.3 loop() becomeActiveMaster(startupStatus); // We are either the active master or we were asked to shut原创 2014-05-20 02:55:59 · 3503 阅读 · 0 评论 -
hbase0.96 put流程 源代码分析
无意间多瞄了一眼hbase0.98的代码,想复习下put流程,发现htable里面已经找不到processBatchOfPuts()奇怪了。看了半天原来变化还真大其实0.96就没这个了,于是又搞了个0.96的代码看看之前有篇可以对比差异,请转移至:http://blog.csdn.net/luyee2010/article/details/8435739 不过排版太乱将就看吧!HTab原创 2014-05-14 00:47:07 · 2772 阅读 · 0 评论 -
Hbase0.96源代码之HMaster(一)
从main()函数开始 public static void main(String [] args) { VersionInfo.logVersion(); new HMasterCommandLine(HMaster.class).doMain(args); } public void doMain(String args[]) { try {原创 2014-05-18 03:23:40 · 3304 阅读 · 1 评论 -
eclise中启动Hbase的Hmaster,玩玩shell
首先master:参数:运行 hbase shellhbase shell参数运行起来后hbase的shell跑几个命令试试发现可以了:create 't_person','no','name'create 't_person','no','name'0 row(s) in 2.5020 secondsHbase::Ta原创 2014-03-30 02:47:07 · 1688 阅读 · 0 评论 -
Hbase 错误ERROR记录
2013-06-27 16:14:21,899 FATAL org.apache.hadoop.hbase.regionserver.HRegionServer: Master rejected startup because clock is out of syncorg.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop原创 2013-06-27 16:37:59 · 5208 阅读 · 0 评论 -
hbase shell之创建表的同时创建分区
1,创建表的同时创建分区:create 'tb_splits', {NAME => 'cf', VERSIONS=> 3},{SPLITS => ['a','b','c']}2,这个时候可以http://hadoopmaster:60010/master-status去看看发现这个表有4个regions:在看看怎么split的吧:原创 2013-07-09 19:57:43 · 9893 阅读 · 1 评论 -
Hbase分析报告(tablename+startrowkey_regionid/-meta-)
Hbase分析报告本文基于环境hadoop-0.16.4 和 hbase-0.1.3 编写Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。Hbaes的目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。Hbase可以直接使用本地文件系统或转载 2013-03-03 19:45:45 · 2442 阅读 · 0 评论 -
Hbase Rpc只是个链接地址哦
HBase源码分析 – RPC机制:客户端http://www.spnguru.com/2010/08/hbase%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E2%80%93-rpc%E6%9C%BA%E5%88%B6%E5%AE%A2%E6%88%B7%E7%AB%AF/HBaseClient源码分析http://www.spnguru.com/2转载 2013-03-12 03:07:27 · 1002 阅读 · 0 评论 -
MapReduce编程之通过MapReduce读取数据,往Hbase中写数据
1,首先是map类:package com.hbase.maptohbase;import java.io.IOException;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;原创 2013-03-10 03:32:42 · 9056 阅读 · 0 评论 -
hbase之宽表与窄表对split的影响
hbase的hbase.hregion.max.filesize属性值用来指定region分割的阀值, 该值默认为268435456(256MB), 当一个列族文件大小超过该值时,将会分裂成两个region。 hbase的列可以有很多,设计时有两种方式可选择, 宽表(一行有很多列)和窄表如有一个存储用户邮件的表按宽表设计时,可以表示成(一个用户的所有邮件存成一行)useri转载 2013-01-03 20:45:10 · 5446 阅读 · 0 评论 -
hbase的过滤 Filter 之SingleColumnValueFilter
scan的操作:hbase(main):002:0> scan 'scores'ROW COLUMN+CELL zkb原创 2012-12-28 01:27:38 · 11500 阅读 · 2 评论 -
HBASE的shell使用
也来hbase的shell吧首先是登录hbase 了:hbase(main):001:0> create 'tbname','row','column1','column2'0 row(s) in 1.0730 secondshbase(main):004:0> list 'tbname'TABLE原创 2012-12-04 01:57:51 · 3918 阅读 · 1 评论 -
hbase的过滤 Filter 之PrefixFilter
首先来can下表:hbase(main):004:0> scan 'scores'ROW COLUMN+CELL zkb原创 2012-12-28 00:36:38 · 12115 阅读 · 2 评论 -
MapReduce 的理解
1分钟理解map reduce,其实它就在我们身边:http://heipark.iteye.com/blog/845267,就是:查找与汇总呗linux平台下有个ls指令,大家都很熟悉:① ls | grep 2008 查询文件名包含2008的文件(这其实就是一个map,找到需要的数据)② ls | grep 2008 | wc -l 计算上述指令查询文件个数(这转载 2012-12-27 00:07:31 · 948 阅读 · 0 评论 -
Hbase 三维有序存储
hbase所谓的三维存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)先说rowkey,我们知道rowkey是行的主键,而且hbase只能用个rowkey,或者一个rowkey范围即scan来查找数据。所以rowkey的设计是至关重要的,关系到你应用层的查询效率。我们知道,rowkey是以字典顺序排序的转载 2012-12-25 23:55:58 · 2897 阅读 · 0 评论 -
Hbase 存储结构 数据模型
Hbase 存储结构 数据模型 TABLE HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(Column family),一行由RowKey 时间戳,若干个列组成。除了rowkey和时间戳外,其他的列称为列族,他的命名有一定的规范。rowKey就像关系数据库的主键,用来检索记录。table中所有的记录按rowkey来排序,访问hba转载 2012-12-25 23:54:15 · 5616 阅读 · 0 评论 -
eclipse 远程Debug Hbase
我们学习任何一项技术,要想深入研究,都需要对源码进行debug,在学习HBase的过程更是避免不了debug,下面说明怎么样配置才能让eclipse远程调试Hbase。进入hbase 的bin目录下,用vi编辑hbase文件。hbase的shell脚本。也是hbase启动的核心脚本。找到下面这一部分。在结尾部分。unset IFS# figure out which class转载 2012-12-25 23:59:37 · 2215 阅读 · 0 评论 -
Hbase HregionServer Hregion Hmaser
由Hregion服务器集群和Hmaster主服务器构成HBase的服务体系结构,1,Hregion:通常情况下每个表被拆分成很多个块,其中的每一块就是Hregion,一张表保存在多个Hregion中,每个Hregion保存某段连续的数据,从开始主键(startRow)到结束主键(endRow)通过Hregion从Hadoop的分布式文件系统上数据2,Hmemcache:内存中的原创 2012-12-14 01:48:23 · 1412 阅读 · 0 评论 -
hbase 的regioninfo
无意间看了下接了个图:这个一个scores表的结构,这个表有两个faminly:course,grade下面再来看regrioninfo的信息吧:2147483647BLOCKCACHE2147483647BLOCKCACHEREGION => {NAME => 'scores,,1353524491099.c5c11a33d955ef1469708e17946原创 2012-12-24 00:53:41 · 1505 阅读 · 0 评论 -
hbase的filter集合
随便看了下filter还是比较多的,才稍稍过了下:PrefixFilter,SingleColumnValueFilter位于/hbase/src/main/java/org/apache/hadoop/hbase/filter$ 下:BinaryComparator.java*BinaryPrefixComparator.java*ColumnCountGetFilter.jav原创 2013-01-01 23:55:06 · 2887 阅读 · 0 评论 -
hbase源码学习之GET操作之get转化为scan
1,还是先看构造函数 public Get(byte [] row) { this(row, null); } public Get(byte [] row, RowLock rowLock) { this.row = row; if(rowLock != null) { this.lockId = rowLock.getLoc原创 2013-01-03 19:25:01 · 2900 阅读 · 1 评论 -
HBase点滴
1)设备 当你调用create办法时将会加载两个设备文件:hbase-default.xml and hbase-site.xml,哄骗的是当前的java类路径, 代码中configuration设置的这些设备将会覆盖hbase-default.xml和hbase-site.xml中雷同的设备,若是两个设备文件都存在并且都设置好了响应参上方的属性下面的属性即可2)关于建表转载 2013-02-26 01:34:28 · 867 阅读 · 0 评论 -
HBase 系统架构
http://www.cnblogs.com/shitouer/archive/2012/06/04/2533518.htmlHBase 系统架构HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能。HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问转载 2013-02-21 15:10:03 · 801 阅读 · 0 评论 -
hbase源码学习之put操作
整理了下大致流程图:Client--->Htable---->Hmastermanager/ZK(获取-root-,--meta--)------>HregionServer----->Hregion------>Hlog/Hmemstore----->HFilecustomHBase.put(table, row, fam, qual, val);Result result =原创 2012-12-26 02:29:56 · 16681 阅读 · 1 评论 -
Hbase HLog源代码阅读笔记
HLog 当客户端往RegionServer上提交了一个更新操作后,会调用HLog的append方法往WAL上写一个节点,入口方法就是append 1.append public void append(HRegionInfo info, byte [] tableName, WALEdit edits, final long now) throws IOExc转载 2013-03-03 16:38:26 · 1072 阅读 · 0 评论 -
HBase HMerge源代码阅读和修改
随着Hbase里删除的进行,有些Region的数据会越来越少,而HBase不会主动去回收这些Region,因此会造成Region越来越多。HBase里提供了一个工具类HMerge,直接拿过来用却并不能运行,按照自已对HBase的理解对HMerge稍做修改,使其可以运行。运行时不需要Disable表,但需要注意的是在运行时如果同时往该表里put数据,可能会有问题,改后的代码如下: /**转载 2013-03-03 16:48:15 · 1133 阅读 · 0 评论 -
Hbase region compact源代码阅读笔记
客户端 1.table_jsp._jspService(HttpServletRequest request, HttpServletResponse response) 调用客户端HBaseAdmin的compact方法来压缩region //调用HBaseAdmin的功能来完成Region的压缩 HBaseAdmin hbadmin = new HBaseAdmin转载 2013-03-03 16:44:36 · 818 阅读 · 0 评论 -
Bloom filter 过滤(布隆过滤算法)原理
一,什么是Bloom filter Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况,可见 Bloom filte转载 2013-01-17 02:00:00 · 6569 阅读 · 0 评论 -
HBase性能优化方法总结
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客。1. 表的设计1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个r转载 2013-01-24 10:37:19 · 2915 阅读 · 0 评论