如果不存在,如何让hadoop创建目录

owl*_*wly 22 hadoop put hdfs cloudera biginsights

我一直在使用Cloudera的hadoop(0.20.2).使用此版本,如果我将文件放入文件系统,但目录结构不存在,则会自动创建父目录:

例如,如果我在hdfs和typed中没有目录:

hadoop fs -put myfile.txt /some/non/existing/path/myfile.txt

它将创建所有目录:some,non,existingpath并将文件放在那里.

现在,随着更新的hadoop(2.2.0)产品的出现,这种自动创建的目录不会发生.上面的相同命令产生:

put:`/ some/non/existing/path /':没有这样的文件或目录

我有一个解决方法,首先只做hadoop fs -mkdir,每次放置,但这不会很好.

这是可配置的吗?有什么建议?

小智 28

现在你应该使用 hadoop fs -mkdir -p <path>

  • 这是怎么回答这个问题的? (6认同)
  • 不幸的是,它不是特别有效,因为 JVM 需要为 mkdir 命令启动,但“-p”选项确实有一个很好的好处,即如果目录存在,它不会出错。使错误处理更加清晰。 (2认同)