自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Thrift的使用

java操作Thriftthrift的原理及使用介绍可参考http://dongxicheng.org/search-engine/thrift-framework-intro/ 1:下载thrift并解压下载地址:http://thrift.apache.org/download/ 2:编写Thrift文件(定义接口,结构,异常等),保存为demoHelllo.thr...

2013-07-08 13:58:55 219

原创 使用jstack来查看cpu消耗性能

使用jdk自带的jstack来分析。top 工具可以显示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.)显示如下:  uptime 该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。processes 自最近一次刷新以来的运行进程总数。当然这些进程被分为正在运行的,休眠...

2013-01-23 20:41:14 450

原创 HTable的使用

当前一般HBase的读写(删除也认为是写)都是通过HTable对象来操作的。 首先看官方的注释   * <p>Used to communicate with a single HBase table. * * <p>This class is not thread safe for reads nor write. *  * &lt...

2013-01-23 20:39:05 617

原创 HMaster的failover 流程(三)

继续HMASTER的failover 流程上一篇说道master failover的一个漏洞,这几天好好的看了一下,终于找到问题的关键在哪儿了。首先来看如何重现。1. master 发送rpc请求去open region,此时zk上的节点时offline状态。2. rs收到请求还没有开始处理,即zk节点仍然是offline。3. master重启4. master开...

2012-07-02 21:15:08 215

原创 HMaster的failover 流程(二)

继续上一篇的master failover流程master挂掉期间没有regionserver挂掉的情况。昨天写着写着突然发现90 failover存在一个bug,今天测试了一下,果然存在。当master处理zk上面的unassigned节点时,首先会去getchlidren。这个函数会获取zk unassigned节点 set watch(该节点删除触发noded...

2012-06-27 21:18:00 212

原创 HMaster的failover 流程

HBase的master重启时走的是failover流程。 由于在HMaster挂掉的瞬间有很多正在执行的事务,如: 1.  某个table可能正在disable到一半,master挂掉 2.  create table到一半,master挂掉 3.  move 动作到一半,master挂掉当 master挂掉的时候,这些动作是不一致的,即可能出于一个中间状...

2012-06-26 21:57:01 335

原创 HBase编译过程中碰到的问题

测试环境上hbase采用maven编译,只要安装了maven就行.在hbase目录下mvn package -Dmaven.test.skip.exec=true编译好的jar放在target目录下,将jia包替换以后。1.重启集群发现一个问题:HMaster启动了,但是Regionserver没有起来 后来分析maven编译之前时候会把依赖都下到.m2/目录下,Hbase集群...

2011-12-08 21:49:09 360

原创 HBase scan的客户端分析

HBase中rowkey是索引,任何对全表的扫描或是统计都需要用到scan接口。本文主要探讨的是客户端是如何通过scan来扫描hbase的table的。 主要关注几个问题: 1.每一个Table可能不止一个region,分布在不同的regionserver上。客户端需要找到每个region的位置并与之通信; 2.Hbase是以append形式把数据写进去的,无论是写还是...

2011-12-07 21:37:38 265

原创 Java 的DelayQueue

今天看了一下HBase的代码,发现在很多地方都用了DelayQueue,网上有很多解析DelayQueue的实例 http://www.cnblogs.com/jobs/archive/2007/04/27/730255.html 提到了DelayQueue的使用场景: a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。b) 缓存。缓存中的对象,...

2011-12-05 21:10:48 125

原创 HBase的client api guide

参考网上的一些api guide,总结了的一些HBase的client api,以及自己的一些理解三个部分:首先描述hbase建表,读写数据的过程;然后详细介绍一下这些过程中所使用的API,并给出实例;最后给出一些在使用HBase客户端时的一些注意事项和建议。一家之言而已,记录加强印象~~~...

2011-12-05 20:43:03 118

原创 Hbase的log管理(二)

1.在Hbase的log管理(一)中,描述了Hbase对于Hlog的更新和清理过程。其中提到会把已经写入磁盘的log文件move到.oldlog文件中,那么.oldlog中的文件又如何处理呢?HMaster启动的时候会起一个守护线程LogCleaner,专门清理oldlog中的文件,频率是60s2.数据以KeyValue形式到达HRegionServer,将写入WAL之后,写入一个Se...

2011-12-01 20:39:55 220

原创 HBase之 HTable线程不安全

在单线程环境下使用hbase的htable是没有问题,但是突然高并发多线程情况下就可能出现问题原因是什么呢? 我们来看看Htable的api说明  This class is not thread safe for updates; the underlying write buffer can be corrupted if multiple threads conten...

2011-12-01 20:21:28 873 1

原创 Hbase的log管理(一)

每一个Regionserver中都有一个HLog,一般情况下除非设置了SETWAL(false)否则对hbase的写操作在put到内存之前会append到log中以防止机器down 掉造成的数据丢失。首先来看RS启动后对HLog的处理private HLog setupWALAndReplication() throws IOException { final Path oldL...

2011-11-30 19:10:28 351

原创 HBase splitlog 过程

上一篇Blog提到了HBase在regionserver挂掉以后,master会处理,其中很重要的一步是就是splitlog,把.logs目录下的该rs的文件夹里的HLog文件,按照region进行分配。splitlog的代码如下所示:private List<Path> splitLog(final FileStatus[] logfiles) throws IOExceptio...

2011-11-30 19:00:28 366

原创 HBase的RS关闭过程和Region重分配(二)

上一篇blog谈到了rs挂掉的几种情况。 HBase作为nosql的一种产品,应用于大规模分布式的海量数据,其中有一个优点就是其对于机器down掉的容错性。客户端不需要关注机器是否挂掉或者怎么样,server会自动处理down的server,处理器上的region并分配到其他server从而最大限度地提高系统可用性 今天来看看当rs挂掉以后的处理情况。 前面我们说过rs...

2011-11-29 21:52:26 675

原创 HBase的RS关闭过程和Region重分配(一)

Hbase的一个很大的优点就是可扩展性比较强,可以线性扩展,加机器就行,而且机器的配置也不需要太好,就是用大量廉价的机器来替代昂贵的小型机,但是由于大量的相对廉价的机器,由于网络硬盘等各种各样的原因,机器不可避免的会挂掉,那么HBase在面对这种问题时如何处理呢? 首先来看HBase的RS在哪几种情况下会down掉:1. 集群关闭;2. stop regionserver 关闭当前...

2011-11-28 21:46:06 952

原创 HBase 配置的小问题

前几天把集群关闭了,换了一个新的版本。然后就发现集群再也起不来了。依照以前的步骤一步一步下来。启动集群的时候出现了很奇怪的事情:master起不来,regionserver倒是启动了。 查看master日志.metrics.MasterMetrics: Initialized2011-11-02 19:03:51,914 INFO org.apache.hadoop.hbase...

2011-11-24 20:56:26 132

原创 HBase的Block cache

HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分做BlockCache,用来读,当然Memstore也有读的功效,不过由于Hbase的scan机制,从Memsotre读到数据的效果一般。 今天主要来分析下Hbase的BlockCache机制,并且阐述其中碰到的一个RTE异常。 话不多说,首先来看看Hbase的存储机制。其...

2011-11-24 20:45:05 324

原创 HBase的数据的update

hbase是以rowkey,column,timestamp这三个维度来区分的。即如果两条记录其rowkey,column,timestamp一样的话,那么hbase就会认为其是相同的数据。  row column value timeput r1 cf:c1 '5' 10put r1 ...

2011-11-18 19:34:58 2041

原创 HBase Region在两个RegionServer出现分析

HBase的操作一般都是以region为粒度的,如split,compact,move等操作。因此对于每个region在集群的唯一性就需要得到保证。若region在两个regionserver中出现显然会有各种各样的bug出现。 这里我们通过以下的分析来看看region在上吗情况下会出现分配到两个rs中。 对于一个RS1上的Region A将其move到RS2中,调用HBaseAdmin的move...

2011-11-17 21:23:44 226

原创 HBase的get过程(一)

 0.90.X的get和scan操作原理上是比较一致的,get操作都变为scan操作。不过在分析之前我们还是从get说起话不多说首先看看get这个接口,hbase客户端对于get有以下几种:public Get(byte [] row)public Get(byte [] row, RowLock rowLock) 其中rowlock主要是用来保证行的事务性,即每个get是以一个r...

2011-11-14 20:41:04 290

原创 HBase disable table的过程

hbase的table delete之前需要将该table disable,今天结合源码分析一下disable的过程 首先看客户端HbaseAdmin.java中有接口public void disableTable(final byte [] tableName)public void disableTable(final String tableName) 它们的实现都是...

2011-11-14 19:42:56 1782

原创 HBase Split 过程

看了下hbase split的代码 记录一下学习心得[code="java"]private void split(final HRegion parent, final byte [] midKey)throws IOException { final long startTime = System.currentTimeMillis(); SplitTransa...

2011-11-03 21:37:03 166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除