0

我有猪和hadoop工作。但由于未知原因,它停止为下一个文件工作。在重新安装hadoop和格式化之后,我又遇到了一个新问题。我无法将输入文件复制到 hadoop:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /home/hduser/pig/tutorial/pigtmp/bigdata.txt /user/hduser
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser
Found 1 items
-rw-r--r--   1 hduser supergroup   10485760 2013-06-28 20:48 /user/hduser
hduser@ubuntu:/usr/local/hadoop$ 

谁能建议我该怎么做?我对hadoop或猪没有很好的了解。谢谢。

4

1 回答 1

0

您的文件已复制到 HDFS,到您命名的文件:/home/hduser. 您列出的ls输出显示文件大小约为 10MB。

现在我假设您正在寻找的是文件夹中存在的文件/home/hduser。我还猜测在您运行-copyFromLocal命令之前该文件夹不存在 - 在这种情况下,hadoop 将复制到命名文件。如果命名文件是一个目录,那么 hadoop 将复制到该目录内的一个文件(该文件与本地副本具有相同的名称)。

-copyFromLocal因此,要解决此问题,您需要在执行fs 命令之前确保该文件夹存在:

# Delete the current file you have:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -rmr /user/hduser

# create the hdusers home directory
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -mkdir /user/hduser

# Copy the txt file from local to the hduser folder in hdfs
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /home/hduser/pig/tutorial/pigtmp/bigdata.txt /user/hduser/

# Now the ls should show the file
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser/
于 2013-06-29T12:59:54.287 回答