HBase入门篇3

转载 2011年01月22日 09:55:00

首先声明,这篇文章是转帖的,原文出处为:

http://www.javabloger.com/article/apache-hbase-shell-and-java-api-html.html

如果作者不同意转帖,请联系我,我会马上删除,谢谢!

 

前两篇文件分别说到了我在学习HBase中的一些入门经验 ,而《HBase 入门3》这篇文章浅显的从几个方面谈谈HBase的一些优化技巧,只能作为我学习笔记的一部分,因为学多了怕忘,留给自己以后看看。

1 修改 linux 系统参数
    Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你可以用ulimit -n 命令进行修改,或者修改/etc/security/limits.conf 和/proc/sys/fs/file-max  的参数,具体如何修改可以去Google 关键字 “linux limits.conf ”

2JVM 配置 
修改 hbase-env.sh 文件中的配置参数,根据你的机器硬件和当前操作系统的JVM(32/64位)配置适当的参数
    HBASE_HEAPSIZE 4000   HBase使用的 JVM 堆的大小
    HBASE_OPTS  "‐server ‐XX:+UseConcMarkSweepGC"JVM GC 选项
    HBASE_MANAGES_ZKfalse   是否使用Zookeeper进行分布式管理

3 HBase持久化
重启操作系统后HBase中数据全无,你可以不做任何修改的情况下,创建一张表,写一条数据进行,然后将机器重启,重启后你再进入HBase的shell 中使用 list 命令查看当前所存在的表,一个都没有了。是不是很杯具?没有关系你可以在hbase/conf/hbase-default.xml中设置 hbase.rootdir的值,来设置文件的保存位置指定一个文件夹 ,例如:<value>file:///you/hbase-data/path</value>,你建立的HBase中的表和 数据就直接写到了你的磁盘上,如图所示:
同样你也可以指定你的分布式文件系统HDFS的路径例如: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR,这样就写到了你的分布式文件系统上了。

4配置HBase运行参数
其次就需要对hbase/conf/hbase-default.xml 文件进行配置,以下是我认为比较重要的配置参数

hbase.client.write.buffer    
描述:这个参数可以设置写入数据缓冲区的大小,当客户端和服务器端传输数据,服务器为了提高系统运行性能开辟一个写的缓冲区来处理它, 这个参数设置如果设置的大了,将会对系统的内存有一定的要求,直接影响系统的性能。

hbase.master.meta.thread.rescanfrequency 
描述:多长时间 HMaster对系统表 root 和 meta 扫描一次,这个参数可以设置的长一些,降低系统的能耗。

hbase.regionserver.handler.count 
描述:由于HBase/Hadoop的Server是采用Multiplexed, non-blocking I/O方式而设计的,所以它可以透过一个Thread来完成处理,但是由于处理Client端所呼叫的方法是Blocking I/O,所以它的设计会将Client所传递过来的物件先放置在Queue,并在启动Server时就先产生一堆Handler(Thread),该 Handler会透过Polling的方式来取得该物件并执行对应的方法,默认为25,根据实际场景可以设置大一些。
 
hbase.regionserver.thread.splitcompactcheckfrequency
描述:这个参数是表示多久去RegionServer服务器运行一次split/compaction的时间间隔,当然split之前会先进行一个 compact操作.这个compact操作可能是minor compact也可能是major compact.compact后,会从所有的Store下的所有StoreFile文件最大的那个取midkey.这个midkey可能并不处于全部数 据的mid中.一个row-key的下面的数据可能会跨不同的HRegion。

hbase.hregion.max.filesize
描述:HRegion中的HStoreFile最大值,任何表中的列族一旦超过这个大小将会被切分,而HStroeFile的默认大小是256M。

hfile.block.cache.size  
描述:指定 HFile/StoreFile 缓存在JVM堆中分配的百分比,默认值是0.2,意思就是20%,而如果你设置成0,就表示对该选项屏蔽。

hbase.zookeeper.property.maxClientCnxns    
描述: 这项配置的选项就是从zookeeper中来的,表示ZooKeeper客户端同时访问的并发连接数,ZooKeeper对于HBase来说就是一个入口这个参数的值可以适当放大些。

hbase.regionserver.global.memstore.upperLimit
描述:在Region Server中所有memstores占用堆的大小参数配置,默认值是0.4,表示40%,如果设置为0,就是对选项进行屏蔽。

hbase.hregion.memstore.flush.size
描述:Memstore中缓存的内容超过配置的范围后将会写到磁盘上,例如:删除操作是先写入MemStore里做个标记,指示那个value, column 或 family等下是要删除的,HBase会定期对存储文件做一个major compaction,在那时HBase会把MemStore刷入一个新的HFile存储文件中。如果在一定时间范围内没有做major compaction,而Memstore中超出的范围就写入磁盘上了。

5 HBase中log4j的日志
HBase中日志输出等级默认状态下是把debug、 info 级别的日志打开的,可以根据自己的需要调整log级别,HBase的log4j日志配置文件在 hbase/conf/log4j.properties 目录下。

 

–end–

我的废话:
其他内容正在学习中,HBase 作为 Apache Hadoop中的一个子项目,对于整个Hadoop来说真是我目前总结的这些还真是冰山一角。

相关文章推荐

HBase入门篇3-hbase 配置文件参数设置及优化

前两篇文件分别说到了我在学习HBase中的一些入门经验,而《HBase 入门3》这篇文章浅显的从几个方面谈谈HBase的一些优化技巧,只能作为我学习笔记的一部分,因为学多了怕忘,留给自己以后看看。...
  • A221133
  • A221133
  • 2011年09月15日 11:05
  • 4494

HBase 入门篇2

本篇文章讲述用HBase Shell命令 和 HBase Java API 对HBase 服务器 进行操作。在此之前需要对HBase的总体上有个大概的了解。比如说HBase服务器内部由哪些主要部件构成...

HBase入门篇4–存储

前几篇文章讲述了 HBase的安装、Hbase命令和API的使用、HBase简单的优化技巧,《HBase入门篇4》这篇文章是讲述把HBase的数据放在HDFS上的点滴过程。目前对与HBase我是一个绝...
  • A221133
  • A221133
  • 2011年09月15日 11:04
  • 1025

HBase入门篇

1-HBase的安装 HBase是什么? HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就...

Hadoop和HBase安装设置入门篇

基础准备:创建三台或更多虚拟机。(由于要在每台机器上都操作一遍下面的步骤,不少步骤是可以统一进行的,故可在安装完jdk、hadoop后,再复制虚拟机) Hadoop 依赖JDK和ssh,首要做的就是...
  • ljskr
  • ljskr
  • 2017年03月15日 16:51
  • 132

HBase入门篇1

首先声明,这篇文章是转帖的,原文出处为:http://www.javabloger.com/article/apache-hbase-shell-and-install-key-value.html如...

Dreamwaver8官方教程之入门篇(3/5)

  • 2007年08月18日 10:44
  • 2MB
  • 下载

H3C实验手册(入门篇)

  • 2016年12月15日 11:05
  • 800KB
  • 下载

HBase入门篇2-Java操作HBase例子

本篇文章讲述用HBase Shell命令 和 HBase Java API 对HBase 服务器 进行操作。在此之前需要对HBase的总体上有个大概的了解。比如说HBase服务器内部由哪些主要部件构成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HBase入门篇3
举报原因:
原因补充:

(最多只允许输入30个字)