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

时间:2015-05-15 21:26:43

标签: hadoop apache-spark yarn

我目前正在尝试在只有4GB内存的虚拟服务器上设置一个小型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执行时,作业将永远运行。在纱线工作的日志中,我可以读到:

  

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

对我而言,这听起来似乎没有足够的资源可用!?

现在我的问题:

  1. 您是否有4GB Hadoop服务器的示例配置?
  2. 我需要更改哪个配置才能使我的Spark作业运行--master yarn-cluster
  3. 非常感谢和最诚挚的问候!

1 个答案:

答案 0 :(得分:0)

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