Изменение пути HDFS при попытке обновить файлы в HDFS - PullRequest
0 голосов
/ 29 августа 2011

Я новичок в Hadoop и HDFS, поэтому, возможно, я что-то не так делаю, когда копирую с локального (Ubuntu 10.04) в HDFS на одном узле на localhost. Начальная копия работает нормально, но когда я изменяю свою локальную входную папку и пытаюсь скопировать обратно в HDFS, путь HDFS меняется.

~$ $HADOOP_HOME/bin/hadoop dfs -copyFromLocal /tmp/anagram /user/hduser/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -ls /user/hduser/anagram
Found 1 items
-rw-r--r--   1 hduser supergroup    4067675 2011-08-29 05:44 /user/hduser/anagram/SINGLE.TXT

После добавления другого файла (COMMON.TXT) в тот же локальный каталог я запускаю ту же копию в локальном каталоге для HDFS, но на этот раз он копирует в другое место, чем в первый раз (/ user / hduser / anagram / user / hduser / anagram / anagram).

~$ $HADOOP_HOME/bin/hadoop dfs -copyFromLocal /tmp/anagram /user/hduser/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -ls /user/hduser/anagram
Found 2 items
-rw-r--r--   1 hduser supergroup    4067675 2011-08-29 05:44 /user/hduser/anagram/SINGLE.TXT
drwxr-xr-x   - hduser supergroup          0 2011-08-29 05:48 /user/hduser/anagram/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -ls /user/hduser/anagram/anagram
Found 2 items
-rw-r--r--   1 hduser supergroup     805232 2011-08-29 05:48 /user/hduser/anagram/anagram/COMMON.TXT
-rw-r--r--   1 hduser supergroup    4067675 2011-08-29 05:48 /user/hduser/anagram/anagram/SINGLE.TXT

Кто-нибудь сталкивался с этим? Я обнаружил, что для решения этой проблемы вам нужно удалить первый каталог, а затем скопировать снова:

~$ $HADOOP_HOME/bin/hadoop dfs -rmr /user/hduser/anagram/anagram
Deleted hdfs://localhost:54310/user/hduser/anagram/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -rmr /user/hduser/anagram
Deleted hdfs://localhost:54310/user/hduser/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -copyFromLocal /tmp/anagram /user/hduser/anagram
~$ $HADOOP_HOME/bin/hadoop dfs -ls /user/hduser/anagram
Found 2 items
-rw-r--r--   1 hduser supergroup     805232 2011-08-29 05:55 /user/hduser/anagram/COMMON.TXT
-rw-r--r--   1 hduser supergroup    4067675 2011-08-29 05:55 /user/hduser/anagram/SINGLE.TXT

Кто-нибудь знает, как это сделать без необходимости каждый раз удалять каталог?

1 Ответ

2 голосов
/ 29 августа 2011

Мне кажется, что это побочный эффект (проверьте FileUtil.java, статический метод FileUtil.checkDest (String srcName, FileSystem dstFS, Path dst, логическая перезапись)) попробуйте это:

hadoop dfs -copyFromLocal /tmp/anagram/*.TXT /user/hduser/anagram

для обновления каталога.

...