一、 准备工作
下载cdh的各种源:
1.下载cloudera manager installer:http://archive-primary.cloudera.com/cm5/installer
2.因为这次要模拟升级安装,首先要先下载beta的源:http://archive-primary.cloudera.com/cm5/redhat/5/x86_64/cm/5.0.0-beta-2/
3.然后下载release的源:http://archive-primary.cloudera.com/cm5/redhat/5/x86_64/cm/5.0.0/
4.然后下载parcel包,官方也推荐这种方式安装:http://archive-primary.cloudera.com/cdh5/parcels/
另外除了parcel包,还要下载json文件,没有那个json文件是无法正常安装的.
5.下载到本地后将rpm包的源,放到webserver目录下,写好yum的repo文件
[cloudera-manager]
name = Cloudera Manager, Version 5.0.0
baseurl = http://IP/yum-package/cm5/redhat/5/x86_64/cm/5.0.0/
gpgcheck = 0
6.parcel包添加验证文件
cat manifest.json 把sha那一段沾出来, 写到parcel包.sha文件里,然后为这三个文件授权755
(之前因为manifest.json文件改错,安装包一直失败,查看manager的log才发现问题)
至此准备工作完成!
二 、安装cloudera manager
./cloudera-manager-installer.bin 直接执行,这个还支持鼠标点击.
在最后一步前,准备好另一个终端,准备好手动拷贝刚才写的repo文件,因为安装时会被覆盖,所以只能手动反覆盖.......
完成manager机器的安装 就可以进web配置了,启动略慢
http://ip:7180
三、通过web安装cdh
1.添加完涉及的服务器后,手动指定parcel和agent的本地源
2.安装完成后选择服务,本次只选择了基本服务hdfs,yarn,zookeeper
3.指定角色,完成安装.
4.使用slave节点,测试上传文件ok
四、升级cloudera manager
升级cloudera manager
1.把当前跑的所有服务都停掉,包括服务.
2.停掉cloudera-scm-server和cloudera-scm-server-db
1 | service cloudera-scm-server stop |
2 | service cloudera-scm-server-db stop |
3.准备好新版本的manager的repo文件
执行yum clean all && yum upgrade 'cloudera-*'
rpm -qa 'cloudera-*' 查看版本
4.升级完成,启动server和db
5.进入web升级agent们,一进去就会有提示,然后手动指定url,升级就可以鸟.
五、升级CDH
-
注意先办法namenode数据,
-
# cd /mnt/hadoop/hdfs/name # tar -cvf /root/nn_backup_data.tar .
-
点搜索框左边小礼品盒子图标,添加新版本parcel的url,添加后下面会多出个小图,点激活就可以自动升级了
至此完成所有升级.
六、错误整理
-
升级过程出现namenode启动失败问题,
java.io.IOException:
File system image contains an old layout version -51.
An upgrade to version -55 is required.
Please restart NameNode with the "-rollingUpgrade started" option if a rolling upgraded is already started; or restart NameNode with the "UPGRADE" to start a new upgrade.
手动到master节点启动后,停掉,再通过web页面重启后正常
hdfs --config /run/cloudera-scm-agent/process/XXX-hdfs-NAMENODE namenode -upgrade
2.另一个可能出现的报错:
Get corrupt file blocks returned error: Cannot run listCorruptFileBlocks because replication queues have not been initialized.
删掉namenode节点的previous/目录即可
3. 由于前一次安装socket文件(/var/run/hdfs-sockets)没有正常删除,造成datanode启动失败,手动修改其权限为root解决
参考链接及文档:
报错解决(可能要翻墙):http://www.abcn.net/2014/04/upgrade-from-cdh5-beta2-to-cdh5-ga.html
官方pdf:Cloudera-Manager-Administration-Guide.pdf
转自http://my.oschina.net/MaTech/blog/223150