Apache Spark 인프라 - 컴퓨팅 및 스토리지 노드 결합

Apache Spark 인프라 - 컴퓨팅 및 스토리지 노드 결합

저는 Apache Spark에 대한 인프라 질문이 있습니다. 저는 주어진 시간에 모델링에 사용되는 최대 약 4TB의 데이터를 사용하는 그린필드 프로젝트에서 이를 출시하려고 합니다. 애플리케이션 도메인은 분석이 될 것이며 모델 교육은 실시간이 아닌 밤새 일괄적으로 수행될 것입니다.

기존의 3계층 애플리케이션은 워크로드의 데이터베이스 측면과 애플리케이션 측면을 분리했습니다. 즉, 두 개의 서로 다른 서버를 각각 스토리지 및 컴퓨팅 작업을 수행하도록 최적화할 수 있다는 의미입니다. 이를 통해 다양한 제공업체(예:작은 골짜기예를 들어) 각 애플리케이션에 최적화된 제품을 보유합니다.

Spark와 같은 새로운 프레임워크는 노드 간 데이터 이동과 이로 인해 발생하는 네트워크 부하를 방지하기 위해 두 가지 측면을 결합하는 것처럼 보이지만 이것이 인프라 수준에서 어떻게 작동하는지 궁금합니다.

사람들이 단일 시스템에 많은 양의 스토리지와 컴퓨팅 성능을 결합하고 있습니까? 내 애플리케이션에 대한 표준 시스템 토폴로지는 어떤 모습이며 이를 계획할 때 어떤 요소를 고려해야 합니까? 마지막으로, 높은 스토리지 밀도와 우수한 컴퓨팅 성능을 제공하는 블레이드 서버가 있습니까?

이상적으로는 5개 이하의 노드로 작업하고 싶지만 이와 같은 구현을 계획하는 데 도움이 되는 지침 리소스가 없습니다. 그 점에서 어떤 제안이라도 감사하겠습니다.

답변1

나는 몇 가지 리소스를 찾았으므로 내 질문에 답할 것입니다. 그러나 답변으로 제공되는 품질 답변도 표시할 것이므로 자유롭게 기여해 주시기 바랍니다. 여기에 내 생각에 대한 의견도 환영합니다.

이것링크에는 Spark용 하드웨어 프로비저닝에 대한 정보가 있으며, 제가 이해한 바로는 기본적으로 Spark를 3계층 스택의 애플리케이션 계층으로 취급할 수 있습니다. 따라서 예를 들어 스토리지 노드에서 Cassandra 또는 HBase를 실행하고 CPU와 메모리는 더 강력하지만 사용 가능한 스토리지는 적은 "애플리케이션" 노드에 Spark를 유지할 수 있습니다. 노드 사이의 10Gbps 이더넷은 이러한 사용 사례에서 중요할 것 같습니다.

처리를 수행하기 위해 궁극적으로 Hbase 데이터베이스에서 데이터를 스트리밍할 수 있다는 점을 고려하면 매우 큰 데이터 세트를 처리하는 방법에 대한 질문이 제기된다고 생각합니다. 그러나 이는 결국 애플리케이션 아키텍처로 귀결될 것이라고 생각합니다. 이 사이트의 범위를 벗어납니다.

관련 정보