Azure CLI를 사용하여 HDInsight 클러스터 만들기
이 문서의 단계는 Azure CLI을 사용하여 HDInsight 4.0 클러스터 만들기 과정을 연습합니다.
Warning
HDInsight 클러스터에 대한 청구는 사용 여부에 관계없이 분 단위로 비례 배분됩니다. 클러스터는 사용한 후에 삭제해야 합니다. HDInsight 클러스터를 삭제하는 방법을 참조하세요.
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
사전 요구 사항
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
클러스터 생성
Azure 구독에 로그인합니다. Azure Cloud Shell을 사용하려는 경우 코드 블록의 오른쪽 위 모서리에 있는 사용해보기를 선택합니다. 그렇지 않으면 다음 명령을 입력합니다.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
환경 변수를 설정합니다. 이 문서에서 변수를 사용하는 것은 Bash를 기반으로 합니다. 다른 환경에서는 약간의 변형이 필요합니다. 클러스터 만들기에 사용할 수 있는 매개 변수의 전체 목록은 az-hdinsight-create를 참조하세요.
매개 변수 설명 --workernode-count
클러스터의 작업자 노드 수입니다. 이 문서에서는 변수 clusterSizeInNodes
을--workernode-count
에 전달된 값으로 사용합니다.--version
HDInsight 클러스터 버전입니다. 이 문서에서는 변수 clusterVersion
을--version
에 전달된 값으로 사용합니다. 또한 지원되는 HDInsight 버전을 참조하세요.--type
hadoop, Interactive Hive, Hbase, Kafka, Spark, rserver
,mlservices
와 같은 HDInsight 클러스터 형식입니다. 이 문서에서는 변수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
아래 명령을 입력하여 리소스 그룹을 만듭니다.
az group create \ --location $location \ --name $resourceGroupName
유효한 위치 목록을 위해
az account list-locations
명령을 사용한 다음,name
값의 위치 중 하나를 사용합니다.다음 명령을 입력하여 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
다음 명령을 입력하여 Azure Storage 계정에서 기본 키를 추출하고 변수에 저장합니다.
export AZURE_STORAGE_KEY=$(az storage account keys list \ --account-name $AZURE_STORAGE_ACCOUNT \ --resource-group $resourceGroupName \ --query [0].value -o tsv)
다음 명령을 입력하여 Azure Storage 컨테이너를 만듭니다.
az storage container create \ --name $AZURE_STORAGE_CONTAINER \ --account-key $AZURE_STORAGE_KEY \ --account-name $AZURE_STORAGE_ACCOUNT
다음 명령을 입력하여 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
Important
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 클러스터를 정상적으로 만들었으므로 다음을 사용하여 클러스터 작업을 수행하는 방법을 알아봅니다.