2017-01-13 5 views
0

시스템의 구성 요소를 확장하고 Storm (Trident)과 Spark간에 더 좋은 방법이되어야한다고 생각합니다.스파크 또는 스톰 (Trident)

그래서 우리는 redis 클러스터 내부에 저장된 최대 백만 개의 이벤트를 포함 할 수있는 2 개의 큰 세트를 가지고 있습니다. S1과 S2를 말하십시오.

이제 우리는 메시징 큐 (Kafka)에서 메시지를 읽고 S1과 S2 (기본적으로 ** S1∩S2을 찾습니다)에있는 모든 요소를 ​​찾아야합니다. 이제 작은 세트를 위해 Redis 자체가 효율적으로 교차를 할 수 있지만, 우리는이 세트의 크기가 백만 개가 될 것으로 예상합니다. **

위의 해결 방법은 분산 계산 프레임 워크 (즉, Storm and Spark) .

나는 스톰과 함께 기본적인 스파우트와 볼트에 대해 약간의 경험이 있으며, 볼트의 내부에 논리의 논리를 써야하므로 효율적으로 작동하지 않을 것이라고 생각합니다. 트라이던트가 어떤 용도로 쓰일 수 있는지 알아보고 있지만, 적절하지 않을 수도 있습니다.

반면에 스파크는 교착 상태와 같은 작업을 제공하는 코어에서 RDD를 제공하며 상자 밖에서 동시에 처리 할 수 ​​있으며 내 생각에 메시징 큐에서 메시지를 읽고 스파크 할 작업을 제출합니다 클러스터는 redis에서 읽고 S1∩S2를 효율적으로 계산합니다. 그래서, Spark이 우리의 유스 케이스에 적합 할 수 있다고 생각합니다. 스톰과 스파크 모두 도움이 될 경우 스톰 사용을 위해 기울어 질 것입니다.

여기에 누구도 일부 시각을 제공 할 수 있습니까?

답변

1

면책 조항 : Flink and Storm의 커미터이고 Kafka Streams에 중점을 둔 Confluent의 소프트웨어 엔지니어로 일하고 있습니다.

나는 Spark의 세부 사항에 익숙하지 않지만 일괄 처리 운영자와 같은 "intersect"소리가납니다. Spark Streaming에서 사용할 수 있는지 확실하지 않으므로 이것을 다시 확인해야합니다. Spark to Storm을 비교하면서 Spark Streaming을 사용하고 싶습니다.) 일괄 처리를 원할 경우 Spark와 함께 "intersect"연산자를 사용하는 것이 합리적입니다.

스트림 처리에서 "교차"를 수행하는 것이 일괄 처리와 다릅니다. 그러나 기본적으로 조인 작업이므로 시스템을 제공하는 적절한 조인 연산자가있는 한이를 구현하는 것이 어렵지 않습니다.

카프카의 소비자 메시지라고 말하면서 카프카의 스트림 처리 라이브러리 Kafka Streams을 사용해 볼 가치가 있습니다. 따라서 추가 시스템을 실행할 필요가 없습니다. Kafka Streams는 슬라이딩 윈도우 조인 (sliding-window-joins)을 포함한 풍부한 DSL을 제공합니다.

스트림 처리 프레임 워크를 사용하려면 폭풍 (또는 스파크)보다 (IMHO) Flink을 사용하는 것이 좋습니다.) 입력에 대한 http://docs.confluent.io/current/streams/index.html

+0

감사 마티아스 :

는 카프카 스트림의 아파치 카프카의 문서보다 더 자세히 설명되어 있습니다 플루의 카프카 스트림 문서 참조 –