Hadoop 클러스터 만들기

Dataproc을 사용하여 Bigtable 인스턴스에 연결하고 Hadoop 작업을 실행할 수 있는 Compute Engine 인스턴스를 한 개 이상 만들 수 있습니다. 이 페이지에서는 Dataproc을 사용해 다음 작업을 자동화하는 방법을 설명합니다.

  • Hadoop 및 자바용 HBase 클라이언트 설치
  • Hadoop 및 Bigtable 구성
  • Bigtable에 올바른 승인 범위 설정

Dataproc 클러스터를 만든 후에 클러스터를 사용하여 Bigtable에서 데이터를 읽고 쓰는 Hadoop 작업을 실행할 수 있습니다.

이 페이지에서는 Hadoop에 이미 익숙하다고 가정합니다. Dataproc에 대한 자세한 내용은 Dataproc 문서를 참조하세요.

시작하기 전에

시작하기 전에 다음 작업을 완료해야 합니다.

  • Bigtable 인스턴스를 만듭니다. 프로젝트 ID와 Bigtable 인스턴스 ID를 기록합니다.
  • API Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON 사용 설정

    API 사용 설정

  • storage.objects.get 권한이 포함된 역할에 사용자 계정이 있는지 확인합니다.

    Google Cloud Console에서 IAM 페이지를 엽니다.

    IAM 페이지 열기

  • Google Cloud CLI 설치 자세한 내용은 gcloud CLI 설정 안내를 참조하세요.
  • 다음 명령어를 실행하여 gsutil 도구를 설치합니다.
    gcloud components install gsutil
  • 샘플 Hadoop 작업을 실행하는 데 사용되는 Apache Maven을 설치합니다.

    Debian GNU/Linux나 Ubuntu에서 다음 명령을 실행합니다.

    sudo apt-get install maven

    RedHat Enterprise Linux나 CentOS에서 다음 명령을 실행합니다.

    sudo yum install maven

    MacOS에서 Homebrew를 설치하고 다음 명령을 실행합니다.

    brew install maven
  • Bigtable을 사용하는 Hadoop 작업의 예가 들어 있는 GitHub 저장소인 GoogleCloudPlatform/cloud-bigtable-examples를 복제합니다.
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Cloud Storage 버킷 만들기

Dataproc은 Cloud Storage 버킷을 사용하여 임시 파일을 저장합니다. 파일 이름 충돌을 방지하려면 Dataproc용 버킷을 새로 만들어야 합니다.

Cloud Storage 버킷 이름은 모든 버킷에서 전역적으로 고유해야 합니다. 사용이 가능할 확률이 높은 버킷 이름(예: Google Cloud 프로젝트 이름이 포함된 이름)을 선택합니다.

이름을 선택한 후 다음 명령어를 사용하여 새 버킷을 만들고 대괄호의 값을 적절한 값으로 바꿉니다.

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

Dataproc 클러스터 만들기

다음 명령어를 실행하여 4개의 워커 노드가 있는 Dataproc 클러스터를 만듭니다. 이때 대괄호 안의 값을 적절한 값으로 바꿉니다.

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

추가적인 구성 설정은 gcloud dataproc clusters create 문서를 참조하세요. Insufficient 'CPUS' quota 텍스트가 포함된 오류 메시지가 표시되는 경우 --num-workers 플래그를 더 낮은 값으로 설정해봅니다.

Dataproc 클러스터 테스트

Dataproc 클러스터를 설정한 후에 텍스트 파일에 단어가 표시되는 횟수를 계산하는 샘플 Hadoop 작업을 실행하여 클러스터를 테스트할 수 있습니다. 샘플 작업은 Bigtable을 사용하여 작업 결과를 저장합니다. 자체적인 Hadoop 작업 설정 시 이 샘플 작업을 참조로 사용할 수 있습니다.

샘플 Hadoop 작업 실행

  1. GitHub 저장소를 클론한 디렉터리에서 java/dataproc-wordcount 디렉터리로 변경합니다.
  2. 다음 명령어를 실행하여 프로젝트를 빌드합니다. 이때 대괄호 안의 값을 적절한 값으로 바꿉니다.

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. 다음 명령어를 실행하여 Hadoop 작업을 시작합니다. 이때 대괄호 안의 값을 적절한 값으로 바꿉니다.

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

작업이 완료되면 단어 WordCount 다음에 하이픈과 고유 번호가 나오는 출력 테이블의 이름이 표시됩니다.

Output table is: WordCount-1234567890

Hadoop 작업의 결과 확인

선택적으로 Hadoop 작업을 실행한 후 cbt CLI를 사용해서 작업이 성공적으로 실행되었는지 확인할 수 있습니다.

  1. Cloud Shell에서 터미널 창을 엽니다.

    Cloud Shell에서 열기

  2. cbt CLI를 설치합니다.
        gcloud components update
        gcloud components install cbt
  3. 출력 테이블을 검색하여 Hadoop 작업의 결과를 봅니다. 이때 [TABLE_NAME]을 출력 테이블의 이름으로 바꿉니다.
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

클러스터가 제대로 설정되었는지 확인했으므로 이제 클러스터를 사용하여 Hadoop 작업을 실행할 수 있습니다.

Dataproc 클러스터 삭제

Dataproc 클러스터 사용을 마치면 다음 명령어를 실행하여 클러스터를 종료 및 삭제합니다. 이때 [DATAPROC_CLUSTER_NAME]을 Dataproc 클러스터의 이름으로 바꿉니다.

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

다음 단계