- 浏览: 353615 次
- 性别:
- 来自: 杭州
最新评论
-
penkee:
为何我启动 zookKeeper bookie 10 不能创 ...
bookkeeper安装及测试体验 -
Golden-jin:
1楼也好时髦呀
bookkeeper简单分析 -
xGss2000:
要是减少到300个 region,block就0.04s了。话 ...
多region下的hbase写入问题 -
brandom520:
请问lz,我从hbase0.94版本上的数据导入到0.96.1 ...
在不同版本hdfs集群之间转移数据 -
huanghaifeng1990:
您好,我想请问一下,我执行了会发生OOM溢出的Deflater ...
perftools查看堆外内存并解决hbase内存溢出
文章列表
disable table失败的处理
- 博客分类:
- hbase
相信每一个维护hbase集群的运维人员一定碰到过disable失败,陷入无穷的"Region has been PENDING_CLOSE for too long..."状态,此时没有什么好的办法处理。经常需要重启集群。
这个问题产生的原因非常讨厌,经过一段时间的分析和验证,得到了根本原因。要理解它,必须从disable的原理说起:
disable线程是一个DisableTableHandler类,我们看它的handleDisableTable()方法,在while循环中先获取table的regions列表,然后调用BulkDisabler的bulkA ...
对于任何存储,丢失数据后,不管是没找到原因,或者没找到解决方案,都是无法过用户这一关的。
今天上午因为meta表损坏丢失了数据,虽然即将开发完成恢复meta表的工具,但是没找到原因很痛苦啊
今天在对map进行遍历的程序中发现抛出ConcurrentModificationException 异常:
一个线程中:
Map<byte[],byte[]> map = new ConcurrentHashMap<byte[],byte[]>();
while((row = results.next()) != null){
map.clear();
...
queue.put(map);
}
另一个线程中:
while(queue.size() > 0){
lin ...
zookeeper是hbase集群的"协调器"。由于zookeeper的轻量级特性,因此我们可以将多个hbase集群共用一个zookeeper集群,以节约大量的服务器。多个hbase集群共用zookeeper集群的方法是使用同一组ip,修改不同hbase集群的"zookeeper.znode.parent"属性,让它们使用不同的根目录。比如cluster1使用/hbase-c1,cluster2使用/hbase-c2,等等。
使用以上方法有一个现实的问题:如何避免各集群的相互干扰?因为client的配置权是在用户手上,并不能保证用户永 ...
今天在线上环境的监控页面中点击http://hbasemaster:60010/table.jsp?name=table1,界面中没有显示出应用的region情况,通过修改table.jsp可以观察到jsp程序在执行regions = table.getRegionsInfo()时,会抛出以下异常。
java.lang.NullPointerException
...
最近在集群上发现hbase写入性能受到较大下降,测试环境下没有该问题产生。而生产环境和测试环境的区别之一是生产环境的region数量远远多于测试环境,单台regionserver服务了约3500个region。
通过jstack工具检查到大半写入线程BLOCKED状态在"public synchronized void reclaimMemStoreMemory() {"这一行,这是在put之前的一个检查过程。
hbase在每次put以前,需要检查当前regionserver上的memstore是否超过总memstore阀值,如果超过,需要block住 ...
最近线上运行的hbase发现分配了16g内存,但是实际使用了22g,堆外内存达到6g。感觉非常诡异。堆外内存用一般的工具很难查看,可以通过google-perftools来跟踪:
http://code.google.com/p/google-perftools/downloads/list
它的原理是在java应用程序运行时,当调用malloc时换用它的libtcmalloc.so,这样就能做一些统计了
下载http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz,confi ...
hbasene(https://github.com/akkumar/hbasene)是开源项目,在hbase存储上封装使用Lucene来创建索引,代码API非常简单,熟悉lucene的朋友可以很方便地创建。
以下为测试代码,完成读取一张hbase上记录url和用户id的表,对其创建索引并进行简单的基于url的索引的代码。当取到search的结果后,就可以拿到想要的数据了。由于分词后将原始内容进行了反向索引,所以匹配就转化为了查询,速度相当快。
其中getDocumentFromHTable为读取一张hbase上己有的表,将url字段提取出来创建content索引。
...
hbase-0.90.4的主要更新
- 博客分类:
- hbase
apache邮件列表中提到0.90.4己经准备release了,看了一下所有的patch,这个版本在性能改进上基本没有改进,主要是对很多异常下bug的修复,其中比较重要的bug有以下几个:
1 https://issues.apache.org/jira/browse/HBASE-3820 ----Splitlog() execu ...
今天同事问到hbase中in-memory属性的作用,以前没有注意过,今天仔细看了下代码:
// Instantiate priority buckets
BlockBucket bucketSingle = new BlockBucket(bytesToFree, blockSize,
singleSize());
BlockBucket bucketMulti = new BlockBucket(bytesToFree, blockSize,
multiSize());
BlockBuc ...
maven菜鸟,权当记录:
原文链接:http://jackyrong.iteye.com/blog/935590
我直接拷贝了
1 mvn -v查看版本
2 设置代理
编辑settings.xml文件
<proxies>
<proxy>
<id>abc</id>
<active>true</active>
<protocol>http</protocol>
<host> </host> ...
前几天和公司的同事杨传辉(http://www.nosqlnotes.net/)做了简单的关于hbase的交流。这里做下简单的记录。Q为杨传辉,A为我。
Q: .meta.和root表是否要分裂?A: meta表和root表不会分裂,代码中有所判断。Q: 如果不分裂,那么都只有1个region?A: ...(查看代码后)A: meta和root表是要split的,.meta.和-root-不split是在0.20.6以前的版本,升级到0.89以后都会split了,只是不分裂的代码接口还保留着,实际调用的并不是这段代码。-root-理论上也会split,而且一旦发生split就完蛋。但是因为ro ...
最近因为业务需求的原因,需要开始研究hbase中的secondary index。
业务模型有点类似于rmdb中的select from table where xx=xx,这里的xx无法做成rowkey,因此需要secondary index,否则只能全表扫描。尽管hbase的全表扫描是优势,但是 ...
hbase在写入数据之前会先写hlog,hlog目前是sequencefile格式,采用append的方式往里追加数据。之前团队的同学测试关闭hlog会一定程序上提升写hbase的稳定性。而在我之前的想象中,hlog的写入速度应该是稳定的。于是写了个append程序专门测试hdfs的append性能。
代码如下:
FSDataOutputStream stm = fs.create(path, true,
conf.getInt("io.file.buffer.size", 4096),
(sh ...
今天发现hbase在写入一张新表时,写入过程中时常会出现一段连续的时间无法写入数据,时间长达10s以上。经过查看region server日志发现有如下记录:
2011-04-18 14:50:22,942 INFO org.apache.hadoop.hbase.regionserver.HRegion: Blocking updates for 'IPC Server handler 6 on 60020' on region data1,70712707089004,1303109282990.da1eccd9d9ebf0f8bfe1116fe7046763.: memstor ...