0
我是Hadoop和HDFS的新手,所以也許這是我從本地(Ubuntu 10.04)複製到localhost上的單個節點上的HDFS時出錯的問題。初始複製工作正常,但是當我修改我的本地輸入文件夾並嘗試複製回HDFS時,HDFS路徑會發生變化。嘗試在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相同的副本,但這次它拷貝到不同的位置比第一次(/用戶/ 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
有誰知道如何做到這一點,而不必每次都刪除目錄?
工作就像一個魅力。收到「Target /user/hduser/anagram/SINGLE.TXT已存在」的消息,並且未創建新的嵌套目錄 –