關於第五章圖處理的補充說明

upo發表於2017-03-09

對應使用的Giraph版本為1.1.0-hadoop2,Hadoop版本為2.5.0-cdh5.3.1。由於https://issues.apache.org/jira/browse/GIRAPH-1110所致,部分版本的Hadoop由於不支援 Client.setPingInterval(giraphConfiguration, 60000 * 5);與Giraph不相容,可自行修復該bug後重新編譯Giraph,或使用相容的Hadoop。
作者提供的示例執行方式如下:

  • 下載github中的指定程式碼後匯入IDE編譯通
  • 將編譯好的target/GiraphCode.jar、run.sh、input.txt放置於可訪問hadoop的環境中
  • 執行run.sh指令碼即可啟動Giraph任務

注:input.txt的格式與書中描述的{vertextId}|{Type}|{comma-separated vertexId of "bitable" people}格式相符 示例如下:

2|Human|4,6
1|Zombie|2,3,8,9,10
3|Human|4,5,7
4|Human|2,3
5|Human|3
6|Human|2
7|Human|3
8|Human|9,11
9|Human|8
10|Human|
11|Human|8

對應的圖示為:

新增編號後的書中配圖

執行完畢的輸出結果為:

1|Zombie.0|2,3,8,9,10   
2|Zombie.1|4,6  
3|Zombie.1|4,5,7    
4|Zombie.2|2,3  
5|Zombie.2|3    
6|Zombie.2|2    
7|Zombie.2|3    
8|Zombie.1|9,11 
9|Zombie.1|8    
10|Zombie.1|    
11|Zombie.2|8

可自行修改input.txt增刪節點和邊,調整run.sh的worker引數,考慮它們與超步個數、Map個數等的關係,進而瞭解Giraph作為基於MapReduce的BSP是如何實現的。

相關文章