【发布时间】:2014-06-24 18:28:38
【问题描述】:
我一直在使用 Cloudera 的 hadoop (0.20.2)。 在这个版本中,如果我把一个文件放入文件系统,但目录结构不存在,它会自动创建父目录:
例如,如果我在 hdfs 中没有目录并输入:
hadoop fs -put myfile.txt /some/non/existing/path/myfile.txt
它将创建所有目录:some、non、existing 和 path 并将文件放入其中。
现在,有了更新的 hadoop (2.2.0) 产品,这种目录的自动创建不会发生。 上面的相同命令产生:
put: `/some/non/existing/path/': 没有这样的文件或目录
我有一个解决方法,可以先对每个 put 执行 hadoop fs -mkdir,但这不会很好。
这是可配置的吗? 有什么建议吗?
【问题讨论】:
-
为什么表现不好?
-
>> 为什么性能不好?因为对于每个“放置”,我都在做一个 mkdir - 大多数时候可能不需要它,所以它会影响高吞吐量情况下的性能。
-
您是否考虑过编写自己的解决方案?我很惊讶
put表现出色,考虑到每次调用都必须启动 VM、读取配置等... -
嗨,我们没有,但我想这是需要考虑的事情。我希望有一个开箱即用的简单解决方案(不创建父目录)。
标签: hadoop hdfs cloudera put biginsights