관리자/작업자 모드로 Apache Spark 클러스터 배치

Apache Spark는 데이터 분석을 위한 오픈 소스 클러스터 컴퓨팅 프레임워크입니다. Oracle Cloud InfrastructureApache Spark 기반 Big Data 애플리케이션을 실행 및 관리할 수 있는 안정적인 고성능 플랫폼을 제공합니다.

구조

이 구조는 manager/worker 모델을 사용하여 Oracle Cloud Infrastructure에 Apache Spark 클러스터를 배치합니다. 여기에는 컴퓨트 인스턴스에서 실행되는 Manager 노드와 세 개의 작업자 노드가 있습니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

다음은 spark-oci-png.png에 대한 설명입니다.
spark-oci-png.png 그림에 대한 설명

spark-oci-oracle.zip

아키텍처에는 다음과 같은 구성 요소가 있습니다:

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지역입니다. 지역은 다른 지역과 독립적이며 방대한 거리는 국가 또는 대륙에서 분리할 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 지역 내의 독립적인 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용 한도를 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인의 실패는 영역의 다른 가용성 도메인에 영향을 주지 않습니다.

  • 결함 도메인

    결함 도메인은 가용성 도메인 내에서 하드웨어와 기반구조의 그룹화입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 배포할 때 응용 프로그램은 결함 도메인 내에서 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN는 Oracle Cloud Infrastructure 지역에서 설정하는 사용자정의 가능한 소프트웨어 정의 네트워크입니다. VCN은 기존의 데이터 센터 네트워크와 마찬가지로 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN 에는 VCN를 생성한 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. 영역 또는 가용성 도메인으로 범위를 지정할 수 있는 서브넷으로 VCN를 세그먼트화할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 서브넷 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • Apache Spark 관리자 및 근로자

    Apache Spark Manager를 호스트하는 컴퓨트 인스턴스는 지역별 공용 서브넷에 연결됩니다. 작업자가 지역별 개인 서브넷에 연결됩니다.

  • 블록 스토리지

    블록 저장 영역 볼륨을 사용하면 저장 영역 볼륨을 생성, 연결, 접속 및 이동하고 저장 영역, 성능 및 응용 프로그램 요구 사항에 맞게 볼륨 성능을 변경할 수 있습니다. 볼륨을 연결하여 인스턴스에 연결한 후 일반 하드 드라이브처럼 볼륨을 사용할 수 있습니다. 데이터 손실 없이 볼륨을 연결 해제하고 다른 인스턴스에 연결할 수도 있습니다.

    이 구조에 대해 제공된 Terraform 빠른 시작 템플리트는 각 작업자 노드에 대해 700GB 블록 볼륨을 프로비전합니다. 구조를 배치하는 동안 블록 볼륨의 수와 크기를 선택할 수 있습니다.

    아키텍처는 볼륨과 연결된 인스턴스 간의 통신에 TCP/IP 기반 표준인 iSCSI를 사용합니다.

  • 인터넷 게이트웨이

    인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.

  • NAT(네트워크 주소 변환) 게이트웨이

    NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 수신 인터넷 연결에 리소스를 노출하지 않고도 인터넷의 호스트에 접근할 수 있습니다.

권장 사항

요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용하십시오.

  • VCN

    VCN를 생성할 때 VCN의 서브넷에 연결할 리소스 수에 따라 필요한 CIDR 블록 수 및 각 블록 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온-프레미스 데이터 센터 또는 다른 클라우드 제공자) 와 겹치지 않는 CIDR 블록을 선택합니다.

    VCN를 생성한 후 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 동일한 서브넷에 연결합니다. 이 서브넷은 보안 경계 역할을 할 수 있습니다.

    지역 서브넷을 사용합니다.

  • 컴퓨트 구성

    이 구조는 관리자 노드와 작업자 노드 모두에 대해 VM.Standard2.1 구성의 Oracle Linux 7 . 7 OS 이미지를 사용합니다. 응용 프로그램에 더 많은 메모리, 코어 또는 네트워크 대역폭이 필요한 경우 다른 구성을 선택할 수 있습니다.

  • Apache Spark 및 Hadoop

    Apache Spark 만 실행할 수 있지만 이 아키텍처에서는 Hadoop에서 실행됩니다.

    이 구조에서 단일 관리자 노드와 세 개의 작업자 노드가 Apache Spark 클러스터의 일부로 배치됩니다.

  • 보안
    • Oracle Cloud Guard를 사용하여 Oracle Cloud Infrastructure의 리소스 보안을 사전 예방적으로 모니터하고 유지 관리할 수 있습니다. Cloud Guard는 정의할 수 있는 감지기 레시피를 사용하여 리소스의 보안 취약점을 검사하고 운영자 및 사용자의 위험 작업을 모니터합니다. 잘못된 구성 또는 비보안 작업이 감지되면 Cloud Guard는 해결 조치를 권장하고 정의할 수 있는 응답자 레시피를 기반으로 해당 작업을 수행할 수 있도록 지원합니다.

    • 최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 최적의 방법을 기반으로 하는 보안 정책의 Oracle 정의 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 Oracle Cloud Infrastructure는 security-zone 레시피의 정책에 대해 작업을 검증하고 정책을 위반하는 작업을 거부합니다.

고려 사항

  • 성능

    관리자 및 작업자 노드 모두에 대해 컴퓨트 인스턴스에 베어메탈 구성을 사용하는 것이 좋습니다. 베어메탈 Spark 클러스터에서 Big Data 애플리케이션을 실행하여 상당한 성능 이점을 얻을 수 있습니다.

  • 가용성

    결함 도메인은 단일 가용성 도메인 내에서 최상의 복원성을 제공합니다. 여러 가용성 도메인에서 동일한 작업을 수행하는 컴퓨트 인스턴스를 배치할 수 있습니다. 이 설계는 중복성을 도입하여 단일 실패 지점을 제거합니다.

    고가용성을 위해 추가 Spark Manager 노드를 백업으로 만들 수도 있습니다.

  • 확장성

    인스턴스 풀과 자동 스케일링 기능을 사용하여 애플리케이션의 스케일을 조정할 수 있습니다.

    • 인스턴스 풀을 사용하면 동일한 영역 내에서 동일한 구성을 기반으로 여러 컴퓨트 인스턴스를 프로비전하고 생성할 수 있습니다.
    • 자동 크기 조정을 사용하면 CPU 활용률과 같은 성능 측정항목을 기반으로 인스턴스 풀의 컴퓨트 인스턴스 수를 자동으로 조정할 수 있습니다.
  • 저장 영역

    블록 볼륨 대신 Oracle Cloud Infrastructure Object Storage를 사용하여 데이터를 저장할 수 있습니다. 오브젝트 스토리지를 사용하는 경우 전용 서브넷의 노드에서 연결하기 위한 서비스 게이트웨이를 생성합니다.

    Oracle는 HDFS(Hadoop Distributed File System) Connector for Oracle Cloud Infrastructure Object Storage도 제공합니다. HDFS 커넥터를 사용하면 Apache Hadoop 애플리케이션이 오브젝트 스토리지에 대한 데이터를 읽고 쓸 수 있습니다.

  • 관리 용이성

    이 구조는 Terraform를 사용하여 기반 구조를 생성하고 Spark 클러스터를 배치합니다.

    대신 완전히 관리되는 서비스인 Oracle Cloud Infrastructure Data Flow를 사용하여 다양한 사용자 인터페이스를 통해 개발자와 데이터 과학자가 클러스터, 운영 팀 또는 고도로 특수한 Spark 지식 없이도 모든 규모에서 Apache Spark 애플리케이션을 생성, 편집 및 실행할 수 있습니다. 완전 관리형 서비스로서 배포 또는 관리할 인프라가 없습니다.

  • 보안

    정책을 사용하여 Oracle Cloud Infrastructure 리소스에 액세스할 수 있는 사용자 및 수행할 수 있는 작업을 제한합니다.

배치

이 참조 구조를 배치하는 데 필요한 코드는 GitHub에서 사용할 수 있습니다. 한 번의 클릭으로 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와서 스택을 생성하고 배치할 수 있습니다. 또는 Terraform CLI를 사용하여 GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자정의하고, 구조를 배치합니다.

  • Oracle Cloud Infrastructure Resource Manager를 사용하여 배치:
    1. Oracle Cloud에 배치누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 조건 및 조항을 검토하고 동의합니다.
    3. 스택을 배치할 영역을 선택합니다.
    4. 화면의 프롬프트 및 지침에 따라 스택을 만듭니다.
    5. 스택을 생성한 후 Terraform 작업 을 누르고 계획 을 선택합니다.
    6. 작업이 완료될 때까지 기다렸다가 계획을 검토합니다.

      변경하려면 스택 세부정보 페이지로 돌아가서 스택 편집 을 누르고 필요한 변경을 수행합니다. 그런 다음 계획 작업을 다시 실행합니다.

    7. 더 이상 변경할 필요가 없는 경우 스택 세부 정보 페이지로 돌아가서 Terraform 작업 을 누르고 적용 을 선택합니다.
  • Terraform CLI를 사용하여 배치합니다:
    1. GitHub로 이동합니다.
    2. 저장소를 로컬 컴퓨터에 복제하거나 다운로드합니다.
    3. README 문서의 지침을 따릅니다.

변경 로그

이 로그에는 중요한 변경사항이 나열됩니다: