- 浏览: 142806 次
最新评论
-
di1984HIT:
写的很好偶~~~~~
Java 的DelayQueue -
di1984HIT:
学习了~!!!
HBase之 HTable线程不安全 -
di1984HIT:
学习了~~~
HTable的使用 -
di1984HIT:
学习了~~~
HBase的数据的update -
di1984HIT:
查询不是并行的region查询么?这么奇怪啊。
HBase scan的客户端分析
文章列表
Hbase的一个很大的优点就是可扩展性比较强,可以线性扩展,加机器就行,而且机器的配置也不需要太好,就是用大量廉价的机器来替代昂贵的小型机,但是由于大量的相对廉价的机器,由于网络硬盘等各种各样的原因,机器不可避免的会挂掉,那么HBase在面对这种问题时如何处理呢?
首先来看HBase的RS在哪几种情况下会down掉:
1. 集群关闭;
2. stop regionserver 关闭当前RS,当然也可启动当前RS
3. 线程kill掉,包括kill + 线程号 and kill -9 + 线程号
4. RS在运行过程中产生自身难以解决的problem,此时它会自己abort自己。
...
前几天把集群关闭了,换了一个新的版本。然后就发现集群再也起不来了。
依照以前的步骤一步一步下来。启动集群的时候出现了很奇怪的事情:
master起不来,regionserver倒是启动了。
查看master日志.
metrics.MasterMetrics: Initialized2011-11-02 19:03:51,914 INFO org.apache.hadoop.hbase.master.ActiveMasterManager: Master=mastername:600002011-11-02 19:03:52,098 FATAL org.apache.hadoop.h ...
HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分做BlockCache,用来读,当然Memstore也有读的功效,不过由于Hbase的scan机制,从Memsotre读到数据的效果一般。
今天主要来分析下Hbase的BlockCache机制,并且阐述其中碰到的一个RTE异常。
话不多说,首先来看看Hbase的存储机制。
其实际存储文件是HFile格式的,这是一个HDFS上的Seq的二进制流
HFILE由以下几部分组成
DATABLOCK DATABLOCK 。。。标志 METABLOCK METABLOCK ...
HBase的数据的update
- 博客分类:
- HBase Server端
hbase是以rowkey,column,timestamp这三个维度来区分的。
即如果两条记录其rowkey,column,timestamp一样的话,那么hbase就会认为其是相同的数据。
row column value time
put r1 cf:c1 '5' 10
put r1 cf:c1 '6' 10
put r1 cf:c2 '7'
put r1 af:c2 '8'
put r ...
HBase的操作一般都是以region为粒度的,如split,compact,move等操作。因此对于每个region在集群的唯一性就需要得到保证。若region在两个regionserver中出现显然会有各种各样的bug出现。 这里我们通过以下的分析来看看region在上吗情况下会出现分配到两个rs中。 对于一个RS1上的Region A将其move到RS2中,调用HBaseAdmin的move操作: 1.创建一个到B的RegionPlan 2.然后unassigned Region A,即将RS1上的Region A的region关闭,主要是关闭region上每个storefile的 ...
HBase的get过程(一)
- 博客分类:
- HBase Server端
0.90.X的get和scan操作原理上是比较一致的,get操作都变为scan操作。不过在分析之前我们还是从get说起
话不多说首先看看get这个接口,hbase客户端对于get有以下几种:
public Get(byte [] row)
public Get(byte [] row, RowLock rowLock)
其中rowlock主要是用来保证行的事务性,即每个get是以一个row来标记的一个row中可以有很多family和column
get还有很多函数如addfamily,addcolumn,这里我主要以指定row family column来get数据
ok我 ...
hbase的table delete之前需要将该table disable,今天结合源码分析一下disable的过程
首先看客户端HbaseAdmin.java中有接口
public void disableTable(final byte [] tableName)
public void disableTable(final String tableName)
它们的实现都是
public void disableTableAsync(final byte [] tableName) throws IOException {
isMasterRunning() ...
HBase Split 过程
- 博客分类:
- HBase Server端
看了下hbase split的代码 记录一下学习心得
private void split(final HRegion parent, final byte [] midKey)
throws IOException {
final long startTime = System.currentTimeMillis();
SplitTransaction st = new SplitTransaction(parent, midKey);
// If prepare does not return tru ...