分享

zk、hadoop、hbase升级应该注意那些问题?

evababy 2017-12-1 15:22:20 发表于 疑问解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 7787
现有环境ZK=3.4.6 由于总是出现未修复的BUG,想升级到3.4.10或者3.4.11
HADOOP=2.6.0 出现的BUG也不少,想升级到2.6.5
HBASE=0.98.12.1 已经不支持0.98了,应该升级到那个版本?
SQOOP=1.4.5 应该那个版本呢?

升级过程中都需要注意那些呢?

看hbase的依赖说明 zk3.4.10+hadoop2.7.4+hbase3.0.0,hbase 升级动静太大了,恐出问题啊

已有(1)人评论

跳转到指定楼层
sstutu 发表于 2017-12-1 15:59:30
这里说升级的思路及一些操作
1.能备份的尽量备份的
2.确保版本兼容
3.想好万一升级失败,能否恢复
4.最好先参考官网,然后在找些中文资料

下面搜集一些升级需要注意的地方,更多自己搜索:

1.hadoop升级遇到问题汇总
http://www.aboutyun.com/forum.php?mod=viewthread&tid=23340


2.

1.      运行dfsadmin -upgradeProgress status 检查是否存在备份 如果是第一次升级 就不存在备份(在升级Hadoop前,如果已经存在备份,需要先结束 finalize 它。)

2.      备份dfs.namenode.dir下文件,同时要备份下hdfs的文件目录的元数据信息:



bin/hadoop fsck / -files -blocks -locations > dfs-v-old-fsck-1.log

bin/hadoop dfs -lsr / > dfs-v-old-lsr-1.log

bin/hadoop dfsadmin -report > dfs-v-old-report-1.log



3.      停止所有相关节点 先停止所有的hbase hbase/bin/stop-hbase.sh  然后停掉hadoop hadoop/bin/stop-all.sh

并用jps 查看是否仍有 hadoop hbase 相关进程 如果有可以手动停掉 。



4.      备份 hadoop hbase 程序。用工具查看两个版本的conf文件夹下配置文件格式是否有出入 在所有节点上重新部署hadoop hbase文件 并替换conf文件夹下所有文件  可以参考脚本hadoop 同步程序到 slave节点



5.      使用 bin/start-dfs.sh -upgrade 进行升级(DFS从一个版本升级到另外一个版本的时候,NameNode和DataNode使用的文件格式有可能会改变。 当你第一次使用新版本的时候,你要告诉Hadoop 去改变HDFS版本,否则,新版本不会生效)



6.      监控升级情况和升级问题处理

开始升级,你可以通过

bin/hadoop dfsadmin -upgradeProgress

命令来查看版本升级的情况。

当然你可以使用

bin/hadoop dfsadmin -upgradeProgress details

来查看更多的详细信息。

当升级过程被阻塞的时候,你可以使用

bin/hadoop dfsadmin -upgradeProgress force

来强制升级继续执行(当你使用这个命令的时候,一定要慎重考虑)。



当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,

以便你可以方便的对HDFS进行降级操作。

可以使用bin/start-dfs.sh -rollback来执行降级操作。



7.      对比现有hdfs的文件目录的元数据信息和升级的差异。

8.      升级完成,Hadoop一次只保存一个版本的备份,当新版本运行几天以后还是没有出现什么问题,你就可以使用运行一段时间后 没有问题再执行升级终结操作

bin/hadoop dfsadmin -finalizeUpgrade

命令把旧版本的备份从系统中删掉了。删除以后rollback 命令就失效了



9.      启动 hadoop hadoop/bin/start-all.sh jps 看进程是否已经启动完毕, 在master检测 正常是五个hadoop相关进程

         TaskTracker

         NameNode

         SecondaryNameNode

         JobTracker

         DataNode

启动 hbase 启动hbase前 查看安全模式是否为OFF状态,

hadoop dfsadmin -safemode get 如果是

Safe mode is ON

需等待一会儿, 如果是

Safe mode is OFF

则可以启动hbase hbase/bin/start-hbase.sh

此时jps 在master节点可以看到七个相关进程。

hadoop的

         TaskTracker

         NameNode

         SecondaryNameNode

         JobTracker

         DataNode

hbase的

         HRegionServer

         HMaster

         HQuorumPeer

输入 hadoop version

查看版本号 看hadoop是否已经升级成功。

输入 hbase shell

等待

再输入 version

查看hbase 是否更新成功



10.   注意点如果版本升级了 对应的执行程序需要在新版本hadoop和hbase等相关的依赖包下重新打包。否则可能会报找不到类的相关错误。

java.lang.NoClassDefFoundError.....



有时候运行程序的时候报 莫名其妙的 找不到某些jar包的类



例如 cloudear 从cdh3u2升级到cdh3u5的时候

xception in thread "main" java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException

        at org.apache.hadoop.hbase.mapreduce.TableOutputFormat.setConf(TableOutputFormat.java:195)

        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)

        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)

        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:918)

        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:882)

        at java.security.AccessController.doPrivileged(Native Method)

        at javax.security.auth.Subject.doAs(Subject.java:396)

        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1278)

        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:882)

        at org.apache.hadoop.mapreduce.Job.submit(Job.java:526)

        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:556)

        at cn.cnnic.ccsms.log.cn.domain.LogAnalyserDomainDriver.main(LogAnalyserDomainDriver.java:65)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.apache.hadoop.util.RunJar.main(RunJar.java:197)

Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException

        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

        ... 17 more

                   手动添加到路径中去错误就不会报错了,莫名其妙

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$CLASSPATH:$HADOOP_HOME/bin:$HBASE_HOME/lib:$HBASE_HOME/lib/zookeeper-3.3.5-cdh3u5.jar

11.   可以用到的脚本

hadoop 同步程序到 slave节点



#!/bin/sh



cat slaves |while read node

do

echo "node : $node"

echo "================"

# 远程到该节点并

ssh $node "rm -rf /usr/local/hadoop/*;"</dev/null

rsync -vaz /usr/local/hadoop/ $node:/usr/local/hadoop/

echo "================"



done



hbase 同步程序到 regionservers节点

cat regionservers |while read node

do

echo "node : $node"

echo "================"

ssh $node "rm -rf /usr/local/hbase/*;"</dev/null

rsync -vaz /usr/local/hbase/ $node:/usr/local/hbase/

echo "================"

有时候hbase进程无法停止 可执行此脚本来强制杀掉各个节点的进程



cat regionservers |while read node

do

echo "node : $node"

echo "================"

ssh $node "/usr/java/bin/jps|awk '{if(\$2~/HMaster/||\$2~/HQuorumPeer/||\$2~/HRegionServer/) print \$1}'|while read pidss; do kill -9 \$pidss; done;/usr/java/bin/jps"</dev/null

  echo "================"

done



12.   关于回滚

如果升级后,可能会遇到新问题,如果想回到原来的版本的话就需要执行回滚了。

为了保险起见,执行 前面的步骤1,2,3 后将原来的程序删除,将程序恢复到原来的版本,并在各个节点上同步。

然后 进入hadoop 安装目录的bin目录下 执行

start-dfs.sh –rollback 即可

输入hadoop version 即可看到已经回到原来的版本

重新启动 hadoop

执行stop-all.sh停止所有节点,

start-all.sh 启动所有节点。

Jps 查看所有节点是否都已经正常启动

hadoop dfsadmin –safemode get

查看是否安全模式是否为off状态。

当为off状态是可以启动hbase

        hbase/bin/start-hbase.sh

     最后查看进程是否已启动完毕。可参考步骤9 。最后回滚到了原来的版本,别忘了将用户执行程序恢复到原来的版本。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条