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.log
adrese . 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/hivesampletable
adrese . 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.
Výběrem následujícího obrázku otevřete šablonu Resource Manageru na webu Azure Portal.
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ě jee6qhezrh2pdqu
.Vyberte Souhlasím s podmínkami a ujednáními uvedenými výše.
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:
- Použití Apache Hivu se službou HDInsight
- Nahrání dat do SLUŽBY HDInsight: Najděte další metody pro nahrání dat do služby HDInsight nebo Azure Blob Storage.
- Import a export dat mezi Apache Hadoopem ve službě HDInsight a SQL Database pomocí Apache Sqoopu