나는이 질문이 너무 기본적인 경우 Spark를 처음 접하고 있습니다. 데이터가 큐에 지속적으로 푸시되고 분석이이 데이터에서 실행되어야하는 실시간 시나리오가 있습니다. Spark가 대기열에서이 데이터를 가져옵니다. 분석은 다단계이며 RDD는 모든 단계의 중간 업데이트로 계속해서 반복되고 마지막으로 RDD 자체에서 업데이트되는 매핑을 얻습니다. 분석은 n 분마다 반복해야하며 이전 최종 상태 인 RDD + 새 데이터에서 작동해야합니다. 이러한 작업은 항상 순차적으로 실행되며 이전 작업이 완료 될 때까지 다음 작업이 실행되지 않습니다.여러 반복에 걸쳐서 Spark RDD 사용하기
언제든지 실행 데이터를 외부 저장소 또는 캐시에 게시 한 후 다음주기에 RDD를 다시 채울 수 있지만 불필요한 오버 헤드가 발생하고 성능에 영향을줍니다.
이 시나리오에 가장 적합한 방법을 제안하십시오. 캐시가 있습니까? 아니면 RDD를 유지하는 것이 해결책입니까? 캐시/지속성이 스파크에서 어떻게 작동하는지 모르겠습니다. 로컬이거나 모든 노드에서 사용할 수 있습니까? 이상적인 시나리오는 모든 노드가 데이터 덩어리를 보유하고 다음 반복을 위해 처리 지연이 거의 없을 때입니다.
Plain이 시작되면 다른 옵션은 무엇입니까?나는 당신이 점화 등등에 대해 이야기하고 있다고 생각합니다. 스트리밍과 윈도우 조작을 살펴 보았지만 카운터 등을 업데이트하는 것이 좋지만 제 시나리오에는 충분하지 않다고 생각합니다. 한 번 탐험 해보면 다시 올 것이다. – Piyush
명확한 답변을 편집했습니다 – JavierC
설명해 주셔서 감사합니다. 너의 요점이있어. 스파크를 잘못 사용하고 있다고 생각합니다. 내 응용 프로그램은 거의 실시간으로 매 5 분마다 배치를 실행하며 시나리오는 5 분 동안 스트림에 누적 된 레코드가 있으면 이전 실행의 데이터의 마지막 상태와 함께 사용해야합니다. 데이터를 저장하고 검색 할 수는 있지만 이러한 작업을 지속적으로 실행하고 있으므로 항상 마지막 실행 결과가 필요하므로 비용이 많이 듭니다. – Piyush