問題:
kudu 進程運行一段時候后突然宕掉,查看日志出現clock error:
Sep 17, 8:32:31.135 PM FATAL tablet_server_main.cc:38 Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Cannot initialize HybridClock. Clock synchronized but error was too high (11711000 us).
原因:
kudu 對同步時間比較敏感,可使用
ntptime
查看服務器ntp時間,注意ntp同步時間和系統時間是不一樣的,ntp需要重ntp服務器 同步獲取時間,然后再和系統時間校准;
Kudu要求NTP同步時鍾的最大時鍾錯誤(不要與估計的錯誤相混淆)不低於閾值 max_clock_sync_error_usec(10s);
NTP守護程序本身的同步狀態並不反映本地時鍾的同步狀態,其驅動本地時鍾的方式受到許多約束。
解決:
調整參數相關參數(默認10s,可改為20s)
--max_clock_sync_error_usec = 20000000
或者使用 chronyd 做時間同步;
Chrony是一個開源的自由軟件,能保持系統時鍾與時鍾服務器(NTP)同步,因此讓時間保持精確
參考:
https://github.com/apache/kudu/blob/master/docs/troubleshooting.adoc#ntp