
hbase
文章平均质量分 74
bluekeyv
致力于hadoop生态系统,专注hbase应用与研究
展开
-
hbase中服务器时间不同步造成的regionserver启动失败
今天配置hbase的时候发现有几台机器的regionserver启不来。报错如下: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.Del原创 2011-05-09 17:10:00 · 5100 阅读 · 0 评论 -
hbase表结构设计研究(不断更新)
因为一直在做hbase的应用层面的开发,所以体会的比较深的一点是hbase的表结构设计会对系统的性能以及开销上造成很大的区别,本篇文章先按照hbase表中的rowkey、columnfamily、column、timestamp几个方面进行一些分析。最后结合分析如何设计一种适合应用的高效表结构。 1、表的属性 (1)最大版本数:通常是3,如果对于更新比较频繁的应用完全可原创 2012-04-09 16:15:34 · 44626 阅读 · 6 评论 -
hbase0.94新特性
HBase 0.94 版本最近发布了,距上次的0.92 版本发布又四个月了,下面我们就来看一下这个版本中丰富的功能增强。性能相关读缓存改进: HDFS 将图片和checksum存储在不同的block中的,所以每次我们进行读操作,都需要进行两次磁盘操作(一次读数据文件,一次读checksum所在的文件)。在HBASE-5074 这个提案中,提出了将checksum存到block 缓存转载 2012-05-24 13:33:17 · 3600 阅读 · 0 评论 -
Hbase入库因素小结(停止更新)
一、硬件因素Ø 内存Hbase对内存有特别的嗜好,因为内存越大,regionserver接受客户端传递来的数据时可以在内存中做缓存(memstore)以及排序,分配给region等操作的限度更大,相当于利用内存作为缓冲池,组织好hbase需要的数据之后再统一写的顺序写硬盘。*推荐32GB内存Ø CPUCPU参与边界计算以及数据排序等操作,当内存非常大时,CPU对内存中数据的组织原创 2011-04-15 08:17:00 · 11500 阅读 · 10 评论 -
HFileInputFormat实现
hbase的底层存储采用的是hfile文件格式,可以作为mr的输入,进行hfile的mr。代码如下:import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;原创 2012-07-27 16:48:09 · 4539 阅读 · 4 评论 -
HBase解决Region Server Compact过程占用大量网络出口带宽的问题
HBase 0.92版本之后,Region Server的Compact过程根据待合并的文件大小分为small compaction和large compaction两种,由此可能导致在集群写入量大的时候Compact占用过多的网络出口带宽。本文将详细描述集群使用过程中遇到这一问题的排查过程及其解决方法。1. 发现问题HBase集群(版本为0.94.0)运行过程中,发现5台Regi转载 2012-11-26 13:49:00 · 2710 阅读 · 0 评论 -
HBase集群出现NotServingRegionException问题的排查及解决方法
HBase集群在读写过程中,可能由于Region Split或Region Blance等导致Region的短暂下线,此时客户端与HBase集群进行RPC操作时会抛出NotServingRegionException异常,从而导致读写操作失败。这里根据实际项目经验,详细描述这一问题的发现及排查解决过程。1. 发现问题在对HBase集群进行压力测试过程中发现,当实际写入HBase和从转载 2012-11-26 13:50:54 · 8016 阅读 · 1 评论 -
小小的里程碑,Mark一下
从接触到研究hbase也有1年多的时间了。从之前的了解、安装、使用。到后来的应用开发、性能调优。hbase每次都能带给我不一样的惊喜,无论的并发查询还是数据写入。多维查询还是监控扩展,bulkload扩展。都让我对hbase的能力深信不疑。 今天偶尔上JIRA上查询,发现自己提交的一个bug已经被社区采纳并正式进入0.94.2版本,心中还是好好的激动了一把。淘宝的竹庄已经很轻松的ho原创 2012-11-12 11:29:31 · 2652 阅读 · 2 评论 -
hbase使用、运维、改进(不断更新)
刚刚看了google jeff dean 在新的一年里发表的演讲,讲到各种系统配合使用完成海量数据处理任务。深有感触:http://t.cn/zYE89gn 。2013年,依然会专注hbase研究,并以此为基础扩展,对hbase衍生的一些特性和产品进行深入研究,例如replication、phoenix。从传统的离线计算(hadoop、hive),到实时流式计算系统(storm、s4),创新应用性原创 2013-03-07 15:27:06 · 12636 阅读 · 6 评论 -
hbase集群表在线调整(TTL/compression)
今天发现hbase集群的hdfs使用量已经接近80%,检查发现一个表数据量特别巨大,该表会记录用户每天的一次活动属性,按照4亿用户*197天,有800亿条的数据存放在表中——4TB,对于一个表来说过于大了。有两个问题:1、未开启压缩;2、没设置TTL 经过和业务方讨论,只保留最近93天(3个月)的数据,然后开启LZO压缩。 理论上所有的表都应该开启压缩,但是早期使用时没原创 2013-04-16 18:11:44 · 5394 阅读 · 1 评论 -
hbase bulkload
bulkload的方式导入数据是hbase的一项相当好的数据导入工具,特别适合做为新系统的历史数据导入工具!hbase本身也封装了相关的类importtsv,官网有简单的介绍http://hbase.apache.org/bulk-loads.html。 这里我要说明的是如何去快速定制一些适合自己应用的bulkload。 我们一般需要运行的数据有几种格式,txt的用的最原创 2012-04-09 16:41:04 · 7433 阅读 · 3 评论 -
RegionServer不停新建空的hlog
线上0.90.2集群发现一个诡异现象。regionserver不停的新建空Hlog,导致Hlog数量到达100w之多,测试集群的hdfs承受不了压力,挂掉。对相关表做了disable和enable之后才恢复正常。从现象来看应该是写操作引起的,但是为什么会产生这个现象,还待追查。mark一下原创 2013-08-08 16:36:14 · 2663 阅读 · 1 评论 -
Hbase写入量大导致region过大无法split问题
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题。让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region无法split掉,处于不可用状态。这里描述一整个过程—— 事情的起因:业务方按照userid和商品id作为rowkey前缀,并没有进行hash散列。我当时咨询过业务方,认为:1.原创 2014-02-10 12:09:04 · 11705 阅读 · 5 评论 -
hbase培训ppt
最近在研究hbase,今天要在公司里对hbase做简要介绍,写了一篇ppt。下面整理一下我的演讲思路 定位:由于这次演讲是针对普通程序员和nosql相关程序员两个群体同时进行,那么需要兼顾演讲的易理解性,以及部分技术深度。 我的思路如下: 1、 基于hdfs,继承了可靠性、高性能、可伸缩性。自己又有特点:列存储,实时读写,是一个数据库。 2、 数据库系统并不是孤立的,有必要介绍一下他在整个hadoop体系中的位置 3、 举例子方便大家理解:mysql-ntfs约原创 2011-03-04 15:54:00 · 5102 阅读 · 7 评论 -
hbase修复.META.表与HDFS文件不一致问题
在实际环境中遇到hbase fbck检查报hdfs数据块与META表信息不一致的错误。表现就是数据写入无法进行。 经过检查,发现在.META.表中对应的一些region块的子列少了regioninfo这一列;同时在hdfs的出错region文件夹下查看发现本来该是.regioninfo的文件夹变成了.tmp文件夹。在网上查了些资料,发现是region做分裂的时候失败,导致region原创 2012-01-01 16:26:49 · 6879 阅读 · 2 评论 -
hbase中region的规划与硬盘配置分析
Hbase在逻辑上的存储最小单位是Region,物理上来说事HFile。每个Region由多个HFile组成。那么,是否有一个推荐值,确定每台regionserver上运行多少个region,,每个region的size多大是最合适的呢? 看到《Hbase权威指南》中有一段话写道: It is noted in the Bigtablepaper that the ai原创 2011-12-23 15:01:05 · 5263 阅读 · 0 评论 -
Hadoop World 大会上的文章选摘(一)
Compression LZOor Snappy(20% better than LZO)——Block(default) Serialization AVROdidn’t work well——deserialization issue Developedconfigurable serialization mechanism原创 2011-12-09 14:37:02 · 1200 阅读 · 0 评论 -
虚拟机下linux+java+hadoop+hive环境搭建
最近在接触hadoop的项目,把总结出的配置方法写出来纪念一下,也方便后来人快速玩转hadoop。 首先在虚拟机中安装linux,我是用的redhad,然后装jdk:http://yushan.javaeye.com/blog/261148,接下来是关键部分: 一、hadoop安装:下载release版本hadoop0.20.1,解压到/home/hadoop/ 。 1.命令行下运行 #mkdir input cp conf/*.xml input bin/hadoop原创 2009-10-19 15:35:00 · 3202 阅读 · 0 评论 -
列存数据库学习心得
数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如下表: EmpId Lastname Firstname Salary 1 Smith Joe 40000 2 Jones Mary 50000 3 Johnson Cathy 44000 这个表存储在电脑的内存和硬盘中。数据库必须把这个二维表存储在一系列的一维“字节”中,又操作系统写到内存或原创 2010-04-23 15:34:00 · 3932 阅读 · 0 评论 -
列式数据库存储
网址: http://www.penglixun.com/tech/database/column-oriented_dbms_analyse.html 这些天看数据仓库的内容,发现一个新内容——列式存储。曾经有想过把数据库行列转置作成索引,不过没有深想,没想到列式数据库已经开始发展起来了。 首先看下WIKI上对列式数据库的解释: 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量转载 2010-03-30 15:32:00 · 5792 阅读 · 0 评论 -
hbase入库效率提升研究(一)
最近在研究hbase,查询效率确实不错,不过入库效率不理想,今天周五就小结以下。 hbase使用java 的api入库很简单: Configuration conf = HBaseConfiguration.create(); HTable table = new HTable(); Put p = new Put("表名"); p.add(("族列名").getBytes(), "字段名".getBytes(),"值".ge原创 2010-12-10 15:48:00 · 8140 阅读 · 4 评论 -
SQL到NOSQL的思维转变
介绍了传统关系数据库和现在的nosql的一些对比,解释了互联网业界为什么会有rmdb-》nosql的思路转变转载 2011-04-15 20:30:00 · 1453 阅读 · 0 评论 -
HBase0.89常用API接口使用
HTable:这个是table对象,通过他来完成对hbase表的各种操作,删除,更新,创建,查询 RowFilter:对rowkey过滤查询的类 QualifierFilter:对子列做过滤查询的类 FilterList:复合filter的实现类 Get:rowkey定位器 Scan:查询扫描器 ResultScanner:查询结果扫描器 Result:单个查询结果 KeyValue:查询结果中的keyvalue原子项 //场景一,通过rowkey,列族,子列直接定位value原创 2011-04-14 18:36:00 · 5451 阅读 · 0 评论 -
hadoop集群批量快速安装
今天是我生日,在博客里放送出2份非常实用的文档。hadoop、hbase批量安装和ganglia安装配置详解。首先第一篇。 hadoop批量安装前先将namenode,Hmaster机器安装完毕。然后准备以下文件 1、hadoop-0.20.2-CDH3B4.tar.gz 2、hbase-0.90.1-CDH3B4.tar.gz 3、hosts 4、profile 5、hbaseconf(这个是hbase中的conf文件夹的拷贝) 6、hadoopconf(这个是hadoop中conf文件夹原创 2011-04-29 12:33:00 · 4092 阅读 · 1 评论 -
hbase与mapreduce同时运行的问题
<br /> 在hbase数据写入和mapreduce同时运行时出现hbase regionserver挂掉的问题,同时hdfs上的文件块出现miss。<br /> 目前看来mapreduce和hbase同时运行时出现的一个问题就是内存竞争原创 2011-04-19 13:39:00 · 3600 阅读 · 3 评论 -
Hbase几种数据入库(load)方式比较
1. 预先生成HFile入库 这个地址有详细的说明http://blog.youkuaiyun.com/dajuezhao/archive/2011/04/26/6365053.aspx 2. 通过MapReduce入库 /* MapReduce 读取hdfs上的文件,以HTable.原创 2011-04-29 12:00:00 · 23800 阅读 · 4 评论 -
hbase二级索引
二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。这篇文章会以HBase做为对象来讨论如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版second转载 2011-08-31 11:25:47 · 14381 阅读 · 4 评论 -
hbase+hadoop运维的一点经验
目前系统上线,不断的有新问题,也不断的在总结一些经验,发在这里,做下mark,同时也为hbase使用者提供一些思路吧。1、单条rowkey下虽然能支持百万列,但是建议不要这么做,因为真正一个rowkey下挂了这么多数据时会在两个地方出现问题,一是查询时单行记录数据量过大,cl原创 2011-09-29 01:20:03 · 4849 阅读 · 0 评论 -
MR操作hbase的一点心得(含hbase表拷贝样例代码)
最近在写基于hbase的MR程序。总结如下: 1、使用TableMapper来读取表 2、写入表的第一种方式是用TableMapReduceUtil.initTableReducerJob的方法,这里既可以在map阶段输出,也能在reduce阶段输出。区别是Reduce的class设置为null或者实际的reduce 以下是一个表copy的例子: package原创 2011-11-22 17:22:26 · 14889 阅读 · 0 评论 -
hbase入库过程中JVM 新生代大小配置试验
hbase入库过程中,除了hbase-site.xml中的一些常见的配置参数,其实很关键的一个环节是hbase-env.sh中的jvm参数配置。之前修改的一个重要参数就是新生代的大小。 在大规模写入数据的试验中,我们分别将每个Regionserver的新生代内存配置为不同大小(总大小为32GB),入库一段时间后,通过jstat命令查看每台机器的三个运行状态,YGC,FGC,GCT,绘原创 2011-12-07 15:54:13 · 3217 阅读 · 1 评论 -
Hbase表级别元数据一致性和hbck原理
最近重新回到熟悉的hbase领域,感慨还是很多。首先终于又可以沉下心来好好搞技术了,其次看到现在有冲劲有追求的年轻人就像看到原来的自己。大数据需要一代一代人传承下去。最近我们上了region group的patch,将原来在2.0里面才合并的patch 加到了0.98版本中。初始使用的时候挺好,但是也遇到了一点问题——在做表group之间迁移的时候发现master页面上的元数据信息有误。而实际原创 2017-03-10 18:28:13 · 4822 阅读 · 0 评论