`
punishzhou
  • 浏览: 142806 次
社区版块
存档分类
最新评论
文章列表
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是以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的 ...
 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的代码 记录一下学习心得 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 ...
Global site tag (gtag.js) - Google Analytics