Hadoop 워크로드에 계층적 네임스페이스가 사용 설정된 버킷 사용

이 페이지에서는 Hadoop 워크로드에 계층적 네임스페이스가 사용 설정된 버킷을 사용하는 방법을 설명합니다.

개요

계층적 네임스페이스로 Cloud Storage 버킷을 사용하는 경우 Hadoop, Spark, Hive와 같은 워크로드에 폴더 이름 바꾸기 작업을 사용하도록 Cloud Storage 커넥터를 구성할 수 있습니다.

계층적 네임스페이스가 없는 버킷에서 Hadoop, Spark, Hive의 이름 바꾸기 작업에는 여러 객체 복사 및 삭제 작업이 포함되어 성능과 일관성에 영향을 미칩니다. Cloud Storage 커넥터를 사용하여 폴더 이름을 바꾸면 객체 수가 많은 폴더를 처리할 때 성능이 최적화되고 일관성이 유지됩니다.

Dataproc

Google Cloud CLI를 사용하여 Dataproc 클러스터를 만들고 Cloud Storage 커넥터가 폴더 작업을 수행하도록 할 수 있습니다.

  1. Cloud Storage 커넥터 버전 2.2.23 이상을 설치하거나 업데이트합니다(버전 3.0.0 제외).

  2. 다음 명령어를 사용하여 Dataproc 클러스터를 만듭니다.

      gcloud dataproc clusters create CLUSTER_NAME
      --properties=core:fs.gs.hierarchical.namespace.folders.enable=true,
      core:fs.gs.http.read-timeout=30000
      

    각 항목의 의미는 다음과 같습니다.

    • CLUSTER_NAME은 클러스터의 이름입니다. 예를 들면 my-cluster입니다.
    • fs.gs.hierarchical.namespace.folders.enable은 버킷에서 계층적 네임스페이스를 사용 설정하는 데 사용됩니다.
    • fs.gs.http.read-timeout은 설정된 연결에서 데이터를 읽을 수 있는 최대 시간(밀리초)입니다. 이 설정은 선택사항입니다.

자체 관리형 Hadoop

자체 관리형 Hadoop 클러스터에서 Cloud Storage 커넥터를 사용 설정하여 폴더 작업을 수행할 수 있습니다.

  1. Cloud Storage 커넥터 버전 2.2.23 이상을 설치하거나 업데이트합니다(버전 3.0.0 제외).

  2. core-site.xml 구성 파일에 다음을 추가합니다.

        <property>
          <name>fs.gs.hierarchical.namespace.folders.enable</name>
          <value>true</value>
        </property>
        <property>
          <name>fs.gs.http.read-timeout</name>
          <value>30000</value>
        </property>
      

    각 항목의 의미는 다음과 같습니다.

    • fs.gs.hierarchical.namespace.folders.enable은 버킷에서 계층적 네임스페이스를 사용 설정하는 데 사용됩니다.
    • fs.gs.http.read-timeout은 설정된 연결에서 데이터를 읽을 수 있는 최대 시간(밀리초)입니다. 이 설정은 선택사항입니다.

Cloud Storage 커넥터 버전 3.0.0 또는 2.2.23 이전 버전과의 호환성

Cloud Storage 커넥터 버전 3.0.0 또는 2.2.23 이전 버전을 사용하거나 계층적 네임스페이스에 대한 폴더 작업을 사용 중지하면 다음과 같은 제한사항이 발생할 수 있습니다.

  • 비효율적인 폴더 이름 변경: Hadoop에서 폴더 이름 변경 작업은 객체 수준 복사 및 삭제 작업을 사용하여 수행되며, 이는 전용 rename folder 작업보다 느리고 비효율적입니다.

  • 빈 폴더 누적: 폴더 리소스가 자동으로 삭제되지 않으므로 버킷에 빈 폴더가 누적됩니다. 빈 폴더가 누적되면 다음과 같은 영향이 있습니다.

    • 명시적으로 삭제하지 않으면 스토리지 비용이 증가합니다.
    • 목록 작업의 속도를 줄이고 목록 작업 시간이 초과될 위험을 늘립니다.

  • 호환성 문제: 이전 및 최신 커넥터 버전을 함께 사용하거나 폴더 작업을 사용 설정 및 사용 중지하면 폴더 이름을 바꿀 때 호환성 문제가 발생할 수 있습니다. 커넥터 버전의 조합을 사용하는 다음 시나리오를 고려해 보세요.

    1. 2.2.23 이전 버전의 Cloud Storage 커넥터를 사용하여 다음 태스크를 수행합니다.

      1. foo/ 폴더 아래에 객체를 씁니다.
      2. 폴더 이름을 foo/에서 bar/로 바꿉니다. 이름 바꾸기 작업은 foo/ 아래의 객체를 복사하고 삭제하지만 빈 foo/ 폴더를 삭제하지 않습니다.
    2. 폴더 작업 설정이 사용 설정된 Cloud Storage 커넥터 버전 2.2.23을 사용하여 폴더 bar/foo/로 바꿉니다.

    폴더 작업이 사용 설정된 커넥터 버전 2.2.23은 기존 foo/ 폴더를 감지하여 이름 바꾸기 작업이 실패합니다. 이전 커넥터 버전에서는 폴더 작업이 사용 중지되었으므로 foo/ 폴더를 삭제하지 않았습니다.

다음 단계

직접 사용해 보기

Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Cloud Storage의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

Cloud Storage 무료로 사용해 보기