近期項目中需要用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,需要將版本升級一下。
升級步驟:
1、在一個節點上查詢服務
service --status-all
發現只有cloudera-scm-agent,沒有cloudera-scm-server,說明這不是主節點。
2、查看cloudera的主節點
cat /etc/cloudera-scm-agent/config.ini
查找server_host的值,這就是服務端安裝的主節點,在主節點上登錄。
3、查看CM依賴的數據庫
cat /etc/cloudera-scm-server/db.properties
4、備份CM數據
pg_dump -U scm -p 7432 > scm_server_db_backup.bak
其中scm是依賴的數據庫名,密碼見第3步中的結果。檢查/tmp下是否有文件生成,期間保證tmp下文件不要被刪除。
5、停止CM server :
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/
6、查看yum的 cloudera-manager.repo文件需不需要修改
sudo vim /etc/yum.repos.d/cloudera-manager.repo
發現cloudera-manager版本較新,不需要升級cloudera-manager
7、升級
sudo yum clean all
sudo yum upgrade 'cloudera-*'
檢查:
rpm -qa 'cloudera-manager-*'
8、啟動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