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