Korzystanie z programu Apache Sqoop za pomocą platformy Hadoop w usłudze HDInsight

Dowiedz się, jak używać narzędzia Apache Sqoop w usłudze HDInsight do importowania i eksportowania danych między klastrem usługi HDInsight i usługą Azure SQL Database.

Mimo że platforma Apache Hadoop jest naturalnym wyborem do przetwarzania danych bez struktury i częściowo ustrukturyzowanych, takich jak dzienniki i pliki, może być również konieczne przetwarzanie danych strukturalnych przechowywanych w relacyjnych bazach danych.

Apache Sqoop to narzędzie przeznaczone do przesyłania danych między klastrami Hadoop i relacyjnymi bazami danych. Służy do importowania danych z systemu zarządzania relacyjnymi bazami danych (RDBMS), takiego jak SQL Server, MySQL lub Oracle, do rozproszonego systemu plików Hadoop (HDFS), przekształcania danych w usłudze Hadoop przy użyciu technologii MapReduce lub Apache Hive, a następnie eksportowania danych z powrotem do systemu zarządzania relacyjnymi bazami danych. W tym artykule używasz usługi Azure SQL Database dla relacyjnej bazy danych.

Ważne

W tym artykule skonfigurowaliśmy środowisko testowe do wykonania transferu danych. Następnie wybierz metodę transferu danych dla tego środowiska z jednej z metod w sekcji Uruchamianie zadań Sqoop.

W przypadku wersji sqoop obsługiwanych w klastrach usługi HDInsight zobacz Co nowego w wersjach klastra udostępnianych przez usługę HDInsight?

Omówienie scenariusza

Klaster usługi HDInsight zawiera przykładowe dane. Użyj następujących dwóch przykładów:

  • Plik dziennika apache Log4j , który znajduje się w lokalizacji /example/data/sample.log. Następujące dzienniki są wyodrębniane z pliku:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
  • Tabela programu Hive o nazwie hivesampletable, która odwołuje się do pliku danych znajdującego się w lokalizacji /hive/warehouse/hivesampletable. Tabela zawiera dane urządzeń przenośnych.

    Pole Typ danych
    clientid ciąg
    czas wykonywania zapytania ciąg
    rynek ciąg
    deviceplatform ciąg
    devicemake ciąg
    model urządzenia ciąg
    stan ciąg
    country ciąg
    querydwelltime double
    Sessionid bigint
    sessionpagevieworder bigint

W tym artykule użyjesz tych dwóch zestawów danych do testowania importowania i eksportowania narzędzia Sqoop.

Konfigurowanie środowiska testowego

Klaster, baza danych SQL i inne obiekty są tworzone za pośrednictwem Azure Portal przy użyciu szablonu usługi Azure Resource Manager. Szablon można znaleźć w szablonach szybkiego startu platformy Azure. Szablon Resource Manager wywołuje pakiet bacpac w celu wdrożenia schematów tabel w bazie danych SQL. Jeśli chcesz użyć prywatnego kontenera dla plików bacpac, użyj następujących wartości w szablonie:

"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",

Uwaga

Importowanie przy użyciu szablonu lub Azure Portal obsługuje tylko importowanie pliku BACPAC z usługi Azure Blob Storage.

  1. Wybierz poniższy obraz, aby otworzyć szablon Resource Manager w Azure Portal.

    Przycisk Wdróż na platformie Azure dla nowego klastra

  2. Wprowadź następujące właściwości:

    Pole Wartość
    Subskrypcja Wybierz subskrypcję platformy Azure z listy rozwijanej.
    Grupa zasobów Wybierz grupę zasobów z listy rozwijanej lub utwórz nową grupę zasobów
    Lokalizacja Wybierz region z listy rozwijanej.
    Nazwa klastra Wprowadź nazwę klastra usługi Hadoop. Używaj tylko małych liter.
    Nazwa użytkownika logowania klastra Zachowaj wstępnie wypełniona wartość admin.
    Hasło logowania klastra Wprowadź hasło.
    Nazwa użytkownika SSH Zachowaj wstępnie wypełniona wartość sshuser.
    Hasło SSH Wprowadź hasło.
    Logowanie Administracja SQL Zachowaj wstępnie wypełniona wartość sqluser.
    Hasło Administracja SQL Wprowadź hasło.
    lokalizacja _artifacts Użyj wartości domyślnej, chyba że chcesz użyć własnego pliku bacpac w innej lokalizacji.
    token sas lokalizacji _artifacts Pozostaw to pole puste.
    Nazwa pliku Bacpac Użyj wartości domyślnej, chyba że chcesz użyć własnego pliku bacpac.
    Lokalizacja Użyj wartości domyślnej.

    Logiczna nazwa serwera SQL to <ClusterName>dbserver. Nazwa bazy danych to <ClusterName>db. Domyślna nazwa konta magazynu to e6qhezrh2pdqu.

  3. Wybierz pozycję Zgadzam się na powyższe warunki i postanowienia.

  4. Wybierz pozycję Kup. Zostanie wyświetlony nowy kafelek zatytułowany Przesyłanie wdrożenia dla wdrożenia szablonu. Utworzenie klastra i bazy danych SQL trwa około 20 minut.

Uruchamianie zadań Sqoop

Usługa HDInsight może uruchamiać zadania Sqoop przy użyciu różnych metod. Skorzystaj z poniższej tabeli, aby zdecydować, która metoda jest odpowiednia dla Ciebie, a następnie postępuj zgodnie z linkiem do przewodnika.

Użyj tej opcji , jeśli chcesz... ... interaktywna powłoka ... przetwarzanie wsadowe ... z tego systemu operacyjnego klienta
Protokół SSH ? ? Linux, Unix, Mac OS X lub Windows
Zestaw SDK dla platformy .NET usługi Hadoop   ? Windows (na razie)
Azure PowerShell   ? Windows

Ograniczenia

  • Eksport zbiorczy — w przypadku usługi HDInsight opartej na systemie Linux łącznik Sqoop używany do eksportowania danych do platformy Microsoft SQL Server lub SQL Database nie obsługuje obecnie operacji wstawiania zbiorczego.
  • Przetwarzanie wsadowe — w przypadku usługi HDInsight opartej na systemie Linux użycie przełącznika -batch podczas wykonywania operacji wstawiania narzędzie Sqoop wykonuje wiele operacji wstawiania zamiast dzielenia na partie operacji wstawiania.

Następne kroki

Teraz wiesz już, jak używać narzędzia Sqoop. Aby dowiedzieć się więcej, zobacz: