Použití Apache Sqoopu s Hadoopem ve službě HDInsight

Naučte se používat Apache Sqoop ve službě HDInsight k importu a exportu dat mezi clusterem HDInsight a Azure SQL Database.

Přestože apache Hadoop je přirozenou volbou pro zpracování nestrukturovaných a částečně strukturovaných dat, jako jsou protokoly a soubory, může být také potřeba zpracovávat strukturovaná data uložená v relačních databázích.

Apache Sqoop je nástroj určený k přenosu dat mezi clustery Hadoop a relačními databázemi. Můžete ho použít k importu dat ze systému pro správu relačních databází (RDBMS), jako je SQL Server, MySQL nebo Oracle, do systému souborů HDFS (Hadoop Distributed File System), transformovat data v Hadoopu pomocí MapReduce nebo Apache Hive a pak data exportovat zpět do RDBMS. V tomto článku používáte pro relační databázi Azure SQL Database.

Důležité

Tento článek nastaví testovací prostředí pro přenos dat. Pak zvolíte metodu přenosu dat pro toto prostředí z jedné z metod v části Spuštění úloh Sqoop.

Informace o verzích Sqoop podporovaných v clusterech HDInsight najdete v tématu Co je nového ve verzích clusterů poskytovaných službou HDInsight?

Vysvětlení scénáře

Cluster HDInsight obsahuje ukázková data. Použijete následující dvě ukázky:

  • Soubor protokolu Apache Log4j , který se nachází na adrese /example/data/sample.log. Ze souboru se extrahují následující protokoly:
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
...
  • Tabulka Hive s názvem hivesampletable, která odkazuje na datový soubor umístěný na adrese /hive/warehouse/hivesampletable. Tabulka obsahuje některá data mobilních zařízení.

    Pole Datový typ
    Clientid řetězec
    čas dotazu řetězec
    Trhu řetězec
    deviceplatform řetězec
    devicemake řetězec
    devicemodel řetězec
    state řetězec
    country řetězec
    dotazdwelltime double
    Sessionid bigint
    sessionpagevieworder bigint

V tomto článku použijete tyto dvě datové sady k otestování importu a exportu Sqoopu.

Nastavení testovacího prostředí

Cluster, databáze SQL a další objekty se vytvářejí prostřednictvím Azure Portal pomocí šablony Azure Resource Manager. Šablonu najdete v tématu Šablony rychlého zprovoznění Azure. Šablona Resource Manager volá balíček bacpac pro nasazení schémat tabulek do databáze SQL. Pokud chcete pro soubory bacpac použít privátní kontejner, použijte v šabloně následující hodnoty:

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

Poznámka

Import pomocí šablony nebo Azure Portal podporuje jenom import souboru BACPAC ze služby Azure Blob Storage.

  1. Výběrem následujícího obrázku otevřete šablonu Resource Manager v Azure Portal.

    Tlačítko Nasadit do Azure pro nový cluster

  2. Zadejte tyto vlastnosti:

    Pole Hodnota
    Předplatné V rozevíracím seznamu vyberte své předplatné Azure.
    Skupina prostředků Vyberte skupinu prostředků z rozevíracího seznamu nebo vytvořte novou.
    Umístění V rozevíracím seznamu vyberte oblast.
    Název clusteru Zadejte název clusteru Hadoop. Používejte pouze malá písmena.
    Uživatelské jméno přihlášení clusteru Ponechte předvyplněnou hodnotu admin.
    Heslo přihlášení clusteru Zadejte heslo.
    Uživatelské jméno SSH Ponechte předvyplněnou hodnotu sshuser.
    Heslo SSH Zadejte heslo.
    Přihlášení sql Správa Ponechte předvyplněnou hodnotu sqluser.
    Heslo sql Správa Zadejte heslo.
    umístění _artifacts Pokud nechcete použít vlastní soubor bacpac v jiném umístění, použijte výchozí hodnotu.
    token SAS umístění _artifacts Ponechte prázdné.
    Název souboru Bacpac Pokud nechcete použít vlastní soubor bacpac, použijte výchozí hodnotu.
    Umístění Použijte výchozí hodnotu.

    Logický název sql serveru je <ClusterName>dbserver. Název databáze je <ClusterName>db. Výchozí název účtu úložiště je e6qhezrh2pdqu.

  3. Vyberte Souhlasím s výše uvedenými podmínkami a ujednáními.

  4. Vyberte Koupit. Zobrazí se nová dlaždice s názvem Odesílání nasazení pro nasazení šablony. Vytvoření clusteru a databáze SQL trvá přibližně 20 minut.

Spouštění úloh Sqoop

HDInsight může spouštět úlohy Sqoop pomocí různých metod. V následující tabulce se rozhodněte, která metoda je pro vás nejvhodnější, a pak postupujte podle odkazu na názorný postup.

Tuto možnost použijte , pokud chcete... ... interaktivní prostředí ... dávkové zpracování ... z tohoto klientského operačního systému
SSH ? ? Linux, Unix, Mac OS X nebo Windows
Sada .NET SDK pro systém Hadoop   ? Windows (prozatím)
Azure PowerShell   ? Windows

Omezení

  • Hromadný export – Ve službě HDInsight se systémem Linux konektor Sqoop používaný k exportu dat do Microsoft SQL Server nebo SQL Database v současné době nepodporuje hromadné vložení.
  • Dávkování – při použití linuxové služby HDInsight při použití -batch přepínače při provádění vkládání provádí Sqoop více vložení místo dávkování operací vložení.

Další kroky

Teď jste se naučili používat Sqoop. Další informace najdete v následujících tématech: