Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Giraph';s估计的群集堆4096MB ask大于当前可用的群集堆0MB。中止工作_Java_Hadoop_Graph_Amazon Ec2_Giraph - Fatal编程技术网

Java Giraph';s估计的群集堆4096MB ask大于当前可用的群集堆0MB。中止工作

Java Giraph';s估计的群集堆4096MB ask大于当前可用的群集堆0MB。中止工作,java,hadoop,graph,amazon-ec2,giraph,Java,Hadoop,Graph,Amazon Ec2,Giraph,我正在5节点集群上使用Hadoop2.5.2运行Giraph。但是,当我尝试运行SimpleShortestPath计算示例时,出现以下错误: 线程“main”java.lang.IllegalStateException中的异常:Giraph的 估计的群集堆2000MB ask大于当前 可用的群集堆为0MB。中止工作 到目前为止,我还无法确定为什么Giraph认为集群有0MB堆。我分别在warn-env.sh和HADOOP-env.sh中设置了warn_HEAPSIZE和HADOOP_HEAP

我正在5节点集群上使用Hadoop2.5.2运行Giraph。但是,当我尝试运行SimpleShortestPath计算示例时,出现以下错误:

线程“main”java.lang.IllegalStateException中的异常:Giraph的 估计的群集堆2000MB ask大于当前 可用的群集堆为0MB。中止工作

到目前为止,我还无法确定为什么Giraph认为集群有0MB堆。我分别在warn-env.sh和HADOOP-env.sh中设置了warn_HEAPSIZE和HADOOP_HEAPSIZE,在warn-site.xml中我有:

 <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>8960</value>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
  </property>

warn.nodemanager.resource.memory-mb
8960
warn.scheduler.minimum-allocation-mb
2048

知道这是怎么回事吗?

这原来是一个环境问题。基本上,所发生的是这样的:Giraph向Thread ResourceManager请求一个正在运行的节点列表,并汇总列出的节点上可用的堆,然后将其与自己估计的需要多少堆进行比较。在我的例子中,我的设置中的一个小故障导致Thread无法列出任何节点,因此Giraph认为集群可以使用0MB堆

根本问题有两个方面:

  • 我正在EC2上运行,但忘记将端口8032添加到安全组,这样节点就可以连接到资源管理器
  • 我忘记设置Thread resourcemanager主机名属性,因此节点最初尝试连接到0.0.0.0 一旦这两个问题得到解决,这个问题就消失了