apache邮件列表中提到0.90.4己经准备release了,看了一下所有的patch,这个版本在性能改进上基本没有改进,主要是对很多异常下bug的修复,其中比较重要的bug有以下几个:
1 https://issues.apache.org/jira/browse/HBASE-3820 ----Splitlog() executed while the namenode was in safemode may cause data-loss
在执行splitlog的时候,如果namenode因为未知原因进入safemode,可能导致数据丢失,需要先检查并等待safemode结束
2 https://issues.apache.org/jira/browse/HBASE-3914 ----ROOT region appeared in two regionserver's onlineRegions at the same time
root region有可能被分配给两台region server(条件:当root 所在的rs挂掉,master在assign的时候也正好挂掉)
3 https://issues.apache.org/jira/browse/HBASE-3892 ----Table can't disable
在split期间执行disable table有可能会导致无限期挂起,实际应用中这会比较危险。比如管理员在做ddl操作时可能会因为这个bug引起table不可用时间变得很长
4 https://issues.apache.org/jira/browse/HBASE-3988 ----Infinite loop for secondary master
seconde master无法自动接管primary master的bug
5 https://issues.apache.org/jira/browse/HBASE-3969 ----Outdated data can not be cleaned in time
当compaction队列过长时,有可能因为队列优先级问题导致一些major compaction任务长期无法执行。patch的提供者遇到过好几次超过2天还没有执行一个major compaction任务。因此做了优先级的调整
6 https://issues.apache.org/jira/browse/HBASE-4028 ----Hmaster crashes caused by splitting log.
Hmaster在splitlog时对内存的计算在多线程下统计不准确,从而最终导致无法控制内存而oom
7 https://issues.apache.org/jira/browse/HBASE-3906 ----When HMaster is running,there are a lot of RegionLoad instances(far greater than the regions),it has risk of OOME.
减少hmaster启动时候的无谓的内存消耗,patch提供者在实际应用中减少了3GB的内存。(值得注意的是这个patch的提供者是华为的兄弟)
其它还有很多修复的bug都是在比较特殊情况下产生的,通常是没有检查对象为空而引起的npe,比如4088等。由这点看出来分布式系统设计的难度还是很高的,一个完整的程序需要不断地fix bug...
=============================================
查阅了几篇中英文资料,发现有的地方说的不是很全部,总结在此,共有两种命令行的方式来实现数据的导入导出功能,即备份和还原。
1 HBase本身提供的接口
其调用形式为:
1)导入
./hbase org.apache.hadoop.hbase.mapreduce.Driver import 表名 数据文件位置
其中数据文件位置可为本地文件目录,也可以分布式文件系统hdfs的路径。
当其为前者时,直接指定即可,也可以加前缀file:///
而当其伟后者时,必须明确指明hdfs的路径,例如hdfs://mymaster:9000/path
2)导出
./hbase org.apache.hadoop.hbase.mapreduce.Driver export 表名 数据文件位置
同上,其中数据文件位置可为本地文件目录,也可以分布式文件系统hdfs的路径。
另外,该接口类还提供了一些其它的方法,例如表与表之间的数据拷贝,导入tsv文件等,可回车键查看
2 hadoop提供的工具(hadoop tool interface)
使用该工具的话,需要首先配置hadoop-env.sh,否则在执行时会提示缺少jar包或者class文件。
1)配置
切换到hadoop安装目录下,
vim hadoop-env.sh,加以下语句
export HADOOP_CLASSPATH="hbasejar包路径:zookeeper的jar包路径:hbase的config目录"
2)使用
导入:
hadoop jar /../hbase/hbase-*.jar import mytest /export/mybakup
导出:
hadoop jar /../hbase/hbase-*.jar import mytest /import/mybackup
直接将数据导出到hdfs目录中,当不指定file前缀时。
另外:
export,fs的参数为hdfs上的路径时,该路径必须不能已经存在,否则会报错。
import的表必须是hbase中已经创建好的,否则会报错。
标签:jira,hadoop,更新,apache,org,hbase,0.90,issues From: https://blog.51cto.com/u_16255870/7548688