【问题标题】:Hadoop copyFromLocal problem wit copying directoryHadoop copyFromLocal 复制目录的问题
【发布时间】:2011-06-23 05:05:32
【问题描述】:

我想将带有一些子目录和文件的整个本地目录复制到 HDFS。 HDFS 已经包含根目录和一些带有文件的子目录。我只想从本地目录添加更新的文件。

Local directory /www/hitlogfetcher/logs/:
day=20--hour=00/files.....
  |-hour=01/files.....
  |-hour=02/files....

HDFS /hitlogfetcher-test/:
day==20--hour=00/files
   |-hour=01/

当我使用命令时: hadoop dfs -copyFromLocal /www/hitlogfetcher/logs/* /hitlogfetcher-test/ 我收到错误消息:

Target /hitlogfetcher-test/day=20 is a directory
  • day=20 是一个包含一些子目录和文件的目录

所以我想从目录 hour=01 复制文件,然后复制目录 hour=02 及其文件。

是否可以使用 hadoop shell 命令或其他方式?

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    copyFromLocal 命令默认会递归上传目录,所以不需要“*”:

    hadoop dfs -copyFromLocal /www/hitlogfetcher/logs/  /hitlogfetcher-test/
                                                      ^ 
    

    【讨论】:

    • 不带“*”的命令当然可以。但它对我来说不能正常工作。
    • 这个命令也会复制目录logs/。我只需要天=20/小时=02/*。我希望 copyFromLocal 的行为与 Linux 中的 cp 一样: cp -r /www/hitlogfetcher/logs/* /hitlogfetcher-test/
    猜你喜欢
    • 2016-05-26
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多