4GB 服务器的示例 Hadoop 配置?

Sample Hadoop Config for 4GB server?

我目前正在尝试在只有 4GB RAM 的虚拟服务器上设置一个小型 Hadoop 演示系统。我知道,4GB 对于 Hadoop 来说不是很多——但我现在只有这些了。 服务器应该 运行 HDFS、YARN 和 Spark(在 Yarn 上)以及其他一些与 Hadoop 无关的东西。 所以我的想法是为 OS 和其他内容保留 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 应用程序,并在其中提供了以下参数:

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

Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

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

现在我的问题:

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

非常感谢,并致以最诚挚的问候!

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