Použití Apache Sqoopu k importu a exportu dat mezi Apache Hadoopem ve službě HDInsight a službou Azure SQL Database
Naučte se používat Apache Sqoop k importu a exportu mezi clusterem Apache Hadoop v Azure HDInsight a Azure SQL Database nebo Microsoft SQL Serverem. Kroky v tomto dokumentu používají sqoop
příkaz přímo z hlavního uzlu clusteru Hadoop. Pomocí SSH se připojíte k hlavnímu uzlu a spustíte příkazy v tomto dokumentu. Tento článek je pokračováním použití Apache Sqoopu se systémem Hadoop ve službě HDInsight.
Požadavky
Dokončení nastavení testovacího prostředí z použití Apache Sqoopu se systémem Hadoop ve službě HDInsight
Klient SSH. Další informace najdete v tématu Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH.
Znalost Sqoopu. Další informace naleznete v uživatelské příručce Sqoop.
Nastavení
Pomocí příkazu ssh se připojte ke clusteru. Upravte následující příkaz nahrazením clusteru názvem clusteru a zadáním příkazu:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Pro usnadnění použití nastavte proměnné. Nahraďte
PASSWORD
,MYSQLSERVER
aMYDATABASE
odpovídajícími hodnotami a zadejte následující příkazy:export PASSWORD='PASSWORD' export SQL_SERVER="MYSQLSERVER" export DATABASE="MYDATABASE" export SERVER_CONNECT="jdbc:sqlserver://$SQL_SERVER.database.windows.net:1433;user=sqluser;password=$PASSWORD" export SERVER_DB_CONNECT="jdbc:sqlserver://$SQL_SERVER.database.windows.net:1433;user=sqluser;password=$PASSWORD;database=$DATABASE"
Export Sqoopu
Z Hivu do SQL.
Pokud chcete ověřit, že Sqoop vidí vaši databázi, zadejte do otevřeného připojení SSH následující příkaz. Tento příkaz vrátí seznam databází.
sqoop list-databases --connect $SERVER_CONNECT
Zadáním následujícího příkazu zobrazíte seznam tabulek pro zadanou databázi:
sqoop list-tables --connect $SERVER_DB_CONNECT
Pokud chcete exportovat data z tabulky Hive
hivesampletable
domobiledata
tabulky v databázi, zadejte do otevřeného připojení SSH následující příkaz:sqoop export --connect $SERVER_DB_CONNECT \ -table mobiledata \ --hcatalog-table hivesampletable
K ověření exportu dat použijte následující dotazy z připojení SSH k zobrazení exportovaných dat:
sqoop eval --connect $SERVER_DB_CONNECT \ --query "SELECT COUNT(*) from dbo.mobiledata WITH (NOLOCK)" sqoop eval --connect $SERVER_DB_CONNECT \ --query "SELECT TOP(10) * from dbo.mobiledata WITH (NOLOCK)"
Import Sqoopu
Z SQL do úložiště Azure.
Do otevřeného připojení SSH zadejte následující příkaz pro import dat z
mobiledata
tabulky v SQL do adresáře ve služběwasbs:///tutorials/usesqoop/importeddata
HDInsight. Pole v datech jsou oddělená znakem tabulátoru a řádky jsou ukončeny znakem nového řádku.sqoop import --connect $SERVER_DB_CONNECT \ --table mobiledata \ --target-dir 'wasb:///tutorials/usesqoop/importeddata' \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' -m 1
Případně můžete také zadat tabulku Hive:
sqoop import --connect $SERVER_DB_CONNECT \ --table mobiledata \ --target-dir 'wasb:///tutorials/usesqoop/importeddata2' \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' \ --create-hive-table \ --hive-table mobiledata_imported2 \ --hive-import -m 1
Po dokončení importu zadejte do otevřeného připojení SSH následující příkaz, který zobrazí seznam dat v novém adresáři:
hadoop fs -tail /tutorials/usesqoop/importeddata/part-m-00000
Pomocí beeline ověřte, že se tabulka vytvořila v Hivu.
Propojit
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
Spusťte každý dotaz níže po jednom a zkontrolujte výstup:
show tables; describe mobiledata_imported2; SELECT COUNT(*) FROM mobiledata_imported2; SELECT * FROM mobiledata_imported2 LIMIT 10;
Ukončete beeline s
!exit
.
Omezení
Hromadný export – S Linuxem HDInsight konektor Sqoop používaný k exportu dat do SQL nepodporuje hromadné vkládání.
Dávkování – se službou HDInsight se systémem Linux, při použití
-batch
přepínače při provádění vkládání provede Sqoop několik vložení místo dávkování operací vložení.
Důležitá poznámka
HDInsight i SQL Server musí být ve stejné virtuální síti Azure.
Příklad najdete v tématu Postup připojení SLUŽBY HDInsight k místnímu síťovému dokumentu.
Další informace o použití služby HDInsight s virtuální sítí Azure najdete v dokumentu o rozšíření SLUŽBY HDInsight s využitím služby Azure Virtual Network . Další informace o službě Azure Virtual Network najdete v dokumentu Přehled virtuální sítě.
SQL Server musí být nakonfigurovaný tak, aby povoloval ověřování SQL. Další informace najdete v dokumentu Zvolit režim ověřování.
Možná budete muset sql Server nakonfigurovat tak, aby přijímala vzdálená připojení.
Další kroky
Teď jste se naučili používat Sqoop. Další informace najdete v následujících tématech:
- Použití Apache Oozie se službou HDInsight: Použijte akci Sqoop v pracovním postupu Oozie.
- Analýza dat zpoždění letů pomocí HDInsight: Pomocí Interaktivního dotazu můžete analyzovat data zpoždění letů a pak pomocí Sqoopu exportovat data do databáze v Azure.
- Nahrání dat do SLUŽBY HDInsight: Najděte další metody pro nahrání dat do služby HDInsight nebo Azure Blob Storage.