Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Meer informatie over het gebruik van Apache Sqoop om te importeren en exporteren tussen een Apache Hadoop-cluster in Azure HDInsight en Azure SQL Database of Microsoft SQL Server. In de stappen in dit document wordt de sqoop opdracht rechtstreeks vanuit het hoofdknooppunt van het Hadoop-cluster gebruikt. U gebruikt SSH om verbinding te maken met het hoofdknooppunt en de opdrachten in dit document uit te voeren. Dit artikel is een vervolg van Apache Sqoop gebruiken met Hadoop in HDInsight.
Vereisten
- Voltooiing van de testomgeving instellen vanuit Apache Sqoop gebruiken met Hadoop in HDInsight. 
- Een SSH-client. Zie voor meer informatie Verbinding maken met HDInsight (Apache Hadoop) via SSH. 
- Bekendheid met Sqoop. Zie de Gebruikershandleiding voor Sqoop voor meer informatie. 
Instellen
- Gebruik de ssh-opdracht om verbinding te maken met uw cluster. Bewerk de onderstaande opdracht door CLUSTERNAME te vervangen door de naam van uw cluster. Voer vervolgens deze opdracht in: - ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
- Stel variabelen in voor gebruiksgemak. Vervang, - PASSWORDen- MYSQLSERVERdoor- MYDATABASEde relevante waarden en voer de onderstaande opdrachten in:- 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 met Sqoop
Van Hive naar SQL.
- Als u wilt controleren of Sqoop uw database kan zien, voert u de onderstaande opdracht in uw geopende SSH-verbinding in. Met deze opdracht wordt een lijst met databases geretourneerd. - sqoop list-databases --connect $SERVER_CONNECT
- Voer de volgende opdracht in om een lijst met tabellen voor de opgegeven database weer te geven: - sqoop list-tables --connect $SERVER_DB_CONNECT
- Als u gegevens uit de Hive-tabel - hivesampletablewilt exporteren naar de- mobiledatatabel in uw database, voert u de onderstaande opdracht in uw open SSH-verbinding in:- sqoop export --connect $SERVER_DB_CONNECT \ -table mobiledata \ --hcatalog-table hivesampletable
- Als u wilt controleren of gegevens zijn geëxporteerd, gebruikt u de volgende query's vanuit uw SSH-verbinding om de geëxporteerde gegevens weer te geven: - 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)"
Sqoop importeren
Van SQL naar Azure Storage.
- Voer de onderstaande opdracht in uw geopende SSH-verbinding in om gegevens uit de - mobiledatatabel in SQL te importeren in de- wasbs:///tutorials/usesqoop/importeddatamap in HDInsight. De velden in de gegevens worden gescheiden door een tabteken en de regels worden beëindigd door een nieuw regelteken.- sqoop import --connect $SERVER_DB_CONNECT \ --table mobiledata \ --target-dir 'wasb:///tutorials/usesqoop/importeddata' \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' -m 1
- U kunt ook een Hive-tabel opgeven: - 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
- Nadat het importeren is voltooid, voert u de volgende opdracht in uw geopende SSH-verbinding in om de gegevens in de nieuwe map weer te geven: - hadoop fs -tail /tutorials/usesqoop/importeddata/part-m-00000
- Gebruik beeline om te controleren of de tabel is gemaakt in Hive. - Verbinden - beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
- Voer elke query één voor één uit en controleer de uitvoer: - show tables; describe mobiledata_imported2; SELECT COUNT(*) FROM mobiledata_imported2; SELECT * FROM mobiledata_imported2 LIMIT 10;
- Sluit beeline af met - !exit.
 
Beperkingen
- Bulkexport: met HDInsight op basis van Linux biedt de Sqoop-connector die wordt gebruikt voor het exporteren van gegevens naar SQL geen ondersteuning voor bulkinvoegingen. 
- Batching - Met Linux-gebaseerde HDInsight en het gebruik van de - -batchswitch, voert Sqoop meerdere invoegingen uit in plaats van de invoegbewerkingen in batches uit te voeren.
Belangrijke aandachtspunten
- Zowel HDInsight als SQL Server moeten zich in hetzelfde virtuele Azure-netwerk bevinden. - Zie het document Hoe u HDInsight kunt verbinden met uw on-premises netwerk voor een voorbeeld. - Zie voor meer informatie over het gebruik van HDInsight met een virtueel Azure-netwerk het document HDInsight uitbreiden met Azure Virtual Network. Zie het document Virtual Network Overview (Overzicht van virtueel netwerk) voor meer informatie over Azure Virtual Network. 
- SQL Server moet worden geconfigureerd om SQL-verificatie toe te staan. Zie het document Een verificatiemodus kiezen voor meer informatie. 
- Mogelijk moet u SQL Server configureren om externe verbindingen te accepteren. 
Volgende stappen
U hebt nu geleerd hoe u Sqoop gebruikt. Raadpleeg voor meer informatie:
- Apache Oozie gebruiken met HDInsight: Sqoop-actie gebruiken in een Oozie-werkstroom.
- Vluchtvertragingsgegevens analyseren met BEHULP van HDInsight: Interactive Query gebruiken om vluchtvertragingsgegevens te analyseren en vervolgens Sqoop gebruiken om gegevens te exporteren naar een database in Azure.
- Gegevens uploaden naar HDInsight: zoek andere methoden voor het uploaden van gegevens naar HDInsight/Azure Blob Storage.