flume 写入HDFS文件无法读取,提示数据不完整。
2021-10-28 本文已影响0人
迷茫_小青年
容器化flume以后,在缩减的flume 容器的时候,出现数据无法读取,错误提示数据不完整。
根据flume sink事务机制定位,flume没有正常关闭,k8s 强制kill flume容器导致。
再深入排查,测试发现。手动kill 容器内flume可以正常关闭。k8s 日志中也有发送kill 信号。
由此分析,是因为flume容器镜像是由start.sh 启动flume进程。所以start.sh 为父进程。
当k8s发送kill信号时,start.sh 没有捕获信号机制,所有没有任何反应,动作。
直到触发 k8s 中 terminationGracePeriodSeconds: 30 参数,k8s 强行关闭flume 容器。导致flume sink事务没有完整操作,所以hdfs 数据不完整 。