2017-01-19 5 views
2

Spark에서 계산하고 Cassandra에 저장하는 그래프가 있습니다.
또한 에지와 가장자리를 가진 그래프 노드를 가져 오는 끝점이있는 REST API가 있습니다.
이 2 차 그래프에는 최대 70000 개의 노드가 포함될 수 있습니다.
현재 Cassandra를 데이터베이스로 사용하지만 Cassandra의 키로 많은 데이터를 추출하는 데 많은 시간과 리소스가 필요합니다.
성능 향상을 위해 TitanDB, Neo4j 및 OriendDB를 시도했지만 Cassandra가 가장 좋은 결과를 보였습니다.
REST API에서 데이터 소스로 스파크 RDD 사용

이제 또 다른 아이디어가 있습니다. API 서비스에서 RDD (또는 GrapgX 객체 일 수도 있음)를 유지하고 지속적인 RDD에서 API 호출 필터에 필요한 데이터를 유지합니다.
RDD가 메모리에 맞는 동안 빠르게 작동하지만 디스크에 캐시하는 경우 전체 스캔 (예 : 전체 스캔 마루 파일)처럼 작동합니다. 또한 다음과 같은 문제에 직면하게 될 것으로 예상됩니다.

  • memory leak in spark;
  • 이 RDD를 업데이트하면 (이전에 unpersist 했으므로 new를 읽고 새 것으로 유지) stop API가 필요합니다.
  • 이 RDD를 사용하면 CPU 리소스를 수동으로 관리해야합니다.

아무도 그런 경험이 없습니까?

답변

0

스파크는 스토리지 엔진이 아닙니다. 할 때마다 데이터의 큰 양을 처리 할 않는 한, 당신은 고려해야합니다