Hadoop 看不到我的输入目录
Hadoop cannot see my input directory
我正在关注 Apache Map Reduce tutorial,我正在分配输入和输出目录。我在这里创建了两个目录:
~/projects/hadoop/WordCount/input/
~/projects/hadoop/WordCount/output/
但是我运行fs
的时候,找不到文件和目录。我是 运行ning 作为 ubuntu 用户,它拥有目录和输入文件。
根据下面提出的解决方案,我尝试了:
找到我的 hdfs 目录 hdfs dfs -ls /
即 /tmp
我在 /tmp
和 mkdir
中创建了 input/ 和 output/
试图复制本地 .jar to.hdfs:
hadoop fs -copyFromLocal ~projects/hadoop/WordCount/wc.jar /tmp
收到:
copyFromLocal: `~projects/hadoop/WordCount/wc.jar': No such file or directory
任何故障排除想法?谢谢
由于 hadoop 无效输入异常表明它找不到位置“/home/ubuntu/projects/hadoop/WordCount/input”。
是本地路径还是HDFS路径?我认为这是本地的,这就是输入异常发生的原因。
要执行 jar 文件,您必须将 jar 放在 HDFS 目录中。并且输入和输出目录也必须在 HDFS 中。
使用 copyFromLocal 命令将 jar 从本地复制到 hadoop 目录为:
hadoop fs -copyFromLocal <localsrc>/wc.jar hadoop-dir
MapReduce 期望 Input
和 Output
路径是 HDFS 中的目录而不是本地目录,除非集群配置为本地模式。此外,输入目录必须存在,而输出目录不应该存在。
例如:
如果输入是 /mapreduce/wordcount/input/
,则必须创建此目录,其中包含所有输入文件。使用 HDFS 命令创建它们。
hdfs dfs -mkdir -p /mapreduce/wordcount/input/
hdfs dfs -copyFromLocal file1 file2 file3 /mapreduce/wordcount/input/
file1 file2 file3
是本地可用的输入文件
如果输出是 /examples/wordcount/output/
。父目录必须存在,但 output/
目录不存在。 Hadoop 在作业执行时创建它。
hdfs dfs -mkdir -p /examples/wordcount/
用于作业的 jar,在本例中 wc.jar
应该驻留在本地,并在执行时提供命令的绝对或相对本地路径。
所以最后的命令看起来像
hadoop jar /path/where/the/jar/is/wc.jar ClassName /mapreduce/wordcount/input/ /examples/wordcount/output/
我正在关注 Apache Map Reduce tutorial,我正在分配输入和输出目录。我在这里创建了两个目录:
~/projects/hadoop/WordCount/input/
~/projects/hadoop/WordCount/output/
但是我运行fs
的时候,找不到文件和目录。我是 运行ning 作为 ubuntu 用户,它拥有目录和输入文件。
根据下面提出的解决方案,我尝试了:
找到我的 hdfs 目录 hdfs dfs -ls /
即 /tmp
我在 /tmp
和 mkdir
试图复制本地 .jar to.hdfs:
hadoop fs -copyFromLocal ~projects/hadoop/WordCount/wc.jar /tmp
收到:
copyFromLocal: `~projects/hadoop/WordCount/wc.jar': No such file or directory
任何故障排除想法?谢谢
由于 hadoop 无效输入异常表明它找不到位置“/home/ubuntu/projects/hadoop/WordCount/input”。
是本地路径还是HDFS路径?我认为这是本地的,这就是输入异常发生的原因。
要执行 jar 文件,您必须将 jar 放在 HDFS 目录中。并且输入和输出目录也必须在 HDFS 中。
使用 copyFromLocal 命令将 jar 从本地复制到 hadoop 目录为:
hadoop fs -copyFromLocal <localsrc>/wc.jar hadoop-dir
MapReduce 期望 Input
和 Output
路径是 HDFS 中的目录而不是本地目录,除非集群配置为本地模式。此外,输入目录必须存在,而输出目录不应该存在。
例如:
如果输入是 /mapreduce/wordcount/input/
,则必须创建此目录,其中包含所有输入文件。使用 HDFS 命令创建它们。
hdfs dfs -mkdir -p /mapreduce/wordcount/input/
hdfs dfs -copyFromLocal file1 file2 file3 /mapreduce/wordcount/input/
file1 file2 file3
是本地可用的输入文件
如果输出是 /examples/wordcount/output/
。父目录必须存在,但 output/
目录不存在。 Hadoop 在作业执行时创建它。
hdfs dfs -mkdir -p /examples/wordcount/
用于作业的 jar,在本例中 wc.jar
应该驻留在本地,并在执行时提供命令的绝对或相对本地路径。
所以最后的命令看起来像
hadoop jar /path/where/the/jar/is/wc.jar ClassName /mapreduce/wordcount/input/ /examples/wordcount/output/