我运行的是giraph,它在由五台主机组成的小型cdh4hadoop集群上执行(四个计算节点和一个头节点,称为0-3和“w”)——请参阅下面的版本。所有五台主机都在运行mapreduce tasktracker服务,“w”也在运行jobtracker。我的特定giraph应用程序(一种路径查找)的资源很紧张,我发现一些任务自动调度主机的配置比其他配置工作得更好。
更具体地说,我的giraph命令(见下文)指定了四个giraph worker,在执行时,hadoop(实际上是zookeeper,iiuc)创建了我可以在jobtrackerwebui中看到的五个任务:一个主任务和四个从任务。当它将三个或更多的map任务放在“w”上(例如,01www或1www)时,该主机的ram、cpu和swap将达到最大值,作业将挂起。但是,如果系统将工作分配得更均匀,使得“w”只有两个或更少的任务(例如123ww或0321w),则作业可以正常完成。
我的问题是,1)什么程序决定了任务到宿主的分配,2)我如何控制它?
非常感谢!
版本
cdh:4.7.3
giraph:编译为“giraph-1.0.0-for-hadoop-2.0.0-alpha”(changelog开始于:release 1.0.0-2013-04-15)
zookeeper客户端环境:zookeeper.version=3.4.5-cdh4.4.0--1,构建于2013年4月9日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
暂无答案!
目前还没有任何答案,快来回答吧!