Udostępnij przez


Samouczek: tworzenie klastrów Apache Hadoop na żądanie w usłudze HDInsight przy użyciu usługi Azure Data Factory

Z tego samouczka dowiesz się, jak utworzyć klaster Apache Hadoop na żądanie w usłudze Azure HDInsight przy użyciu usługi Azure Data Factory. Następnie użyjesz potoków danych w usłudze Azure Data Factory, aby uruchomić zadania hive i usunąć klaster. Po ukończeniu tego tutorialu nauczysz się, jak uruchomić zadanie dotyczące big data, w którym tworzenie klastra, realizacja zadania oraz usuwanie klastra odbywają się na podstawie harmonogramu.

Ten samouczek obejmuje następujące zadania:

  • Tworzenie konta usługi Azure Storage
  • Omówienie działania usługi Azure Data Factory
  • Tworzenie fabryki danych przy użyciu witryny Azure Portal
  • Tworzenie połączonych usług
  • Stwórz potok
  • Wyzwalanie potoku
  • Monitorowanie potoku
  • Sprawdzanie danych wyjściowych

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

  • Zainstalowany moduł Az programu PowerShell.

  • Reprezentant usługi Microsoft Entra. Po utworzeniu głównej tożsamości usługi pamiętaj, aby pobrać identyfikator aplikacji i klucz uwierzytelniania, korzystając z instrukcji w powiązanym artykule. Te wartości będą potrzebne w dalszej części tego samouczka. Upewnij się również, że podmiot usługi jest członkiem roli Kontrybutor w subskrypcji lub grupie zasobów, w której jest tworzony klaster. Aby uzyskać instrukcje dotyczące pobierania wymaganych wartości i przypisywania odpowiednich ról, zobacz Tworzenie jednostki usługi Microsoft Entra.

Tworzenie wstępnych obiektów platformy Azure

W tej sekcji utworzysz różne obiekty, które będą używane dla klastra usługi HDInsight utworzonego na żądanie. Utworzone konto magazynu będzie zawierać przykładowy skrypt HiveQL, partitionweblogs.hql, który służy do symulowania przykładowego zadania Apache Hive uruchamianego w klastrze.

W tej sekcji użyto skryptu programu Azure PowerShell do utworzenia konta magazynu i skopiowania wymaganych plików na koncie magazynu. Przykładowy skrypt programu Azure PowerShell w tej sekcji wykonuje następujące zadania:

  1. Zaloguje się do platformy Azure.
  2. Tworzy grupę zasobów platformy Azure.
  3. Tworzy konto usługi Azure Storage.
  4. Tworzy kontener Blob na koncie magazynowym
  5. Kopiuje przykładowy skrypt HiveQL (partitionweblogs.hql) do kontenera Blob. Przykładowy skrypt jest już dostępny w innym publicznym kontenerze Blob. Poniższy skrypt programu PowerShell tworzy kopię tych plików na utworzone konto usługi Azure Storage.

Tworzenie konta magazynu i kopiowanie plików

Ważne

Określ nazwy grupy zasobów platformy Azure i konta usługi Azure Storage, które zostanie utworzone przez skrypt. Zapisz nazwę grupy zasobów, nazwę konta magazynu i klucz konta magazynu w danych wyjściowych skryptu. Będą one potrzebne w następnej sekcji.

$resourceGroupName = "<Azure Resource Group Name>"
$storageAccountName = "<Azure Storage Account Name>"
$location = "East US"

$sourceStorageAccountName = "hditutorialdata"  
$sourceContainerName = "adfv2hiveactivity"

$destStorageAccountName = $storageAccountName
$destContainerName = "adfgetstarted" # don't change this value.

####################################
# Connect to Azure
####################################
#region - Connect to Azure subscription
Write-Host "`nConnecting to your Azure subscription ..." -ForegroundColor Green
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

#endregion

####################################
# Create a resource group, storage, and container
####################################

#region - create Azure resources
Write-Host "`nCreating resource group, storage account and blob container ..." -ForegroundColor Green

New-AzResourceGroup `
    -Name $resourceGroupName `
    -Location $location

New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName `
    -Kind StorageV2 `
    -Location $location `
    -SkuName Standard_LRS `
    -EnableHttpsTrafficOnly 1

$destStorageAccountKey = (Get-AzStorageAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName)[0].Value

$sourceContext = New-AzStorageContext `
    -StorageAccountName $sourceStorageAccountName `
    -Anonymous

$destContext = New-AzStorageContext `
    -StorageAccountName $destStorageAccountName `
    -StorageAccountKey $destStorageAccountKey

New-AzStorageContainer `
    -Name $destContainerName `
    -Context $destContext
#endregion

####################################
# Copy files
####################################
#region - copy files
Write-Host "`nCopying files ..." -ForegroundColor Green

$blobs = Get-AzStorageBlob `
    -Context $sourceContext `
    -Container $sourceContainerName `
    -Blob "hivescripts\hivescript.hql"

$blobs|Start-AzStorageBlobCopy `
    -DestContext $destContext `
    -DestContainer $destContainerName `
    -DestBlob "hivescripts\partitionweblogs.hql"

Write-Host "`nCopied files ..." -ForegroundColor Green
Get-AzStorageBlob `
    -Context $destContext `
    -Container $destContainerName
#endregion

Write-host "`nYou will use the following values:" -ForegroundColor Green
write-host "`nResource group name: $resourceGroupName"
Write-host "Storage Account Name: $destStorageAccountName"
write-host "Storage Account Key: $destStorageAccountKey"

Write-host "`nScript completed" -ForegroundColor Green

Weryfikowanie konta magazynu

  1. Zaloguj się do witryny Azure Portal.
  2. Po lewej stronie przejdź do pozycji Wszystkie usługi>Ogólne>grupy zasobów.
  3. Wybierz nazwę grupy zasobów utworzoną w skryscie programu PowerShell. Użyj filtru, jeśli masz zbyt wiele grup zasobów na liście.
  4. W widoku Przegląd zostanie wyświetlony jeden zasób, chyba że grupa zasobów zostanie udostępniona innym projektom. Ten zasób to konto magazynu o podanej wcześniej nazwie. Wybierz nazwę konta przechowywania.
  5. Wybierz kafelek Kontenery .
  6. Wybierz kontener adfgetstarted . Zostanie wyświetlony folder o nazwie hivescripts.
  7. Otwórz folder i upewnij się, że zawiera przykładowy plik skryptu partitionweblogs.hql.

Omówienie działania usługi Azure Data Factory

Usługa Azure Data Factory organizuje i automatyzuje przenoszenie i przekształcanie danych. Usługa Azure Data Factory może utworzyć klaster HDInsight Hadoop na czas, aby przetworzyć wycinek danych wejściowych i usunąć klaster po zakończeniu przetwarzania.

W usłudze Azure Data Factory fabryka danych może mieć co najmniej jeden potok danych. Potok danych ma co najmniej jedno działanie. Istnieją dwa typy działań:

  • Działania przenoszenia danych. Działania przenoszenia danych służą do przesuwania danych ze źródłowego magazynu danych do docelowego magazynu danych.
  • Działania przekształcania danych. Działania przekształcania danych służą do przekształcania/przetwarzania danych. Działanie Hive usługi HDInsight jest jedną z czynności przekształcania obsługiwanych przez usługę Data Factory. W tym samouczku użyjesz operacji transformacji Hive.

W tym artykule skonfigurujesz działanie programu Hive w celu utworzenia klastra usługi HDInsight Hadoop na żądanie. Gdy działanie jest uruchamiane w celu przetwarzania danych, oto co się stanie:

  1. Klaster Hadoop HDInsight jest automatycznie tworzony w trybie just-in-time, aby przetworzyć wycinek.

  2. Dane wejściowe są przetwarzane przez uruchomienie skryptu HiveQL w klastrze. W tym samouczku skrypt HiveQL skojarzony z działaniem Hive wykonuje następujące czynności:

    • Używa istniejącej tabeli (hivesampletable) do utworzenia innej tabeli HiveSampleOut.
    • Wypełnia tabelę HiveSampleOut tylko określonymi kolumnami z oryginalnego elementu hivesampletable.
  3. Klaster hadoop usługi HDInsight jest usuwany po zakończeniu przetwarzania, a klaster jest bezczynny przez skonfigurowany czas (ustawienie timeToLive). Jeśli następny wycinek danych jest dostępny do przetworzenia w tym okresie bezczynności TimeToLive, ten sam klaster jest używany do przetwarzania wycinka.

Tworzenie fabryki danych

  1. Zaloguj się do witryny Azure Portal.

  2. W menu po lewej stronie przejdź do + Create a resource>usługi Analytics>Data Factory.

    Usługa Azure Data Factory w portalu.

  3. Wprowadź lub wybierz następujące wartości dla elementu Nowa fabryka danych:

    Majątek Wartość
    Name Wprowadź nazwę fabryki danych. Ta nazwa musi być globalnie unikatowa.
    wersja Pozostaw wartość V2.
    Subscription Wybierz subskrypcję platformy Azure.
    Grupa zasobów Wybierz grupę zasobów utworzoną przy użyciu skryptu programu PowerShell.
    Lokalizacja Lokalizacja jest automatycznie ustawiana na lokalizację określoną wcześniej podczas tworzenia grupy zasobów. Na potrzeby tego samouczka lokalizacja jest ustawiona na Wschodnie stany USA.
    Włączanie usługi GIT Usuń zaznaczenie tego pola.

    Tworzenie usługi Azure Data Factory przy użyciu witryny Azure Portal.

  4. Wybierz Utwórz. Tworzenie fabryki danych może potrwać od 2 do 4 minut.

  5. Po utworzeniu fabryki danych otrzymasz powiadomienie Wdrożenie zakończyło się pomyślnie z przyciskiem Przejdź do zasobu . Wybierz pozycję Przejdź do zasobu, aby otworzyć widok domyślny usługi Data Factory.

  6. Wybierz pozycję Tworzenie i monitorowanie aby uruchomić portal tworzenia i monitorowania usługi Azure Data Factory.

    Omówienie portalu usługi Azure Data Factory.

Tworzenie połączonych usług

W tej sekcji utworzysz dwie połączone usługi w fabryce danych.

  • Połączoną usługę Azure Storage, która łączy konto usługi Azure Storage z fabryką danych. Ten magazyn jest używany przez klaster usługi HDInsight na żądanie. Zawiera również skrypt programu Hive uruchamiany w klastrze.
  • Połączoną usługę HDInsight dostępną na żądanie. Usługa Azure Data Factory automatycznie tworzy klaster usługi HDInsight i uruchamia skrypt hive. Następnie usuwa klaster usługi HDInsight, gdy jest on bezczynny przez wstępnie skonfigurowany czas.

Tworzenie połączonej usługi Azure Storage

  1. W lewym okienku strony Rozpocznij pracę wybierz ikonę Autor .

    Tworzenie połączonej usługi Azure Data Factory.

  2. Wybierz pozycję Połączenia w lewym dolnym rogu okna, a następnie wybierz pozycję +Nowy.

    Tworzenie połączeń w usłudze Azure Data Factory.

  3. W oknie dialogowym Nowa połączona usługa wybierz pozycję Azure Blob Storage , a następnie wybierz pozycję Kontynuuj.

    Tworzenie połączonej usługi Azure Storage dla usługi Data Factory.

  4. Podaj następujące wartości dla połączonej usługi przechowywania:

    Majątek Wartość
    Name Wprowadź HDIStorageLinkedService.
    Subskrypcja platformy Azure Wybierz swoją subskrypcję z listy rozwijanej.
    Nazwa konta magazynu Wybierz konto usługi Azure Storage utworzone w ramach skryptu programu PowerShell.

    Wybierz pozycję Testuj połączenie i jeśli zakończy się pomyślnie, a następnie wybierz pozycję Utwórz.

    Podaj nazwę połączonej usługi Azure Storage.

Tworzenie połączonej usługi HDInsight na żądanie

  1. Wybierz ponownie przycisk + Nowy, aby utworzyć kolejną połączoną usługę.

  2. W oknie Nowa połączona usługa wybierz kartę Obliczenia .

  3. Wybierz pozycję Azure HDInsight, a następnie wybierz pozycję Kontynuuj.

    Tworzenie połączonej usługi HDInsight dla usługi Azure Data Factory.

  4. W oknie Nowa połączona usługa wprowadź następujące wartości i pozostaw resztę jako domyślną:

    Majątek Wartość
    Name Wprowadź HDInsightLinkedService.
    Typ Wybierz HDInsight na żądanie.
    Połączona usługa Azure Storage Wybierz opcję HDIStorageLinkedService.
    Typ klastra Wybieranie usługi hadoop
    Czas życia Podaj czas trwania, przez który klaster usługi HDInsight ma być dostępny przed automatycznym usunięciem.
    Identyfikator głównego wystawcy usługi Podaj identyfikator aplikacji jednostki usługi Microsoft Entra utworzonej w ramach wymagań wstępnych.
    Klucz tożsamości usługi Podaj klucz uwierzytelniania dla jednostki usługi Microsoft Entra.
    Prefiks nazwy klastra Podaj wartość, która zostanie poprzedzona wszystkimi typami klastrów utworzonymi przez fabrykę danych.
    Subscription Wybierz swoją subskrypcję z listy rozwijanej.
    Wybierz grupę zasobów Wybierz grupę zasobów utworzoną wcześniej jako część użytego wcześniej skryptu programu PowerShell.
    Typ systemu operacyjnego/Nazwa użytkownika SSH klastra Wprowadź nazwę użytkownika SSH, często sshuser.
    Typ systemu operacyjnego/hasło SSH klastra Podaj hasło dla użytkownika SSH
    Typ systemu operacyjnego/nazwa użytkownika klastra Wprowadź nazwę użytkownika klastra, często admin.
    Typ systemu operacyjnego/hasło klastra Podaj hasło dla użytkownika klastra.

    Następnie wybierz Utwórz.

    Podaj wartości dla połączonej usługi HDInsight.

Stwórz potok

  1. Wybierz przycisk +(plus), a następnie wybierz Potok.

    Utwórz potok w usłudze Azure Data Factory.

  2. W przyborniku Działania rozwiń HDInsight i przeciągnij działanie Hive na obszar projektanta potoku. Na karcie Ogólne podaj nazwę działania.

    Dodaj działania do pipeline'u Data Factory.

  3. Upewnij się, że masz wybrane działanie Programu Hive, następnie wybierz kartę Klaster HDI. Z listy rozwijanej Połączona usługa HDInsight wybierz utworzoną wcześniej połączoną usługę HDInsightLinkedService dla HDInsight.

    Podaj szczegóły klastra HDInsight dla potoku danych.

  4. Wybierz kartę Skrypt i wykonaj następujące kroki:

    1. W polu Połączona usługa skryptu wybierz pozycję HDIStorageLinkedService z listy rozwijanej. Ta wartość to usługa powiązana z magazynem, którą utworzyłeś wcześniej.

    2. W polu Ścieżka pliku wybierz opcję Przeglądaj magazyn i przejdź do lokalizacji, w której dostępny jest przykładowy skrypt Hive. Jeśli wcześniej uruchomiono skrypt programu PowerShell, ta lokalizacja powinna mieć wartość adfgetstarted/hivescripts/partitionweblogs.hql.

      Podaj szczegóły skryptu programu Hive dla potoku.

    3. W obszarzeParametry> wybierz pozycję Auto-fill from script. Ta opcja wyszukuje wszystkie parametry w skryscie Programu Hive, które wymagają wartości w czasie wykonywania.

    4. W polu tekstowym wartości dodaj istniejący folder w formacie wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. W ścieżce jest rozróżniana wielkość liter. Ta ścieżka to miejsce, w którym będą przechowywane dane wyjściowe skryptu. Schemat wasbs jest niezbędny, ponieważ konta magazynowe mają teraz domyślnie włączony obowiązkowy bezpieczny transfer.

      Podaj parametry skryptu Programu Hive.

  5. Wybierz Weryfikuj, aby zweryfikować przepływ. Wybierz przycisk >> (strzałka w prawo), aby zamknąć okno weryfikacji.

    Zweryfikuj potok usługi Azure Data Factory.

  6. Na koniec wybierz pozycję Publikuj wszystko , aby opublikować artefakty w usłudze Azure Data Factory.

    Opublikuj potok usługi Azure Data Factory.

Wyzwalanie potoku

  1. Na pasku narzędzi na powierzchni projektanta wybierz opcję Dodaj wyzwalacz>Wyzwalacz teraz.

    Wyzwól potok usługi Azure Data Factory.

  2. Wybierz OK na pasku bocznym wyskakującym.

Monitorowanie potoku

  1. Przejdź do karty Monitorowanie po lewej stronie. Uruchomienie potoku zostanie wyświetlone na liście Uruchomienia potoku. Zwróć uwagę na stan procesu w kolumnie Stan.

    Monitoruj potok usługi Azure Data Factory.

  2. Wybierz pozycję Odśwież , aby odświeżyć stan.

  3. Możesz również wybrać ikonę Wyświetl uruchomienia działań, aby zobaczyć działanie powiązane z potokiem. Na poniższym zrzucie ekranu widać tylko jedno uruchomienie aktywności, ponieważ w utworzonym potoku znajduje się tylko jedna aktywność. Aby wrócić do poprzedniego widoku, wybierz pozycję Potoki w górnej części strony.

    Monitoruj działanie potoku usługi Azure Data Factory.

Sprawdzanie danych wyjściowych

  1. Aby zweryfikować dane wyjściowe, w witrynie Azure Portal przejdź do konta magazynu użytego na potrzeby tego samouczka. Powinny zostać wyświetlone następujące foldery lub kontenery:

    • Zostanie wyświetlony folder adfgerstarted/outputfolder zawierający dane wyjściowe skryptu Hive, uruchomionego w ramach potoku.

    • Widoczny jest kontener adfhdidatafactory-<linked-service-name>-<timestamp>. Ten kontener jest domyślnym miejscem przechowywania klastra usługi HDInsight, który został utworzony podczas uruchamiania potoku.

    • Zostanie wyświetlony kontener adfjobs z dziennikami zadań usługi Azure Data Factory.

      Sprawdź dane wyjściowe potoku usługi Azure Data Factory.

Uprzątnij zasoby

Po utworzeniu klastra usługi HDInsight na żądanie nie trzeba jawnie usuwać klastra usługi HDInsight. Klaster jest usuwany zgodnie z konfiguracją podaną podczas tworzenia pipeline'u. Nawet po usunięciu klastra, konta magazynowe skojarzone z klastrem ciągle istnieją. Takie zachowanie jest zgodnie z projektem, dzięki czemu można przechowywać dane bez zmian. Jednak jeśli nie chcesz utrwalać danych, możesz usunąć utworzone konto magazynowe.

Możesz też usunąć całą grupę zasobów utworzoną na potrzeby tego samouczka. Ten proces usuwa konto magazynu i utworzoną usługę Azure Data Factory.

Usuwanie grupy zasobów

  1. Zaloguj się do witryny Azure Portal.

  2. Wybierz pozycję Grupy zasobów w okienku po lewej stronie.

  3. Wybierz nazwę grupy zasobów utworzoną w skryscie programu PowerShell. Użyj filtru, jeśli masz zbyt wiele grup zasobów na liście. Otwiera grupę zasobów.

  4. Na kafelku Zasoby będziesz mieć domyślne konto magazynu i fabrykę danych wymienioną, chyba że grupa zasobów zostanie udostępniona innym projektom.

  5. Wybierz pozycję Usuń grupę zasobów. Spowoduje to usunięcie konta przechowywania oraz danych przechowywanych na nim.

    Witryna Azure Portal usuwa grupę zasobów.

  6. Wprowadź nazwę grupy zasobów, aby potwierdzić usunięcie, a następnie wybierz pozycję Usuń.

Dalsze kroki

W tym artykule przedstawiono sposób użycia usługi Azure Data Factory do tworzenia klastra usługi HDInsight na żądanie i uruchamiania zadań apache Hive. Przejdź do następnego artykułu, aby dowiedzieć się, jak tworzyć klastry usługi HDInsight przy użyciu konfiguracji niestandardowej.