2016-08-25 4 views
1

위키피디아 (스페인어 판) 사이트를 통해 BFS 검색을하고 있습니다. dump을 Giraph로 읽을 수있는 파일로 변환했습니다.giraph.numInputThreads "input superstep"에 대한 실행 시간은 1 또는 8 개의 쓰레드를 사용하는 것과 같습니다. 어떻게 가능합니까?

1 명의 작업자를 사용하여 1GB 파일에 452 초가 걸렸습니다. 나는이 명령을 Giraph을 실행 :

/home/hadoop/bin/yarn jar /home/hadoop/giraph/giraph.jar ar.edu.info.unlp.tesina.lectura.grafo.BusquedaDeCaminosNavegacionalesWikiquote -vif ar.edu.info.unlp.tesina.vertice.estructuras.IdTextWithComplexValueInputFormat -vip /user/hduser/input/grafo-wikipedia.txt -vof ar.edu.info.unlp.tesina.vertice.estructuras.IdTextWithComplexValueOutputFormat -op /user/hduser/output/caminosNavegacionales -w 1 -yh 120000 -ca giraph.metrics.enable=true,giraph.useOutOfCoreMessages=true 

컨테이너 로그 : 너희들이 볼 수 있듯이

16/08/24 21:17:02 INFO master.BspServiceMaster: generateVertexInputSplits: Got 8 input splits for 1 input threads 
16/08/24 21:17:02 INFO master.BspServiceMaster: createVertexInputSplits: Starting to write input split data to zookeeper with 1 threads 
16/08/24 21:17:02 INFO master.BspServiceMaster: createVertexInputSplits: Done writing input split data to zookeeper 
16/08/24 21:17:02 INFO yarn.GiraphYarnTask: [STATUS: task-0] MASTER_ZOOKEEPER_ONLY checkWorkers: Done - Found 1 responses of 1 needed to start superstep -1 
16/08/24 21:17:02 INFO netty.NettyClient: Using Netty without authentication. 
16/08/24 21:17:02 INFO netty.NettyClient: connectAllAddresses: Successfully added 1 connections, (1 total connected) 0 failed, 0 failures total. 
16/08/24 21:17:02 INFO partition.PartitionUtils: computePartitionCount: Creating 1, default would have been 1 partitions. 
... 
16/08/24 21:25:40 INFO netty.NettyClient: stop: Halting netty client 
16/08/24 21:25:40 INFO netty.NettyClient: stop: reached wait threshold, 1 connections closed, releasing resources now. 
16/08/24 21:25:43 INFO netty.NettyClient: stop: Netty client halted 
16/08/24 21:25:43 INFO netty.NettyServer: stop: Halting netty server 
16/08/24 21:25:43 INFO netty.NettyServer: stop: Start releasing resources 
16/08/24 21:25:44 INFO bsp.BspService: process: cleanedUpChildrenChanged signaled 
16/08/24 21:25:47 INFO netty.NettyServer: stop: Netty server halted 
16/08/24 21:25:47 INFO bsp.BspService: process: masterElectionChildrenChanged signaled 
16/08/24 21:25:47 INFO master.MasterThread: setup: Took 0.898 seconds. 
16/08/24 21:25:47 INFO master.MasterThread: input superstep: Took 452.531 seconds. 
16/08/24 21:25:47 INFO master.MasterThread: superstep 0: Took 64.376 seconds. 
16/08/24 21:25:47 INFO master.MasterThread: superstep 1: Took 1.591 seconds. 
16/08/24 21:25:47 INFO master.MasterThread: shutdown: Took 6.609 seconds. 
16/08/24 21:25:47 INFO master.MasterThread: total: Took 526.006 seconds. 

, 첫 번째 줄에 입력 superstep는 스레드 실행라고 우리에게 이야기한다. 마무리 Superstep에서 492 초가 걸렸습니다.

내가했다, 8 개 스레드를 입력 superstep을 할 tryng, giraph.numInputThreads = 8을 사용하여 다른 테스트 :

/home/hadoop/bin/yarn jar /home/hadoop/giraph/giraph.jar ar.edu.info.unlp.tesina.lectura.grafo.BusquedaDeCaminosNavegacionalesWikiquote -vif ar.edu.info.unlp.tesina.vertice.estructuras.IdTextWithComplexValueInputFormat -vip /user/hduser/input/grafo-wikipedia.txt -vof ar.edu.info.unlp.tesina.vertice.estructuras.IdTextWithComplexValueOutputFormat -op /user/hduser/output/caminosNavegacionales -w 1 -yh 120000 -ca giraph.metrics.enable=true,giraph.useOutOfCoreMessages=true,giraph.numInputThreads=8 

결과 것은 한 다음되었습니다

16/08/24 21:54:00 INFO master.BspServiceMaster: generateVertexInputSplits: Got 8 input splits for 8 input threads 
16/08/24 21:54:00 INFO master.BspServiceMaster: createVertexInputSplits: Starting to write input split data to zookeeper with 1 threads 
16/08/24 21:54:00 INFO master.BspServiceMaster: createVertexInputSplits: Done writing input split data to zookeeper 
... 

16/08/24 22:10:07 INFO master.MasterThread: setup: Took 0.093 seconds. 
16/08/24 22:10:07 INFO master.MasterThread: input superstep: Took 891.339 seconds. 
16/08/24 22:10:07 INFO master.MasterThread: superstep 0: Took 66.635 seconds. 
16/08/24 22:10:07 INFO master.MasterThread: superstep 1: Took 1.837 seconds. 
16/08/24 22:10:07 INFO master.MasterThread: shutdown: Took 6.605 seconds. 
16/08/24 22:10:07 INFO master.MasterThread: total: Took 966.512 seconds. 

그래서, 내를 질문은, Giraph가 입력 스레드없이 452 초를 사용하고 어떻게 891 초를 사용할 수 있습니까? exacly 반대편, 맞죠?

이 용도로 사용 된 클러스터는 AWS의 r3.8x2 EC2 인스턴스 인 마스터 1 개와 슬레이브 1 개입니다.

답변

0

이 문제는 HDFS 액세스와 관련이 있습니다. 해당 리소스가 순차적 인 방식으로 액세스 될 수있는 경우 동일한 리소스에 액세스하는 8 개의 스레드가 있습니다. 최상의 성능을 얻으려면 giraph.numInputThreads가 2 또는 1이어야합니다.