HDP3.1中HBase从2.0.6升级到2.2.7

HDP3.1中HBase从2.0.6升级到2.2.7

  1. 下载解压HBase 二进制包,上传至http服务器上,下载地址
    https://www.apache.org/dyn/closer.lua/hbase/2.2.7/hbase-2.2.7-bin.tar.gz
  2. 停止所有master节点,包括standby master
  3. 在ambari-web中修改hbase 高级设置中的custom hbase-site.xml,添加配置
hbase.procedure.upgrade-to-2-2=true(重要,否则master无法启动,会提示Unsupported procedure type class org.apache.hadoop.hbase.master.assignment.AssignProcedure found),参考https://hbase.apache.org/book.html#upgrade2.2
hbase.unsafe.stream.capability.enforce=false(可选,若后续启动有异常再加)
  1. 启动master,本次启动后master会正常退出,在日志中可查看到

  2. 停止所有region-server
    解压高版本tar包,替换/usr/hdp/$version/hbase

  3. 在ambari-web页面先启动regionserver,再启动hmaster

  4. (可选)启动thriftserver,在hue中检查数据状态

  5. QA:

  • .启动服务时,日志报错缺少方法,原因是找不到ambari-metrics-hadoop-sink的依赖
java.lang.AbstractMethodError: org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink.init(Lorg/apache/commons/configuration2/SubsetConfiguration;)V
at org.apache.hadoop.metrics2.impl.MetricsConfig.getPlugin(MetricsConfig.java:207)
at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.newSink(MetricsSystemImpl.java:531)
at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSinks(MetricsSystemImpl.java:503)
at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:479)
at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:188)
at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:163)
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:62)
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:58)
at org.apache.hadoop.hbase.metrics.BaseSourceImpl$DefaultMetricsSystemInitializer.init(BaseSourceImpl.java:54)
at org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:116)
at org.apache.hadoop.hbase.io.MetricsIOSourceImpl.<init>(MetricsIOSourceImpl.java:46)
at org.apache.hadoop.hbase.io.MetricsIOSourceImpl.<init>(MetricsIOSourceImpl.java:38)
at org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.createIO(MetricsRegionServerSourceFactoryImpl.java:84)
at org.apache.hadoop.hbase.io.MetricsIO.<init>(MetricsIO.java:35)
at org.apache.hadoop.hbase.io.hfile.HFile.<clinit>(HFile.java:195)
at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:539)
at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:478)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:3093)
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:236)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3111)

解决方案:
在 hbase-env.sh里加上ambari-metrics-hadoop-sink 相关依赖

export HBASE_CLASSPATH=${HBASE_CLASSPATH}:{{stack_root}}/current/ext/hbase/*:/usr/lib/ambari-metrics-hadoop-sink/*

这里一定要注意该方法的参数,如果缺失的方法是org/apache/commons/configuration2/SubsetConfiguration,则需要的是/usr/lib/ambari-metrics-hadoop-sink/ambari-metrics-hadoop-sink-with-common-2.7.4.0.118.jar
如果是org/apache/commons/configuration/SubsetConfiguration,则需要的是/usr/lib/ambari-metrics-hadoop-sink/ambari-metrics-hadoop-sink-with-common-2.6.1.0.143.jar

  • 启动hbase的时候报错:
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.

解决方案:在hbase-site.xml中加入

<property>
	<name>hbase.unsafe.stream.capability.enforce</name>
	<value>false</value>
</property>
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值