【问题标题】:WordCount job is running on 'localjobrunner' instead of 'yarn'WordCount 作业在“localjobrunner”而不是“yarn”上运行
【发布时间】:2017-09-30 09:08:51
【问题描述】:

我在 eclipse luna 3.8 中运行 WordCount 示例。我的工作在 localjobrunner 上运行良好,但我希望它在纱线集群上运行,因为想要访问 hadoop 日志。我在某处读到,如果作业在本地运行,那么在提交给资源管理器之前它不会创建日志。只有当作业在纱线上运行时,才能将作业提交给资源管理器。

我的工作环境:

hadoop-2.6.0 以伪分发模式运行。

日食月神 3.8.

任何帮助将不胜感激。

【问题讨论】:

  • 您想访问哪些 hadoop 日志?节点管理器和资源管理器日志?如果您正在谈论您的应用程序日志,那么当您从 Eclipse 运行它时,它们(映射器和减速器日志)应该在控制台上可用。关于在 YARN 上运行它而不是本地模式,请查看我的答案。
  • 实际上我已经更改了编码并想检查我的更改是否反映了。为此,我需要节点管理器的日志。
  • nodemanager 或 WordCount 示例的更改编码?

标签: eclipse hadoop local hadoop-yarn word-count


【解决方案1】:

使用 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");

【讨论】:

  • 我已经通过终端设置了这个属性。但我在 Eclipse 中运行作业,它在 localjobrunner 上运行,而不是在 yarn 框架上。我希望你能理解我想表达的意思。
  • 在哪里添加这些配置??它在我的 WordCount 程序中吗?
  • 是的。在您的 Driver 类中。
  • 我添加了,但它仍然在 localjobrunner 上运行,而不是在 yarn 上
【解决方案2】:

您需要在您的类路径以及所有 yarn 和 mapreduce jar(依赖项)上正确地安装 yarn-site.xml 和 core-site.xml。现在你可能有来自 maven 的那些 jars 或其他东西,但你很可能错过了这些配置文件。您可以在 Eclipse 中的“作为配置运行”的类路径中设置这些。我假设您使用这些配置文件安装了本地 hadoop,并且您可以运行 hadoop 命令。在这种情况下,您可以将您的类路径指向该安装的 conf 目录和 lib 目录。这可能很乏味,但首先只需指向 conf dir(其中包含 core-site 和 yarn-site),看看是否可行。如果没有,那么还要排除你的 Eclipse 本地依赖项(maven 或类似的)yarn 和 mapreduce,并从你的安装目录中显式设置它们。检查这篇文章以设置 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 和配置文件,才能成功地将其部署到集群上。

【讨论】:

  • 正如你所提到的......我有这些配置文件的本地hadoop安装,我能够很好地从终端运行hadoop命令。但是当我将这些 hadoop jar 导入到 eclipse 中时,我在 xml 文件(hdfs、core、mapred、yarn)中设置的属性不会反映在 eclipse 中,并且 eclipse 会采用默认属性(比如我从终端将 dfs.replication 值设置为 1当我从 Eclipse 运行作业时,它会显示复制值 3)。我不知道如何解决它,我是第一次使用eclipse。
  • 这表明您的 Eclipse 构建路径中有其他 jars/config 文件覆盖了您打算使用的 jars。你在eclipse中使用maven作为构建工具和依赖管理吗?
  • 问题已解决,因为我没有在 Eclipse 中指向 xml 文件位置。现在我将 /usr/local/hadoop/etc/hadoop(contain all xml files) 文件夹添加到 eclipse 并且它工作了..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
相关资源
最近更新 更多