一、启动部分:
1、当启动hbase时,logs目录下的zookeeper输出文件提示错误:java.io.IOException: Failed to process transaction type:
1 error: KeeperErrorCode = NoNode for /hbase
解答:该错误一般在断电重启时出现,删除/tmp/hbase-{user}文件夹即可
2、某些jar包需要手动添加的根本原因
解决:由于解决hadoop启动时的警告,将环境变量中的HAD0OP_HOME改为HADOOP_INSTALL。而hbase的某些环境变量是基于HADOOP_HOME而写的。
3、启动hbase后,一段时间后不同于HRegionServer进程停止
解决:很有可能与HMaster时间不同步导致。
二、写部分:
1、当调用htable的put后,无论你是否设置autoflush为false,当关闭htable时,会触发flushCommits()。这个函数的功能是将该PUT创建一个线程向hmaster提交。当频率过高的htable.close()时,这样的线程便会高速增长,从而耗掉你client端的JVM,触发OOM
三、读部分:
1、对表可以做哪些配置提高读速度?
解决:bloomfilter、in-memory flag
三、运维部分:
1、当某RS做split或者compact时,如果我们设置的hfile数量过多,导致DataNode->linux系统无法同时打开相应数量的文件,会导致该RS下线。
解决:(1)提高系统打开文件数量vi /etc/security/limits.conf
添加:username soft nofile 4096
username hard nofile 4096
(2)hadoop配置 vi {hadoop}/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
2、hbase常用优化参数(hbase-site.xml)
zookeeper.session.timeout//ZK连接超时时间
(1)、写优化参数
- hbase.regionserver.handler.count//RS线程数
- hbase.regionserver.global.memstore.upperLimit/lower//MS限制比例
- hbase.hregion.memstore.block.multiplier//超过单个MS大小的多少倍,触发FLUSH
- hbase.hstore.blockingStoreFiles//HRegion中的Hifle数,超过触发COMPACT
-
hbase.hregion.max.fiesize//hfile最大值
- hbase.server.thread.wakefrequency//睡眠等待时间
(2)、读优化参数
-
hfile.block.cache.size//读缓存大小
不断补充ing…..