Azure Resource Manager 템플릿을 사용하여 Azure Data Lake Storage Gen1을 사용하는 HDInsight 클러스터 만들기

Azure PowerShell을 사용하여 Azure Data Lake Storage Gen1을 추가 스토리지로 사용하는 HDInsight 클러스터를 구성하는 방법에 대해 알아봅니다.

지원되는 클러스터 유형의 경우 Data Lake Storage Gen1을 기본 스토리지 또는 추가 스토리지 계정으로 사용할 수 있습니다. Data Lake Storage Gen1을 추가 스토리지로 사용하는 경우 클러스터의 기본 스토리지 계정은 여전히 Azure Blob Storage(WASB)이고 클러스터 관련 파일(예: 로그 등)은 여전히 기본 스토리지에 기록되지만 처리하려는 데이터는 Data Lake Storage Gen1 계정에 저장될 수 있습니다. Data Lake Storage Gen1을 추가 스토리지 계정으로 사용하는 것은 클러스터에서 스토리지로 읽고 쓰는 성능 또는 기능에 영향을 주지 않습니다.

HDInsight 클러스터 스토리지에 대해 Data Lake Storage Gen1 사용

Data Lake Storage Gen1에서 HDInsight를 사용하는 경우 다음 중요 사항을 고려해야 합니다.

  • 기본 스토리지인 Data Lake Storage Gen1에 액세스할 수 있는 HDInsight 클러스터를 만드는 옵션은 HDInsight 버전 3.5 및 3.6에서 사용할 수 있습니다.

  • 추가 스토리지로 Data Lake Storage Gen1에 액세스할 수 있는 HDInsight 클러스터를 만드는 옵션은 HDInsight 버전 3.2, 3.4, 3.5 및 3.6에서 사용할 수 있습니다.

이 문서에서 Data Lake Storage Gen1을 추가 스토리지로 사용하여 Hadoop 클러스터를 프로비전합니다. Data Lake Storage Gen1을 기본 스토리지로 사용하여 Hadoop 클러스터를 만드는 방법에 대한 지침은 Azure Portal을 사용하여 Data Lake Storage Gen1이 포함된 HDInsight 클러스터 만들기를 참조하세요.

사전 요구 사항

참고

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

이 자습서를 시작하기 전에 다음이 있어야 합니다.

  • Azure 구독. Azure 평가판을 참조하세요.

  • Azure PowerShell 1.0 이상. Azure PowerShell 설치 및 구성 방법을 참조하세요.

  • 서비스 주체를 Microsoft Entra. 이 자습서의 단계에서는 Microsoft Entra ID 서비스 주체를 만드는 방법에 대한 지침을 제공합니다. 그러나 서비스 주체를 만들려면 Microsoft Entra 관리자여야 합니다. Microsoft Entra 관리자인 경우 이 필수 조건을 건너뛰고 자습서를 진행할 수 있습니다.

    Microsoft Entra 관리자가 아닌 경우 서비스 주체를 만드는 데 필요한 단계를 수행할 수 없습니다. 이러한 경우 Microsoft Entra 관리자가 먼저 서비스 주체를 만들어야 Data Lake Storage Gen1 HDInsight 클러스터를 만들 수 있습니다. 또한 인증서를 사용하여 서비스 사용자 만들기에 설명된 대로 인증서를 사용하여 서비스 사용자를 만들어야 합니다.

Data Lake Storage Gen1을 사용하는 HDInsight 클러스터 만들기

Resource Manager 템플릿 및 템플릿 사용을 위한 필수 조건은 GitHub의 Deploy a HDInsight Linux cluster with new Data Lake Storage Gen1(새로운 Data Lake Storage Gen1을 사용하는 HDInsight Linux 클러스터 배포)에서 확인할 수 있습니다. 이 링크에 제공된 지침에 따라 Data Lake Storage Gen1을 추가 스토리지로 사용하는 HDInsight 클러스터를 만듭니다.

위에 언급된 링크의 지침에는 PowerShell이 필요합니다. 이러한 지침을 시작하기 전에 Azure 계정에 로그인해야 합니다. 바탕 화면에서 새 Azure PowerShell 창을 열고 다음 코드 조각을 입력합니다. 로그인하라는 메시지가 표시되면 구독 관리자/소유자 중 하나로 로그인해야 합니다.

# Log in to your Azure account
Connect-AzAccount

# List all the subscriptions associated to your account
Get-AzSubscription

# Select a subscription
Set-AzContext -SubscriptionId <subscription ID>

템플릿은 다음과 같은 리소스 종류를 배포합니다.

Data Lake Storage Gen1에 샘플 데이터 업로드

Resource Manager 템플릿은 Data Lake Storage Gen1을 사용하여 새 스토리지 계정을 만들고 HDInsight 클러스터에 연결합니다. 이제 일부 샘플 데이터를 Data Lake Storage Gen1에 업로드해야 합니다. Data Lake Storage Gen1의 스토리지 계정에 있는 데이터에 액세스하는 작업을 HDInsight 클러스터에서 실행하려면 자습서의 뒷부분에서 이 데이터가 필요합니다. 데이터를 업로드하는 방법에 대한 자침은 Data Lake Storage Gen1에 파일 업로드를 참조하세요. 업로드할 일부 샘플 데이터를 찾는 경우 Azure 데이터 레이크 Git 리포지토리Ambulance Data폴더에 있을 수 있습니다.

샘플 데이터에서 관련 ACL 설정

업로드하는 샘플 데이터가 HDInsight 클러스터에서 액세스할 수 있도록 하려면 HDInsight 클러스터와 Data Lake Storage Gen1 간에 ID를 설정하는 데 사용되는 Microsoft Entra 애플리케이션에 액세스하려는 파일/폴더에 액세스할 수 있는지 확인해야 합니다. 이렇게 하려면 다음 단계를 수행합니다.

  1. HDInsight 클러스터와 연결된 Microsoft Entra 애플리케이션의 이름과 Data Lake Storage Gen1 있는 스토리지 계정을 찾습니다. 이름을 찾는 한 가지 방법은 Resource Manager 템플릿을 사용하여 만든 HDInsight 클러스터 블레이드를 열고 클러스터 Microsoft Entra ID 탭을 클릭한 다음 서비스 주체 표시 이름 값을 찾는 것입니다.
  2. 이제 HDInsight 클러스터에서 액세스하려는 파일/폴더에서 이 Microsoft Entra 애플리케이션에 대한 액세스를 제공합니다. Data Lake Storage Gen1의 파일/폴더에 대한 올바른 ACL을 설정하려면 Data Lake Storage Gen1의 데이터 보안을 참조하세요.

HDInsight 클러스터에서 테스트 작업을 실행하여 Data Lake Storage Gen1 사용

HDInsight 클러스터를 구성한 후에 클러스터에서 테스트 작업을 실행하여 HDInsight 클러스터가 Data Lake Storage Gen1에 액세스할 수 있는지 테스트할 수 있습니다. 이렇게 하려면 이전에 Data Lake Storage Gen1의 스토리지 계정에 업로드한 샘플 데이터를 사용하여 테이블을 만드는 샘플 Hive 작업을 실행합니다.

이 섹션에서는 HDInsight Linux 클러스터로 SSH하고 샘플 Hive 쿼리를 실행합니다. Windows 클라이언트를 사용하는 경우 https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html에서 다운로드할 수 있는 PuTTY를 사용하는 것이 좋습니다.

PuTTY 사용에 대한 자세한 내용은 Windows에서 HDInsight의 Linux 기반 Hadoop에 SSH 사용을 참조하세요.

  1. 연결되면 다음 명령을 사용하여 Hive CLI를 시작합니다.

    hive
    
  2. CLI를 사용하여 다음 문을 입력하여 Data Lake Storage Gen1에서 샘플 데이터를 사용한 vehicles라는 새 테이블을 만듭니다.

    DROP TABLE vehicles;
    CREATE EXTERNAL TABLE vehicles (str string) LOCATION 'adl://<mydatalakestoragegen1>.azuredatalakestore.net:443/';
    SELECT * FROM vehicles LIMIT 10;
    

    다음과 비슷한 내용이 출력됩니다.

    1,1,2014-09-14 00:00:03,46.81006,-92.08174,51,S,1
    1,2,2014-09-14 00:00:06,46.81006,-92.08174,13,NE,1
    1,3,2014-09-14 00:00:09,46.81006,-92.08174,48,NE,1
    1,4,2014-09-14 00:00:12,46.81006,-92.08174,30,W,1
    1,5,2014-09-14 00:00:15,46.81006,-92.08174,47,S,1
    1,6,2014-09-14 00:00:18,46.81006,-92.08174,9,S,1
    1,7,2014-09-14 00:00:21,46.81006,-92.08174,53,N,1
    1,8,2014-09-14 00:00:24,46.81006,-92.08174,63,SW,1
    1,9,2014-09-14 00:00:27,46.81006,-92.08174,4,NE,1
    1,10,2014-09-14 00:00:30,46.81006,-92.08174,31,N,1
    

HDFS 명령을 사용하여 Data Lake Storage Gen1 액세스

Data Lake Storage Gen1을 사용하도록 HDInsight 클러스터를 구성하고 나면 HDFS 셸 명령을 사용하여 저장소에 액세스할 수 있습니다.

이 섹션에서는 HDInsight Linux 클러스터로 SSH하고 HDFS 명령을 실행합니다. Windows 클라이언트를 사용하는 경우 https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html에서 다운로드할 수 있는 PuTTY를 사용하는 것이 좋습니다.

PuTTY 사용에 대한 자세한 내용은 Windows에서 HDInsight의 Linux 기반 Hadoop에 SSH 사용을 참조하세요.

연결되면 다음 HDFS 파일 시스템 명령을 사용하여 Data Lake Storage Gen1의 스토리지 계정에 있는 파일을 나열합니다.

hdfs dfs -ls adl://<storage account with Data Lake Storage Gen1 name>.azuredatalakestore.net:443/

이전에 Data Lake Storage Gen1에 업로드한 파일이 나열되어야 합니다.

15/09/17 21:41:15 INFO web.CaboWebHdfsFileSystem: Replacing original urlConnectionFactory with org.apache.hadoop.hdfs.web.URLConnectionFactory@21a728d6
Found 1 items
-rwxrwxrwx   0 NotSupportYet NotSupportYet     671388 2015-09-16 22:16 adl://mydatalakestoragegen1.azuredatalakestore.net:443/mynewfolder

hdfs dfs -put 명령을 사용하여 일부 파일을 Data Lake Storage Gen1에 업로드한 다음, hdfs dfs -ls를 사용하여 파일이 성공적으로 업로드되었는지 여부를 확인할 수도 있습니다.

다음 단계