我正在按照著名的 Michael Noll Tutorial 实现 Hadoop 单节点集群.集群正常运行,使用 jps
检查显示所有组件在执行 start-all.sh
后都在运行。
我在使用一些下载的文本重现 wordcount-example 时遇到问题。我在 /tmp/gutenberg
中下载了文件并检查了它们是否在那里,情况似乎是这样:
hduser@ubuntu:~$ ls -l /tmp/gutenberg/
insgesamt 3604
-rw-r----- 1 hduser hadoop 674570 Mai 7 01:03 pg20417.txt
-rw-r----- 1 hduser hadoop 1573151 Mai 7 01:03 pg4300.txt
-rw-r----- 1 hduser hadoop 1423803 Mai 7 01:03 pg5000.txt
然后我按照教程中的指示启动 Hadoop 集群,然后执行以下命令:
hduser@ubuntu:~$ hadoop dfs -copyFromLocal /tmp/gutenberg /user/hduser/gutenberg
copyFromLocal: `/user/hduser/gutenberg': No such file or directory
显然没有文件 /user/hduser/gutenberg
,所以我用以下内容创建了它:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop fs -mkdir -p /user/hduser/gutenberg
然后重新运行 copyFromLocal 命令,没有任何错误。如果我随后检查文件是否存在,我会得到:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser/gutenberg
Found 1 items
drwxr-xr-x - hduser supergroup 0 2015-05-07 02:22 /user/hduser/gutenberg/gutenberg
因此,如您所见,文本文件不在那里。如果我重新运行 copyFromLocal 命令,我会收到一条消息,指出文件存在:
hduser@ubuntu:/usr/local/hadoop$ hadoop dfs -copyFromLocal /tmp/gutenberg /user/hduser/gutenberg
copyFromLocal: `/user/hduser/gutenberg/gutenberg/pg20417.txt': File exists
copyFromLocal: `/user/hduser/gutenberg/gutenberg/pg4300.txt': File exists
copyFromLocal: `/user/hduser/gutenberg/gutenberg/pg5000.txt': File exists
我不明白这里出了什么问题,非常感谢任何帮助解决这个问题!
最佳答案
您必须使用 bin/hadoop dfs -ls/user/hduser/gutenberg/gutenberg
并且您应该看到所有文件,您使用的 ls
命令错误,没有更多。
关于HADOOP - 将文本文件复制到 HDFS 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089988/