升级cdh4到cdh5

本文主要记录从CDH4升级到CDH5的过程和遇到的问题,当然本文同样适用于CDH5低版本向最新版本的升级。

1. 不兼容的变化

升级前,需要注意 cdh5 有哪些不兼容的变化,具体请参考:Apache Hadoop Incompatible Changes

2. 升级过程

2.1. 备份数据和停止所有服务

2.1.1 让 namenode 进入安全模式

在NameNode或者配置了 HA 中的 active NameNode上运行下面命令:

$ sudo -u hdfs hdfs dfsadmin -safemode enter

保存 fsimage:

$ sudo -u hdfs hdfs dfsadmin -saveNamespace

如果使用了kerberos,则先获取hdfs用户凭证,再执行下面代码:

$ kinit -k -t /etc/hadoop/conf/hdfs.keytab hdfs/cdh1@JAVACHEN.COM
$ hdfs dfsadmin -safemode enter
$ hdfs dfsadmin -saveNamespace

2.1.2 备份配置文件、数据库和其他重要文件

根据你安装的cdh组件,可能需要备份的配置文件包括:

/etc/hadoop/conf
/etc/hive/conf
/etc/hbase/conf
/etc/zookeeper/conf
/etc/impala/conf
/etc/spark/conf
/etc/sentry/conf
/etc/default/impala

2.1.3 停止所有服务

在每个节点上运行:

for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x stop ; done
for x in `cd /etc/init.d ; ls hbase-*` ; do sudo service $x stop ; done
for x in `cd /etc/init.d ; ls hive-*` ; do sudo service $x stop ; done
for x in `cd /etc/init.d ; ls zookeeper-*` ; do sudo service $x stop ; done
for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x stop ; done
for x in `cd /etc/init.d ; ls impala-*` ; do sudo service $x stop ; done

2.1.4 在每个节点上查看进程

$ ps -aef | grep java

2.2. 备份 hdfs 元数据(可选,防止在操作过程中对数据的误操作)

a,查找本地配置的文件目录(属性名为 dfs.name.dir 或者 dfs.namenode.name.dir或者hadoop.tmp.dir )

grep -C1 hadoop.tmp.dir /etc/hadoop/conf/hdfs-site.xml

#或者
grep -C1 dfs.namenode.name.dir /etc/hadoop/conf/hdfs-site.xml

通过上面的命令,可以看到类似以下信息:

<property>
<name>hadoop.tmp.dir</name>
<value>/data/dfs/nn</value>
</property>

b,对hdfs数据进行备份

cd /data/dfs/nn
tar -cvf /root/nn_backup_data.tar .

2.3. 更新 yum 源

如果你使用的是官方的远程yum源,则下载 cloudera-cdh5.repo 文件到 /etc/yum.repos.d 目录:

$ wget http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo -P /etc/yum.repos.d

如果你使用本地yum,则需要从 http://archive-primary.cloudera.com/cdh5/repo-as-tarball 下载最新的压缩包文件,然后解压到对于目录,以 CDH5.4 版本为例:

$ cd /var/ftp/pub
$ rm -rf cdh
$ wget http://archive-primary.cloudera.com/cdh5/repo-as-tarball/5.4.0/cdh5.4.0-centos6.tar.gz
$ tar zxvf cdh5.4.0-centos6.tar.gz

然后,在 /etc/yum.repos.d 目录创建一个 repos 文件,指向本地yum源即可,详细过程请自行百度。

2.4. 升级组件

在所有节点上运行:

$ sudo yum update hadoop* hbase* hive* zookeeper* bigtop* impala* spark* llama* lzo* sqoop* parquet* sentry* avro* mahout* -y

启动ZooKeeper集群,如果配置了 HA,则在原来的所有 Journal Nodes 上启动 hadoop-hdfs-journalnode:

# 在安装zookeeper-server的节点上运行
$ /etc/init.d/zookeeper-server start

# 在安装zkfc的节点上运行
$ /etc/init.d/hadoop-hdfs-zkfc

# 在安装journalnode的节点上运行
$ /etc/init.d/hadoop-hdfs-journalnode start

2.5. 更新 hdfs 元数据

在NameNode或者配置了 HA 中的 active NameNode上运行下面命令:

$ sudo service hadoop-hdfs-namenode upgrade

查看日志,检查是否完成升级,例如查看日志中是否出现/var/lib/hadoop-hdfs/cache/hadoop/dfs/<name> is complete

$ sudo tail -f /var/log/hadoop-hdfs/hadoop-hdfs-namenode-<hostname>.log

如果配置了 HA,在另一个 NameNode 节点上运行:

# 输入 Y
$ sudo -u hdfs hdfs namenode -bootstrapStandby
=====================================================
Re-format filesystem in Storage Directory /data/dfs/nn ? (Y or N)
$ sudo service hadoop-hdfs-namenode start

启动所有的 DataNode:

$ sudo service hadoop-hdfs-datanode start

打开 web 界面查看 hdfs 文件是否都存在。

待集群稳定运行一段时间,可以完成升级:

$ sudo -u hdfs hadoop dfsadmin -finalizeUpgrade

2.6. 更新 YARN

更新 YARN 需要注意以下节点:

  • yarn-site.xml 中做如下改变:

    • yarn.nodemanager.aux-services的值从mapreduce.shuffle 修改为 mapreduce_shuffle
    • yarn.nodemanager.aux-services.mapreduce.shuffle.class 改名为 yarn.nodemanager.aux-services.mapreduce_shuffle.class
    • yarn.resourcemanager.resourcemanager.connect.max.wait.secs 修改为 yarn.resourcemanager.connect.max-wait.secs
    • yarn.resourcemanager.resourcemanager.connect.retry_interval.secs 修改为 yarn.resourcemanager.connect.retry-interval.secs
  • yarn.resourcemanager.am. max-retries 修改为 yarn.resourcemanager.am.max-attempts
  • yarn.application.classpath 中的环境变量 YARN_HOME 属性修改为 HADOOP_YARN_HOME

然后在启动 YARN 的相关服务。

2.7. 更新 HBase

升级 HBase 之前,先启动 zookeeper。

在启动hbase-master进程和hbase-regionserver进程之前,更新 HBase:

$ sudo -u hdfs hbase upgrade -execute

如果你使用了 phoenix,则请删除 HBase lib 目录下对应的 phoenix 的 jar 包。

启动 HBase:

$ service hbase-master start
$ service hbase-regionserver start

2.8. 更新 hive

在启动hive之前,进入 /usr/lib/hive/bin 执行下面命令升级元数据(这里元数据使用的是postgres数据库):

$ cd /usr/lib/hive/bin
# ./schematool -dbType 数据库类型 -upgradeSchemaFrom 版本号
# 升级之前 hive 版本为 0.14.0,下面命令会运行  /usr/lib/hive/scripts/metastore/upgrade/postgres/upgrade-0.14.0-to-1.1.0.postgres.sql
$ ./schematool -dbType postgres -upgradeSchemaFrom 0.14.0

确认 /etc/hive/conf/hive-site.xml 和 /etc/hive/conf/hive-env.sh 是否需要修改,例如 /etc/hive/conf/hive-env.sh 配置了如下参数,需要修改到 cdh-5.2 对应的版本:

# 请修改到 cdh5.4对应的 jar 包
$ export HIVE_AUX_JARS_PATH=/usr/lib/hive/lib/hive-contrib-1.1.0-cdh5.4.0.jar

修改完之后,请同步到其他节点。

然后启动 hive 服务:

$ service hive-metastore start
$ service hive-server2 start

2.9 更新Sentry

如果你从 CDH 5.2.0 以前的版本更新到 CDH 5.2.0 以后的版本,请更新sentry的元数据库:

$ bin/sentry --command schema-tool --conffile <sentry-site.xml> --dbType <db-type> --upgradeSchema
时间: 2024-08-22 15:19:28

升级cdh4到cdh5的相关文章

泰为基于EMR的考量与实践

关于作者:武基鹏,主要从事大数据平台产品的技术工作:负责设计.构建和优化基于HDFS/HBase的存储平台架构:负责整体提升Hadoop/Hbase等集群的高可用性.高性能.高扩展特性:负责对公司的Apache Hadoop1.2.CDH4及CDH5集群的部署.监控.调优和运维:此外,还精通Java.Shell.Python编程和管理SQL数据库及熟悉NOSQL的经验. 1.58元/小时起快速体验 Hadoop & Spark ,为你助力大数据计算 阿里云EMR是基于 Hadoop 的生态环境来

HTTPFS: 基于HTTP操作hadoop hdfs文件系统

一.HTTPFS简介     1:httpfs是cloudera公司提供的一个hadoop hdfs的一个http接口,通过WebHDFS REST API 可以对hdfs进行读写等访问       2:与WebHDFS的区别是不需要客户端可以访问hadoop集群的每一个节点,通过httpfs可以访问放置在防火墙后面的hadoop集群       3:httpfs是一个Web应用,部署在内嵌的tomcat中       用这种方式在数据共享给其他系统时,网络安全上更容易实现,使用请参考: htt

将Spark部署到Hadoop 2.2.0上

本文介绍的是如何将http://www.aliyun.com/zixun/aggregation/14417.html">Apache Spark部署到Hadoop 2.2.0上,如果你们的Hadoop是其他版本,比如CDH4,可直接参考官方说明操作. 需要注意两点:(1)使用的Hadoop必须是2.0系列,比如0.23.x,2.0.x,2.x.x或CDH4.CDH5等,将Spark运行在 Hadoop上,本质上是将Spark运行在Hadoop YARN上,因为Spark自身只提供了作业管

CDH5: 使用parcels配置lzo

一.Parcel 部署步骤     1 下载: 首先需要下载 Parcel.下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中.     2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩.     3 激活: 分配后,激活 Parcel 为群集重启后使用做准备.激活前可能还需要升级. 二.lzo parcels本地化     1.到http://archive-primary.cloudera.com/gplextras/parcels/l

yum安装CDH5.5 hive、impala的过程详解_Linux

一.安装hive 组件安排如下: 172.16.57.75 bd-ops-test-75 mysql-server 172.16.57.77 bd-ops-test-77 Hiveserver2 HiveMetaStore 1.安装hive 在77上安装hive: # yum install hive hive-metastore hive-server2 hive-jdbc hive-hbase -y 在其他节点上可以安装客户端: # yum install hive hive-server2

ubuntu下安装nodejs以及升级的办法

  本文介绍了ubuntu 12.04服务器安装nodejs以及升级的方法,ubuntu安装nodejs以及升级的实例教程,需要的朋友参考下. 因为最近打算研究下nodejs,结果发现了网上并没有适合先在的nodejs的安装和更新教程 首先在ubuntu的命令行下执行: ? 1 apt-get install nodejs 然后我们需要安装npm,这是nodejs用的版本管理工具: ? 1 apt-get install nodejs 接着我们用node -v可以看下版本,如果发现版本很低的话(

简单的把Windows XP进行升级已经不行了

专家表示:"简单的把Windows XP进行升级已经不行了."并且预测,将有相当多的大企业在微软停止对XP系统的支持以后,依旧选择使用这一系统.微软计划,到2014年4月8日,全面停止对XP系统包括公共安全补丁在内的所有支持.     虚拟技术厂商VMware台式产品营销主管贝蒂·朱诺(Betty Junod)表示:"我们的调查显示,大型企业在将XP升级为Windows 7方面的进程最为缓慢,有64%的大型企业尚未完成这一升级." 她补充道:"一半多一点的

升级SP1获得支持工作

虽然Windows 8已经被证实在全球不受欢迎,但Windows 7依然是一款无论是技术上还是市场上都表现很棒的产品,不过2009年发布以来它已经走过四年的时间,根据微软的生命周期政策,Windows 7 RTM版本的主流支持时间将在4月9日结束,当然这并不影响打了SP1补丁以后的版本.     如果您是Windows 7的正版用户,请尽快升级到SP1以获得支持工作,这一版本的生命周期为2015年1月13日,而扩展支持周期要到2020年1月14日才过期.

微软鲍尔默:Win8升级速度比Win7快

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Windows部门主管Tami Reller近日透露,Win8已经售出了4000万份授权许可.微软CEO史蒂夫·鲍尔默在刚刚的年度股东大会上证实了这一消息,另外,他还表示,Win8的升级速度超过了Win7. 鲍尔默指出,Win8的升级速度超过了当年Win7发布后的升级速度,但是他并没有公布官方数据.换句话说,当前从旧版系统升级至Win8的用户量比2009年Vis