【问题标题】:Sample Hadoop Config for 4GB server?4GB 服务器的示例 Hadoop 配置?
【发布时间】:2015-07-27 22:31:33
【问题描述】:

我目前正在尝试在只有 4GB RAM 的虚拟服务器上设置一个小型 Hadoop 演示系统。我知道,对于 Hadoop,4GB 并不是很多——但这就是我目前所拥有的。 服务器应该运行 HDFS、YARN 和 Spark(在 Yarn 上)以及其他一些与 Hadoop 无关的东西。 所以我的想法是为操作系统和其他东西保留 2GB,然后为 Hadoop 进程留下 2GB。 不幸的是,我在为这种情况找到合适的配置方面有点挣扎。 到目前为止,我所拥有的是: 在 mapred-site.xml 中:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<property>
    <name>mapreduce.map.memory.mb</name>
    <value>512</value>
</property>
<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>512</value>
</property>

<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx400m</value>
</property>
<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx400m</value>
</property>

在yarn-site.xml中:

<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx400m</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>256</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>2048</value>
</property>
<property>
    <name>yarn.app.mapreduce.am.resource.mb</name>
    <value>512</value>
</property>
<property>
    <name>yarn.app.mapreduce.am.command-opts</name>
    <value>-Xmx400m</value>
</property>

现在我创建了一个非常基本的 Spark 应用程序,其中还提供了以下参数:

  • spark.executor.memory: 512m
  • spark.cores.max: 1
  • spark.driver.memory: 512m
  • spark.executor.instances: 1
  • spark.executor.cores: 1

当使用选项--master yarn-client 执行此脚本时,一切正常;但是当使用--master yarn-cluster 执行时,作业将永远运行。在 Yarn 作业的日志中,我可以看到:

初始作业没有接受任何资源;检查您的集群 UI 以确保工作人员已注册并拥有足够的资源

在我看来,这听起来好像没有足够的可用资源!?

现在我的问题:

  1. 您有 4GB Hadoop 服务器的一些示例配置吗?
  2. 我需要更改哪种配置才能让我的 Spark 作业使用 --master yarn-cluster 运行?

非常感谢您的问候!

【问题讨论】:

  • 火花版??你的配置在我看来还不错
  • 我用的是最新版本,1.3.1

标签: hadoop apache-spark hadoop-yarn


【解决方案1】:

如果您只有 4GB 的空间,请在独立本地模式(本地 [4] 或本地 [1])下运行 spark。你会得到更好的结果。如果您正在运行整个 hadoop 生态系统(YARN、datanode、YARN 节点管理器、Zookeeper 等) - 您希望如何为 Spark 留下任何资源?

【讨论】:

  • 让我吃惊的是它是在 yarn-client 模式而不是 yarn 集群模式下工作的。
  • 在纱线客户端模式下,火花驱动程序没有在纱线中运行,而在纱线集群中,您要求纱线为执行程序和驱动程序分配资源
  • 我知道。在单节点设置中,在纱线客户端模式下,您需要执行程序、驱动程序和 AM,但在纱线集群模式下,只有 AM(驱动程序在 AM 内运行)和执行程序。所以它需要更少的资源
  • 我将 yarn.scheduler.maximum-allocation-mb 和 yarn.nodemanager.resource.memory-mb 增加到 3072 - 现在它可以工作了。但我也会牢记以独立本地模式运行它的想法。感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 2017-02-20
  • 2013-05-31
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多