Udostępnij za pośrednictwem


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

Dowiedz się, jak używać platformy 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 usługa 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 za pomocą technologii MapReduce lub Apache Hive, a następnie eksportowania danych z powrotem do systemu RDBMS. W tym artykule używasz usługi Azure SQL Database dla relacyjnej bazy danych.

Ważne

W tym artykule skonfigurowaliśmy środowisko testowe do przeprowadzania 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 niektóre dane urządzeń przenośnych.

    Pole Typ danych
    clientid string
    czas wykonywania zapytań string
    rynek string
    deviceplatform string
    devicemake string
    devicemodel string
    stan string
    kraj string
    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 witryny Azure Portal przy użyciu szablonu usługi Azure Resource Manager. Szablon można znaleźć w artykule Szablony szybkiego startu platformy Azure. Szablon usługi Resource Manager wywołuje pakiet bacpac w celu wdrożenia schematów tabeli 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 witryny Azure Portal obsługuje tylko importowanie pliku BACPAC z usługi Azure Blob Storage.

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

    Przycisk Wdróż na platformie Azure dla nowego klastra

  2. Wpisz 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żyj tylko małych liter.
    Nazwa użytkownika logowania klastra Zachowaj wstępnie wypełniona wartość admin.
    Hasło logowania do klastra Wprowadź hasło.
    Nazwa użytkownika SSH Zachowaj wstępnie wypełniona wartość sshuser.
    Hasło SSH Wprowadź hasło.
    Logowanie administratora sql Zachowaj wstępnie wypełniona wartość sqluser.
    Hasło administratora 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 tego , jeśli chcesz... ... interaktywna powłoka ...przetwarzanie wsadowe ... z tego systemu operacyjnego klienta
Protokół SSH ? ? Linux, Unix, macOS 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 programu Microsoft SQL Server lub usługi SQL Database nie obsługuje obecnie operacji wstawiania zbiorczego.
  • Batching — w przypadku usługi HDInsight opartej na systemie Linux podczas korzystania z przełącznika -batch podczas 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: