Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 CLUSTERNAME názvem vašeho clusteru, a poté zadejte příkaz:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.netPro usnadnění použití nastavte proměnné. Nahraďte
PASSWORD,MYSQLSERVERaMYDATABASEodpoví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 Hive 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_CONNECTZadáním následujícího příkazu zobrazíte seznam tabulek pro zadanou databázi:
sqoop list-tables --connect $SERVER_DB_CONNECTPokud chcete exportovat data z tabulky Hive
hivesampletabledomobiledatatabulky 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 hivesampletableK 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
mobiledatatabulky v SQL do adresáře ve služběwasbs:///tutorials/usesqoop/importeddataHDInsight. Pole v datech jsou oddělena 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 1Pří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 1Po 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-00000Pomocí beeline ověřte, že se tabulka vytvořila v Hivu.
Připojit
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 přímou trasu 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í
-batchpř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 dokumentu Jak připojit HDInsight k místní síti.
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.