NTP clock synchronization

The local clock of the machine where Kudu master or tablet server is running must be synchronized using the Network Time Protocol (NTP) if you are using the system time source. The time source is controlled by the --time_source flag and is set to system, by default.

Kudu requires the maximum clock error (not to be mistaken with the estimated error) of the NTP-synchronized clock to be below a configurable threshold. The default threshold value is 10 seconds and it can be customized using the --max_clock_sync_error_usec flag.

When running Kudu with the system time source, Kudu will not start and will display the following message if the local clock is reported unsynchronized:

F0924 20:24:36.336809 14550 hybrid_clock.cc:191 Couldn't get the current time: Clock unsynchronized. Status: Service unavailable: Error reading clock. Clock considered unsynchronized.

If the machine's clock is synchronized, but the maximum clock error is too high, you will see a message such as:

Sep 17, 8:13:09.873 PM FATAL hybrid_clock.cc:196 Couldn't get the current time: Clock synchronized, but error: 11130000, is past the maximum allowable error: 10000000

or

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).