2017-03-13 1 views
0

나는 Cassandra와 Spark를 함께 사용하는 것이 상대적으로 인기가 있음을 알았다.Cassandra와 함께 Spark을 사용할 때의 이점

나는 Cassandra가 일관성보다 신뢰성을 제공하는 BigData 솔루션이므로 실시간 시스템에 적합하다는 것을 알고 있습니다. 또한 쿼리에 대해 SQL과 유사한 구문을 제공하지만 일반 데이터베이스와는 다른 방식으로 데이터를 관리합니다.

반면에 Hadoop은 안정성에 대한 일관성을 제공하므로 분석 시스템에 적합합니다. 그것의 인터페이스는 MapReduce 다. 요즘은 상당히 느리고 너무 낮다. Sparks는 Hadoop의 HDFS를 사용하고 이전 MapReduce를 하드 디스크보다는 메모리를 더 많이 사용하는 더 나은 아키텍처로 대체하고 RDD 및 데이터 프레임과 같은 더 우수한 인터페이스를 제공합니다.

제 질문은 : 왜 Cassandra와 결합 된 Spark를 사용하고 싶습니까? 그 이점은 무엇입니까? 왜 그 중 하나만 사용하지 않으시겠습니까?

내가 아는 한 Cassandra는 단지 HDFS를 대체 ​​할 것이므로 일관성에 대한 신뢰성이 있어야하며 CQL 대신 RDD/dataframes를 사용해야하며 스파크는 CQL을 생성합니다. 나에게 통제력이 떨어진다.

답변

2

HDFS는 "파일 시스템"으로, 그 위에 거치대가 있습니다.

hbase, hive 등의 hadoop 및 hdfs를 실행하고 분산 아키텍처를 활용하는 많은 데이터베이스 엔진이 있습니다.

당신은 hadoop에서 spark를 실행할 필요가 없으며, 독립적으로 실행할 수 있습니다.

카산드라의 CQL은 매우 기본적입니다. 최신 버전에 기본 집계 함수가 추가되었지만 Cassandra는 분석 워크로드 용으로 설계되지 않았으므로 분석 쿼리를 실행하는 데 어려움을 겪고 클러스터 성능을 "중지"합니다.

ntfs와 mysql을 비교할 수없는 것처럼 HDFS와 Cassandra를 비교할 수 없습니다. Cassandra는 Dynamo (AWS) 및 BigTable (Google) 개념을 기반으로 무거운 작업량과 손쉬운 확장을 위해 설계되었으며 초당 매우 많은 요청을 처리 할 수 ​​있습니다. HBase와 같은 hadoop에서 실행되는 대안이 있습니다. Cassandra는 내가 본 모든 벤치 마크에서 이깁니다 (벤치 마크는 믿지 않지만 항상 데이터로 테스트하고 유스 케이스로 테스트합니다).

그래서 Spark이 해결하려고하는 것은 Cassandra에있는 데이터 위에 분석 쿼리를 실행하는 것입니다. Spark을 사용하면 많은 소스 (RDBMS, 파일, hadoop 등)에서 데이터를 가져 와서 해당 데이터에 대한 분석 쿼리를 실행할 수 있습니다.또한

, 일관성을 통해이

신뢰성, 따라서

하는 것은 매우 잘못된 실시간 시스템에 적합하다. Cassandra가 제공 할 수없는 일관성 (결과가 아님), 직렬화, 트랜잭션 등을 필요로하는 많은 실시간 시스템이 있습니다 ...

2

스파크는 데이터 처리 프레임 워크입니다. Spark로 프로세스에 데이터를 보냅니다.

카산드라는 DBMS입니다. 데이터를 카산드라에 저장하십시오.

CQL을 사용하여 Cassandra에서 데이터를 처리 할 수 ​​있으며 CQL을 사용하여 빠져 나갈 수 있다면 Spark가 필요하지 않을 것입니다. 그러나 일반적으로 스파크는 더 강력한 도구입니다. 실제로 많은 사람들이 Spark를 사용하여 외부 소스에서 데이터를 수신하고이를 처리하고 이미 처리 된 데이터를 Cassandra에 저장합니다.

0

Cassandra는 분석을위한 기능면에서 매우 제한적입니다.
예를 들어 CQL은 단일 파티션 내에서 집계를 지원하며 테이블 조인이 없습니다.
Spark은 스트리밍 처리 엔진이며 HDFS 또는 데이터베이스의 데이터를 사용할 수 있습니다. 따라서 전체 데이터 세트 중 데이터를 심층적으로 분석하려면 Spark를 사용해야합니다. 카산드라 및 빅 데이터에 대한 자세한 내용을보실 수 있습니다 here

관련 문제