首页 > 其他分享 >hbase-0.90.4的主要更新

hbase-0.90.4的主要更新

时间:2023-09-21 10:04:15浏览次数:45  
标签:jira hadoop 更新 apache org hbase 0.90 issues


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

相关文章

  • Hbase MapReduce例子
    HbaseMapreduce例子http://hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/hbase/mapreduce/package-summary.html#package_descriptionhttp://wiki.apache.org/hadoop/Hbase/MapReduce (Deprecated) 需要重启Hadoop的方式所有机器都有修改配置1:修改$HADOOP_HOME/......
  • HBase 之HFileOutputFormat
     hadoopmr输出需要导入hbase的话最好先输出成HFile格式,再导入到HBase,因为HFile是HBase的内部存储格式,所以导入效率很高,下面是一个示例1.创建HBase表t11.hbase(main):157:0*create't1','f1'2.0row(s)in1.3280seconds3.4.hbase(main):158:0>5.ROW......
  • hadoop,hbase,hive安装全记录
    操作系统:CentOS5.5Hadoop:hadoop-0.20.203.0jdk1.7.0_01namenode主机名:master,namenode的IP:10.10.102.15datanode主机名:slave1,datanode的IP:10.10.106.8datanode主机名:slave2,datanode的IP:10.10.106.9一、hadoop安装1、建立用户useraddhadooppasswdhadoop2.安装JDK*先查......
  • 把xls的数据导到Hbase
    这属于Hbase的一个例子,不过Hbase的例子有点问题,需要更改下。其实我感觉Hbase属于一个BigTable,感觉和xls真的很像,闲话不说了,上code才是王道。Java代码importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;i......
  • el-table鼠标移入单元格进行数据填写更新
    <el-tablev-loading="loading":data="npitestrecordList" border@cell-mouse-enter="handleCellEnter"@cell-mouse-leave="handleCellLeave"> <el-table-columnlabel="温度(°C)"align="left"p......
  • vue父组件值更新子组件没更新
    因为父组件和子组件的数据单向绑定关系,子组件中的数据并不是从父组件中获取的而是通过props传递的。因此只更新父组件的数据不会自动更新子组件中的数据。需要在子组件中通过watch监听num的变化,将最新的值传递给变量,从而更新展示。点击清空button会把num重新赋值,自动触发watch监听......
  • 蓝牙mesh1.1更新尝鲜
    蓝牙mesh协议1.1前言万众期待的蓝牙mesh协议版本时隔4年之久,在2023年9月终于迎来一轮新的版本更新,从2017年7月1.0初版协议发布,再到2019年1月1.0.1小版本更新。算起来整个蓝牙mesh协议已经很久没有更新了,那么这次蓝牙联盟更新的这个大版本协议有什么令人期待的呢?又有什么大招被蓝......
  • Redis学习之缓存实现及缓存更新
    介绍什么是缓存?缓存就是数据交换的缓冲区(称作Cache[kæʃ]),是存贮数据的临时地方,一般读写性能较高。为什么需要缓存?提前准备好数据,便于更快地读写。 缓存是把双刃剑,要权衡利弊。优点:降低后端负载提高读写效率,降低响应时间缺点:数据一致性成本代码维护成本运维......
  • Mysql中如何批量更新数据库中某个字段值中的部分内容;
    在平时的开发过程中,偶尔会遇到需要批量更新数据库中某个字段值的部分内容,比如某个字段存储的是图片的URL路径,这个路径中的域名无法访问了,需要更新为另一个ip地址。Mysql中提供了REPLACE函数:可以使用了REPLACE函数来替换原来字段中的一部分数据为新值。UPDATEcar_data_hisSETc......
  • Hbase--执行hbase shell命令时提示:ERROR: KeeperErrorCode = NoNode for /hbase/mast
    1、问题描述执行hbase shell命令时提示:ERROR:KeeperErrorCode=NoNodefor/hbase/master2、问题原因这是与因为服务器重启后Hadoop的运行和Hbase的运行异常。3、解决办法依次去停止和启动Hadoop(1)到hadoop的sbin目录下 ./stop-all.sh(2)再./start-all.sh(3)再到hbase的b......