2017-01-02 7 views
0

Giraph로 실험하고 있습니다. Giraph에서 알고리즘을 실행하려면 그래프 데이터가 꼭지점 입력 형식이어야합니다. 온라인에서 사용할 수있는 거의 모든 빅 데이터는 Edge List 형식으로되어 있습니다. Java에서이 Edge List 형식을 VertexInputFormat으로 변환하는 코드를 작성했습니다. 이것은 거의 800k 에지가있는 작은 그래프에서 작동합니다. 그러나 내가 필요로하는 그래프의 경우 프로그램을 실행할 때마다 힙 공간이 오류를 초과했습니다. 나는 힙 크기를 최대로 늘려 보았습니다. 여전히 오류가 지속되었습니다.그래프 데이터를 모서리 입력 형식에서 정점 입력 형식으로 변환

내가 실행중인 파일의 크기는 약 15GB입니다.

알고리즘 (PageRank, SingleSourceShortestPath 등 ..)이 Giraph로 작성된 방법에 대해서는 잘 모릅니다 만, 모두 VertexInputFormat의 그래프를 입력으로 사용한다는 것을 알고 있습니다.

내가 찾고 있어요 도움말은 다음과 같습니다

  1. 최적화 된 코드는
  2. 이 변환에 도움이 (또는) 할 수있는 모든 온라인 도구
  3. 페이지 랭크 (PageRank) 알고리즘 VertexInputFormat에 EdgeInputFormat 변환 (또는) 해당 EdgeInputFormat을 입력으로 사용합니다.

답변

0

죄송 합니다만, 왜 VertexInputFormat만을 사용하고 싶으신가요? Giraph는 EdgeInputFormat API도 제공하고 있습니다. 왜 사용할 수 없습니까?

+0

공식 페이지에서 Giraph를 다운로드했으며 이미 컴파일되어 있으며 사용할 수있는 스냅 샷이 있습니다. 나는 이것이 디폴트로 구현 된 모든 알고리즘의 스냅 샷이라는 것을 이해했다. 이것들은'$ GIRAPH_HOME/giraph-examples /../ org/apache/giraph/examples' 폴더에서도 사용 가능합니다. 이 폴더의 모든 알고리즘은 VertexInputFormat에서 입력을받습니다. EdgeInputFormat API에 대해 언급했습니다. 더 많은 통찰력을 제공해 주시겠습니까? 관심을 가져 주셔서 감사합니다. –

+0

사용 가능한 모든 입력 형식에 대해 giraph-core /.../ org/apache/giraph/io/formats 폴더를 확인할 수 있습니다. 프로그램을 실행할 때 간단히 -eif 라고 말하면됩니다 (eif는 가장자리 입력 형식) 및 -12if(가장자리 입력 경로) 대신 -vif 및 -vip을 입력하십시오. 또한 독자적인 입력 형식을 구현할 수도 있습니다. – saleem