近期項目中須要用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