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