我写了一个简单的工具来上传日志到HDFS。我发现了一些奇怪的现象。
如果我在前台运行该工具并使用“Ctrl-C”关闭它,HDFS 中就会有一些数据。
如果我在后台运行该工具并使用“ ”终止该进程kill -KILL pid
,则已处理的数据将丢失并在 HDFS 中留下一个空文件。
我的工具尝试SequenceFile.Writer.syncFs()
频繁地(每 1000 行)进行同步(通过调用)。
而且我也不知道数据为什么会丢失,如果我的工具运行了一整天,机器突然死机了,是不是所有数据都会丢失?
我的工具用于从不同的服务器收集日志,然后上传到 HDFS(每天将所有日志聚合到一个文件中)。