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 入门3》这篇文章浅显的从几个方面谈谈HBase的一些优化技巧,只能作为我学习笔记的一部分,因为学多了怕忘,留给自己以后看看。 ...
  • u010365529
  • u010365529
  • 2013年11月29日 17:04
  • 469

《明解C语言第3版.入门篇》练习代码 第11章

《明解C语言第3版.入门篇》,练习代码
  • zhangcao2017
  • zhangcao2017
  • 2017年11月28日 16:36
  • 140

第三篇:Servlet入门篇

严重警告:知道Servlet的人不要往下看 把别人告诉我的告诉你: Servlet是服务器端的java程序 通过http协议被客户端调用,在客户端形成动态网页 需要什么: 一个文件:servlet.j...
  • arielxp
  • arielxp
  • 2004年06月24日 07:00
  • 3074

HBase入门篇

HBase是什么?  HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储...
  • u010365529
  • u010365529
  • 2013年11月29日 16:54
  • 573

hbase系统入门篇

1-HBase的安装 HBase是什么? HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoo...
  • anningzhu
  • anningzhu
  • 2017年03月05日 18:30
  • 104

HBase入门篇1

首先声明,这篇文章是转帖的,原文出处为:http://www.javabloger.com/article/apache-hbase-shell-and-install-key-value.html如...
  • shenlan211314
  • shenlan211314
  • 2011年01月22日 09:53
  • 1596

HBase入门篇4–存储

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

Hbase教程(三) Hbase集群安装

Hbase的集群安装是建立在Hadoop集群环境之上的,因此需要先安装Hadoop集群环境。安装Hadoop集群环境安装,参见: http://blog.csdn.net/yuan_xw/articl...
  • yuan_xw
  • yuan_xw
  • 2016年07月17日 17:14
  • 2470

HBase入门篇4

首先声明,这篇文章是转帖的,原文出处为: http://www.javabloger.com/article/apache-hbase-hadoop.html 如果作者不同意转帖,请联系我,我会马...
  • shenlan211314
  • shenlan211314
  • 2011年01月22日 09:55
  • 1099

HBase入门篇2

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

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