我正在尝试编写代码以将文件导入 HDFS 以用作配置单元外部表。我发现使用类似的东西:
富 | ssh 主机名“hdfs dfs -put - /destination/$FILENAME”
可能会导致一种错误类型,即创建一个临时文件,然后在完成后重命名。这可能会导致目录列表和查询执行之间的 hive 竞争条件。
一种解决方法是将文件复制到临时目录并将文件“hdfs dfs mv”放置到位。
具体和一般/学术问题是:
- “hdfs dfs -mv”命令是原子的,对吧?
- 还有哪些 HDFS 命令或操作是原子的?
- 两个几乎同时发出的“hdfs dfs -mkdir”命令可以相信它们都成功了吗?
- 将文件移动到位时,是否有更好的方法来避免配置单元的竞争条件?