使用pig时hadoop路径出错

使用pig时hadoop路径出错,hadoop,apache-pig,Hadoop,Apache Pig,我让pig和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

我让pig和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或pig不是很了解。
谢谢。

您的文件已复制到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/

奇怪的是,我以前尝试过这个,因为我还注意到我的10MB文件实际上是用“/user/hduser”bt编写的,没有任何效果。但这次它做到了D非常感谢。