解决Flink输出日志中时间比当前时间晚8个小时的问题

解决Flink输出日志中时间比当前时间晚8个小时的问题

在flink standalone集群上,发现log输出时间比当前时间晚8个小时,我的集群系统时间是CTM+8时区的。一开始发现时间不对,还不太上心,后面发现业务在本地跑起来是正常的,提交到集群跑不输出结果,这下就尴尬了。经过一系列的排查。发现ProcessTime时间不对。后面发现flink时间默认为UTC时间(真是个坑啊,心中默念,心平气和)。顺便写个博客记录下。

那么解决这个问题呢,需要修改脚本jobmanager和taskmanager当中的FLINK_ENV_JAVA_OPTS参数。如下:

1. jobmanager.sh脚本的修改

# Add JobManager-specific JVM options
export FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_JM}"


#将上面的内容改为 加上 -Duser.timezone=GMT+08
export FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_JM} -Duser.timezone=GMT+08"

2. taskmanager.sh脚本的修改

# Add TaskManager-specific JVM options
export FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_TM}"


#将上面的内容改为 加上 -Duser.timezone=GMT+08
export FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_TM} -Duser.timezone=GMT+08"

然后重启flink standalone集群就好,在重新提交job就好。

你可能感兴趣的:(大数据,flink,jobmanager,taskmanager,log晚8小时)