CDH版本升级

  近期项目中须要用oozie workflow调度hivesql,发现没法执行查询语句,见:https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Oozie-Hive-action-failed-with-wrong-tmp-path/td-p/37443  由此得知,罪魁祸首是cdh的bug,须要将版本升级一下。html

  升级步骤:sql

一、在一个节点上查询服务数据库

service --status-all

发现只有cloudera-scm-agent,没有cloudera-scm-server,说明这不是主节点。vim

二、查看cloudera的主节点post

cat /etc/cloudera-scm-agent/config.ini

查找server_host的值,这就是服务端安装的主节点,在主节点上登陆。ui

三、查看CM依赖的数据库spa

cat /etc/cloudera-scm-server/db.properties

四、备份CM数据code

pg_dump -U scm -p 7432   > scm_server_db_backup.bak

其中scm是依赖的数据库名,密码见第3步中的结果。检查/tmp下是否有文件生成,期间保证tmp下文件不要被删除。server

五、中止CM server :htm

sudo service cloudera-scm-server stop

中止CM server依赖的数据库:

sudo service cloudera-scm-server-db stop

若是这台CM server上有agent在运行也中止:

sudo service cloudera-scm-agent stop

其中,cloudera-scm-server-db服务中止失败,查询服务状态发现以下:

pg_ctl: server is running (PID: 1713)
/usr/bin/postgres "-D" "/var/lib/cloudera-scm-server-db/data"

cd /var/lib/cloudera-scm-server-db/data
rm postmaster.pid

http://blog.puneethabm.in/cloudera-scm-server-db-pg_ctl-server-does-not-shut-down/

六、查看yum的 cloudera-manager.repo文件需不须要修改

sudo vim /etc/yum.repos.d/cloudera-manager.repo

发现cloudera-manager版本较新,不须要升级cloudera-manager

七、升级

  sudo    yum clean all 
  sudo yum upgrade 'cloudera-*'

检查:

rpm  -qa 'cloudera-manager-*'

八、启动CM server 数据库:

sudo  service cloudera-scm-server-db start

启动失败!!

ps -l -ef | grep bin/postgres

查看DB进程,发现存在cloudera-scm-server-db的进程

#kill -9 [pid]

杀掉再启动服务,OK

启动CM server:

sudo  service cloudera-scm-server start

启动CM agent:

sudo  service cloudera-scm-agent start

 

最后,从新用oozie调hive,执行成功 !!

参考:

http://www.tuicool.com/articles/YVnu6v

http://www.aboutyun.com/thread-10856-1-1.html