1 背景
在使用Hue創建調度任務的過程中,我們會發現Hue的時區與Oozie的調度時間不一致。默認Oozie使用的時區爲UTC,在創建調度作業時還需要考慮在當前的時間減去8個小時才能達到我們的預期。
2 現象描述
使用Hue創建一個調度
步驟如下:
step1:創建調度
step2:設置時間以及時區
step3:保存
step4:提交
此時,可以發現創建調度時設置的時間與實際調度時間不一致,兩者相差了8小時!!
3 解決——將Hue與Oozie配置爲統一時區
1) 設置Hue時區
Hue的默認時區爲America/Los_Angeles,這裏需要在CM上將Hue的時區修改爲Asia/Shanghai。
step1:登錄Cloudera Manager進入Hue的配置頁面
step2:搜索“time_zone”,將時區修改爲Asia/Shanghai
step3:保存配置,並重啓Hue服務即可,以上完成Hue服務時區的設置。
2) 修改Oozie時區
Oozie默認時區爲UTC,如果在Hue上創建調度任務會發現要讓調度任務與期望的時間一致,則需要在當前時間減去8個小時,在使用上非常不方便,那在下面的步驟就說明如何設置Oozie的時區。
step1:登錄Cloudera Manager 進入Ooize服務的配置界面
step2:進行配置項搜索“oozie-site.xml”,在該配置項添加如下配置:
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</value>
</property>
step3:保存後重啓服務完成配置
4 結果
按上述2中的步驟重新創建一個調度,如下
注: 調度時間爲10:30
此時,任務時間同樣爲10:30
即配置已完成且生效!!
5 總結
Hue的默認時區爲America/Los_Angeles,而Oozie的默認時區爲UTC,在使用Hue創建Oozie的調度任務時由於時區與本地時區不一致,會造成開發人員創建的調度任務與預期調度週期不符問題,解決該問題最好的方式將Hue和Oozie的時區與本地時區統一。