Hadoop问题,尝试在Hadoop上运行基本WordCount MapReduce

Hadoop问题,尝试在Hadoop上运行基本WordCount MapReduce,hadoop,mapreduce,hdfs,Hadoop,Mapreduce,Hdfs,我在我的Windows10笔记本电脑上运行hadoop,但我找到了一些关于如何安装、运行和运行基本字数计算程序的指南。hadoop的安装看起来很好,因为我可以看到仪表板,我认为这意味着“集群”已经启动并运行 作为参考,我现在这样做只是为了学习它,这就是为什么我要使用我的笔记本电脑和Windows10。我下面的指南如下: 这在一段时间内效果很好,直到我不得不提交作业,它会转到ResourceManager,我可以在仪表板上看到它,但随后失败,出现了一个非常不具体的错误: Application

我在我的Windows10笔记本电脑上运行hadoop,但我找到了一些关于如何安装、运行和运行基本字数计算程序的指南。hadoop的安装看起来很好,因为我可以看到仪表板,我认为这意味着“集群”已经启动并运行

作为参考,我现在这样做只是为了学习它,这就是为什么我要使用我的笔记本电脑和Windows10。我下面的指南如下:

这在一段时间内效果很好,直到我不得不提交作业,它会转到ResourceManager,我可以在仪表板上看到它,但随后失败,出现了一个非常不具体的错误:

Application application_1525309913796_0001 failed 2 times due to AM Container for appattempt_1525309913796_0001_000002 exited with exitCode: 1
Failing this attempt.Diagnostics: Exception from container-launch.
Container id: container_1525309913796_0001_02_000001
Exit code: 1
Stack trace: ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:972)
at org.apache.hadoop.util.Shell.run(Shell.java:869)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1170)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:236)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:305)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:84)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Shell output: 1 file(s) moved.
Container exited with a non-zero exit code 1
For more detailed output, check the application tracking page: http://BertieCoding:8088/cluster/app/application_1525309913796_0001 Then click on links to logs of each attempt.
. Failing the application.
在运行作业之前,我按照说明运行了以下命令:

hadoop fs -mkdir /input_dir
hadoop fs -put C:/input_file.txt /input_dir
hadoop fs -ls /input_dir/
hadoop jar C:/MapReduceClient.jar wordcount /input_dir /output_dir
不幸的是,当我查看hadoop安装的日志目录时,它有文件夹/文件,但文件中没有任何看起来不正确的内容

以前有没有人见过这种情况,并且知道如何修复它


哦,如果不明显的话,我将使用HDFS作为底层框架。我也可以发布程序的源代码,但它似乎在运行之前就失败了。

在hadoop-env.cmd文件中,设置JAVA_主路径,不要在路径周围使用引号

例如,我将其设置为:

set JAVA_HOME="C:\java"
但要做到这一点:

set JAVA_HOME=C:\java

非常简单的修复,导致了很多问题。

在仪表板页面上,单击失败链接,然后从中查找应用程序日志这是我在单击失败链接,然后单击应用程序ID时看到的:好的,我刚刚找到了更多信息,我得到了以下信息:“'C:\Program Files\Java\jdk1.8.0\u 111”'不被识别为内部或外部命令、可操作程序或批处理文件。“。这表明它显然没有在java目录中查找,但我找不到设置该目录的配置。有什么想法吗?看来您的
PATH
环境变量和/或
JAVA\u HOME
设置不正确。如果可以的话,您可能还想升级Java8版本,仅供参考:要使用Hadoop,您可以使用Hortonworks HDP沙盒虚拟机模板并在VirtualBox应用程序上运行。这已经预先配置了所有必要的应用程序,如纱线、蜂巢、火花等。在这种情况下,您不需要自己花费时间进行配置。我非常确定,如果路径中有空格,则需要引用。同样,这也不重要,因为这个原因,我最初的路径是“C:\Program Files\Java\blahblah”,但是它会说“C:\Program”不是命令。我认为在这种情况下,您应该使用C:\Progra~1\Java\blahblah删除引号。在environment vars中,我使用了这种表示法,但没有考虑在hadoop命令环境中使用这种表示法。