WordCount 作业是 运行 'localjobrunner' 而不是 'yarn'

WordCount job is running on 'localjobrunner' instead of 'yarn'

我是 运行在 eclipse luna 3.8 中使用 WordCount 示例。我的工作在 localjob运行ner 上 运行ning 很好,但我希望它在 yarn 集群上 运行 因为想要访问 hadoop 日志。我在某处读到如果作业在本地 运行ning 则它不会创建日志,直到它提交给资源管理器。只有当作业在 yarn 上 运行ning 时才可能将作业提交给资源管理器。

我的工作环境:

hadoop-2.6.0 运行宁作为伪分布模式。

eclipse luna 3.8.

任何帮助将不胜感激。

使用 YARN 特定配置初始化作业。在驱动中添加这些配置,

Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:8020");
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.address", "localhost:8032");

你需要 yarn-site.xml 和 core-site.xml 以及所有 yarn 和 mapreduce jar(依赖项)在你的类路径上正确。现在你可能有来自 maven 或其他东西的那些罐子,但你很可能丢失了那些配置文件。您可以在 Eclipse 中从 "Run as configuration" 的类路径中设置这些。我假设您已经使用这些配置文件在本地安装了 hadoop,并且您可以 运行 hadoop 命令。在那种情况下,您可以将类路径指向该安装的 conf 目录和 lib 目录。这可能很乏味,但首先只需指向 conf 目录(其中包含 core-site 和 yarn-site),看看是否可行。如果不是,那么还要排除 yarn 和 mapreduce 的 eclipses 本地依赖项(maven 或类似的),并从安装目录中明确设置它们。检查这篇文章为 hadoop1 设置类路径: https://letsdobigdata.wordpress.com/2013/12/07/running-hadoop-mapreduce-application-from-eclipse-kepler/

这是来自 MapR 的另一篇文章(忽略 mapr 客户端相关设置) https://mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr/

您可以对 hadoop2(yarn) 执行类似的步骤,但基本思想是您的应用程序 运行时间必须在类路径上获取正确的 jar 和配置文件才能成功将其部署到集群上。