Sdílet prostřednictvím


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

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

I když je Apache Hadoop 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 distribuovaného systému souborů Hadoop (HDFS), transformovat data v Hadoopu pomocí MapReduce nebo Apache Hive a pak exportovat data zpět do rdBMS. V tomto článku používáte Azure SQL Database pro relační databázi.

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 Spustit úlohy Sqoop.

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

Vysvětlení scénáře

Cluster HDInsight obsahuje několik ukázkových dat. Použijete následující dvě ukázky:

  • Soubor protokolu Apache Log4j , který se nachází na /example/data/sample.logadrese . 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 /hive/warehouse/hivesampletableadrese . Tabulka obsahuje nějaká data mobilních zařízení.

    Pole Datový typ
    clientid string
    querytime string
    trh string
    deviceplatform string
    devicemake string
    model zařízení string
    state string
    country string
    querydwelltime 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 webu Azure Portal pomocí šablony Azure Resource Manageru. Šablonu najdete v šablonách rychlého startu Azure. Šablona Resource Manageru 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 webu Azure Portal podporuje pouze import souboru BACPAC z úložiště objektů blob v Azure.

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

    Tlačítko Nasadit do Azure pro nový cluster

  2. Zadejte následující vlastnosti:

    Pole Hodnota
    Předplatné V rozevíracím seznamu vyberte své předplatné Azure.
    Skupina prostředků V rozevíracím seznamu vyberte skupinu prostředků nebo vytvořte novou.
    Umístění V rozevíracím seznamu vyberte oblast.
    Název clusteru Zadejte název clusteru Hadoop. Používejte jenom malá písmena.
    Přihlašovací uživatelské jméno clusteru Ponechte předem vyplněnou hodnotu admin.
    Heslo pro přihlášení ke clusteru Zadejte heslo.
    Uživatelské jméno SSH Ponechte předem vyplněnou hodnotu sshuser.
    Heslo SSH Zadejte heslo.
    Přihlášení správce SQL Ponechte předem vyplněnou hodnotu sqluser.
    Heslo správce SQL 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.

    Název logického serveru SQL 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 podmínkami a ujednáními uvedenými výše.

  4. Vyberte Koupit. Zobrazí se nová dlaždice s názvem Odeslá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 můžete rozhodnout, která metoda je pro vás nejvhodnější, a pak postupujte podle odkazu pro 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, macOS X nebo Windows
Sada .NET SDK pro Hadoop   ? Windows (prozatím)
Azure PowerShell   ? Windows

Omezení

  • Hromadný export – S Linuxem HDInsight konektor Sqoop používaný k exportu dat do Microsoft SQL Serveru nebo SQL Database v současné době nepodporuje hromadné vkládání.
  • Dávkování – se systémem Linux 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: