DataX HdfsWriter在Windows下清理临时文件夹问题

9gm1akwq  于 4个月前  发布在  HDFS
关注(0)|答案(1)|浏览(151)

拼接文件路径时使用了IOUtils.DIR_SEPARATOR

tmpFilePath = String.format("%s__%s%s", userPath, tmpSuffix, IOUtils.DIR_SEPARATOR)

在Windows下会通过""拼接。但实际Hdfs上应该都是Linux的"/"。然后导致在HdfsHelper.renameFile方法中,获取父级目录时用的是hadoop-common的Path.getParent,会导致越过一级目录从而将整个数据库删除(如果是hive目录)

tmpFilesParent = srcFilePah.getParent();

建议HdfsWriter文件中拼接路径统一采用Linux的分隔符

83qze16e

83qze16e1#

这个我今天在群里也看到了,windows环境直接删除整个目录。删库跑路现场版

相关问题