【发布时间】: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 以确保工作人员已注册并拥有足够的资源
在我看来,这听起来好像没有足够的可用资源!?
现在我的问题:
- 您有 4GB Hadoop 服务器的一些示例配置吗?
- 我需要更改哪种配置才能让我的 Spark 作业使用
--master yarn-cluster运行?
非常感谢您的问候!
【问题讨论】:
-
火花版??你的配置在我看来还不错
-
我用的是最新版本,1.3.1
标签: hadoop apache-spark hadoop-yarn