Azure CLI를 사용하여 HDInsight 클러스터 만들기

이 문서의 단계는 Azure CLI을 사용하여 HDInsight 4.0 클러스터 만들기 과정을 연습합니다.

경고

HDInsight 클러스터에 대한 청구는 사용 여부에 관계없이 분 단위로 비례 배분됩니다. 클러스터는 사용한 후에 삭제해야 합니다. HDInsight 클러스터를 삭제하는 방법을 참조하세요.

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

필수 구성 요소

클러스터 만들기

  1. Azure 구독에 로그인합니다. Azure Cloud Shell을 사용하려는 경우 코드 블록의 오른쪽 위 모서리에 있는 사용해보기를 선택합니다. 그렇지 않은 경우 아래 명령을 입력합니다.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. 환경 변수를 설정합니다. 이 문서에서 변수를 사용하는 것은 Bash를 기반으로 합니다. 다른 환경에서는 약간의 변형이 필요합니다. 클러스터 만들기에 사용할 수 있는 매개 변수의 전체 목록은 az-hdinsight-create를 참조하세요.

    매개 변수 설명
    --workernode-count 클러스터의 작업자 노드 수입니다. 이 문서에서는 변수 clusterSizeInNodes--workernode-count에 전달된 값으로 사용합니다.
    --version HDInsight 클러스터 버전입니다. 이 문서에서는 변수 clusterVersion--version에 전달된 값으로 사용합니다. 또한 지원되는 HDInsight 버전을 참조하세요.
    --type HDInsight 클러스터 유형(예: hadoop, interactivehive, hbase, kafka, spark, rserver, mlservices) 이 문서에서는 변수 clusterType--type에 전달된 값으로 사용합니다. 또한 클러스터 유형 및 구성을 참조하세요.
    --component-version 'Component = version' 형식의 공백으로 구분된 버전으로 이루어진 다양한 Hadoop 구성 요소의 버전입니다. 이 문서에서는 변수 componentVersion--component-version에 전달된 값으로 사용합니다. 또한 Hadoop 구성 요소을 참조하세요.

    RESOURCEGROUPNAME, LOCATION, CLUSTERNAME, STORAGEACCOUNTNAME, PASSWORD를 원하는 값으로 바꿉니다. 다른 변수의 값을 원하는 대로 변경합니다. 그런 다음, CLI 명령을 입력합니다.

    export resourceGroupName=RESOURCEGROUPNAME
    export location=LOCATION
    export clusterName=CLUSTERNAME
    export AZURE_STORAGE_ACCOUNT=STORAGEACCOUNTNAME
    export httpCredential='PASSWORD'
    export sshCredentials='PASSWORD'
    
    export AZURE_STORAGE_CONTAINER=$clusterName
    export clusterSizeInNodes=1
    export clusterVersion=4.0
    export clusterType=hadoop
    export componentVersion=Hadoop=3.1.0
    
  3. 아래 명령을 입력하여 리소스 그룹을 만듭니다.

    az group create \
        --location $location \
        --name $resourceGroupName
    

    유효한 위치 목록을 위해 az account list-locations 명령을 사용한 다음, name 값의 위치 중 하나를 사용합니다.

  4. 아래 명령을 입력하여 Azure Storage 계정을 만듭니다.

    # Note: kind BlobStorage is not available as the default storage account.
    az storage account create \
        --name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --https-only true \
        --kind StorageV2 \
        --location $location \
        --sku Standard_LRS
    
  5. 아래 명령을 입력하여 Azure Storage 계정에서 기본 키를 추출하고 변수에 저장합니다.

    export AZURE_STORAGE_KEY=$(az storage account keys list \
        --account-name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. 아래 명령을 입력하여 Azure Storage 컨테이너를 만듭니다.

    az storage container create \
        --name $AZURE_STORAGE_CONTAINER \
        --account-key $AZURE_STORAGE_KEY \
        --account-name $AZURE_STORAGE_ACCOUNT
    
  7. 다음 명령을 입력하여 HDInsight 클러스터를 만듭니다.

    az hdinsight create \
        --name $clusterName \
        --resource-group $resourceGroupName \
        --type $clusterType \
        --component-version $componentVersion \
        --http-password $httpCredential \
        --http-user admin \
        --location $location \
        --workernode-count $clusterSizeInNodes \
        --ssh-password $sshCredentials \
        --ssh-user sshuser \
        --storage-account $AZURE_STORAGE_ACCOUNT \
        --storage-account-key $AZURE_STORAGE_KEY \
        --storage-container $AZURE_STORAGE_CONTAINER \
        --version $clusterVersion
    

    중요

    HDInsight 클러스터는 워크로드 또는 클러스터에 대한 튜닝 기술에 해당하는 다양한 형식을 제공합니다. 하나의 클러스터에서 HBase 등의 여러 유형을 결합하는 클러스터를 만들기 위해 지원되는 메서드가 없습니다.

    클러스터 만들기 프로세스를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 일반적으로 약 15분이 걸립니다.

리소스 정리

이 문서를 완료한 후에 클러스터를 삭제할 수 있습니다. HDInsight를 사용하면 데이터가 Azure Storage에 저장되기 때문에 클러스터를 사용하지 않을 때 안전하게 삭제할 수 있습니다. HDInsight 클러스터를 사용하지 않는 기간에도 요금이 청구됩니다. 클러스터에 대한 요금이 스토리지에 대한 요금보다 몇 배 더 많기 때문에, 클러스터를 사용하지 않을 때는 삭제하는 것이 경제적인 면에서 더 합리적입니다.

리소스를 제거하려면 다음 명령의 전체 또는 일부를 입력합니다.

# Remove cluster
az hdinsight delete \
    --name $clusterName \
    --resource-group $resourceGroupName

# Remove storage container
az storage container delete \
    --account-name $AZURE_STORAGE_ACCOUNT \
    --name $AZURE_STORAGE_CONTAINER

# Remove storage account
az storage account delete \
    --name $AZURE_STORAGE_ACCOUNT \
    --resource-group $resourceGroupName

# Remove resource group
az group delete \
    --name $resourceGroupName

문제 해결

HDInsight 클러스터를 만드는 동안 문제가 발생할 경우 액세스 제어 요구 사항을 참조하세요.

다음 단계

Azure CLI를 사용하여 HDInsight 클러스터를 정상적으로 만들었으므로 다음을 사용하여 클러스터 작업을 수행하는 방법을 알아봅니다.

Apache Hadoop 클러스터

Apache HBase 클러스터