如何控制在哪台主机上运行哪些任务?

时间:2014-09-30 15:04:23

标签: hadoop mapreduce apache-zookeeper giraph

我正在运行Giraph,它在我们的五个主机(四个计算节点和一个头节点)的小CDH4 Hadoop集群上执行 - 称它们为0-3和' w& #39;) - 请参阅以下版本。所有五个主机都运行mapreduce tasktracker服务,并且' w'也在运行jobtracker。我的特定Giraph应用程序(一种路径查找)的资源很紧张,我发现自动调度的主机配置的某些配置比其他配置更好。

更具体地说,我的Giraph命令(见下文)指定了四个Giraph工作者,在执行时,Hadoop(Zookeeper实际上,IIUC)创建了五个任务,我可以在jobtracker Web UI中看到:一个主人和四个奴隶。当它将三个或更多的地图任务放在' w' (例如,01www或1wwww),然后该主机最大化ram,cpu和swap,并且作业挂起。但是,当系统将工作分散得更均匀时,以便' w'只有两个或更少的任务(例如,123ww或0321w),然后工作完成。

我的问题是,1)什么程序决定任务到主机的分配,2)我该如何控制?

非常感谢!

版本

  • CDH:4.7.3
  • Giraph:编译为" giraph-1.0.0-for-hadoop-2.0.0-alpha" (CHANGELOG开头于:1.0.0版 - 2013-04-15)
  • Zookeeper客户端环境:zookeeper.version = 3.4.5-cdh4.4.0--1,建于09/04/2013 01:46 GMT

Giraph命令

hadoop jar $GIRAPH_HOME/giraph-ex.jar org.apache.giraph.GiraphRunner \
-Dgiraph.zkList=wright.cs.umass.edu:2181 \
-libjars ${LIBJARS} \
relpath.RelPathVertex \
-wc relpath.RelPathWorkerContext \
-mc relpath.RelPathMasterCompute \
-vif relpath.JsonAdjacencyListVertexInputFormat \
-vip $REL_PATH_INPUT \
-of relpath.JsonAdjacencyListTextOutputFormat \
-op $REL_PATH_OUTPUT \
-ca RelPathVertex.path=$REL_PATH_PATH \
-w 4

0 个答案:

没有答案