深入分析HBase-Phoenix执行机制与原理

七月 1st, 2013 by klose | 2 Comments | Filed in 互联网应用, 海量数据存储与处理

针对HBase上SQL解决方案,目前社区内比较热门的有Cloudera的Impala,Horntworks的Drill,以及Hive。根据与HBase的操作方式,可以分为三种: 以MapReduce为核心,单个任务使用hbase-client原始接口访问; 以Google Dremel为核心,单个任务使用hbase-client原始接口访问; 以HBase-Coprocessor为核心,结合Google Dremel的思想,客户端合并多个节点的处理结果。 Phoenix的安装: 1)git clone https://github.com/forcedotcom/phoenix.git 2)安装apache-maven,可以自行google 3)mvn process-sources 4)mvn package -DskipTests 5)拷贝phoenix-{versionid}.jar到HBASE_HOME/lib/下,重启RS 6)java -jar phoenix-{versionid}-client.jar $(zkquorum) example/web_stat.sql example/web_stat.csv //导入数据 7)java -jar phoenix-{versioni

Tags: , , ,

HBase性能优化2—使用Coprocessor进行RowCount统计

十月 29th, 2012 by klose | 1 Comment | Filed in 互联网应用, 海量数据存储与处理

对于Table内RowKey个数的统计,一直是HBase系统面临的一项重要工作,目前有两种执行该操作的方式。 1)使用MapReduce进行。可以借助HTableInputFormat实现对于Rowkey的划分,但是需要占用资源,另外由于使用的Hadoop集群提交作业,经常会遇到不能申请到资源的情况,延迟较大,不适合应用的频繁访问。 2)使用Scan+KeyOnlyFilter的方式进行。可以借助Filter的功能,尽可能实现数据在RegionServer端进行统计,减轻Client端的压力。但是,在大多数情况下,从每一个Region上进行Scan,当Table较大时,会造成非常长的延迟,用户体验下降。 基于此,我们考虑到了Coprocessor这样的新特性。 操作上,HBase-0.92.1提供了 org.apache.hadoop.hbase.coprocessor.AggregateImplementation,我们需要对于某一个Table注册该Coprocessor,具体做法为: 292ec088585e

Tags: , , ,