当有一台节点崩溃之后,重启之后,观察spark 集群日志,发现有个时间无法同步的问题。
再一仔细检查系统,输入date -R 才发现系统时间的时区设置为空。后面直接是+0000。
这肯定不符合,再输入 date -u和date,发现两个时间居然一致。不过本来也是。
本来这个UTC时间是需要与时区相加的,所以在时区未设置的情况下,两个值相同是正常的。
可是按照网上的各种方法,始终没有成功:
如
$ sudo cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
或者修改/etc/sysconfig/clock等方式,发现全部不起作用。即使设置了date -s 'XXX'的命令,马上又回到原来的地方。
经过冷静分析,发现始终时区设置不起作用的原因。才发现上述各种配置大多需要时间重启才能生效。
然而在集群持续跑的状态下,能否不进行重启使时区修改呢。
才发现只需在/etc/profile中简单设置一下
export TZ='CST-8',即时生效一下就全部搞定。
由于这个问题花了有近20分钟,所以把这问题的解决过程记录一下。