In HDP 2.3.2 con Sqoop 1.4.6, sto cercando di importare tabelle da SQL Server 2008.Sqoop: Importazione dal lancio di SQL Server "La connessione TCP/IP all'host xxxx, la porta 1433 non è riuscita" durante le attività della mappa
sono in grado di connettersi al SQL Server perché posso elencare i database e le tabelle ecc
Tuttavia, ogni volta durante le importazioni mi imbatto nel seguente errore:
Error: java.lang.RuntimeException: java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host x.x.x.x, port 1433 has failed. Error: "connect timed out. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
Anche in questo caso, sono in grado di importare correttamente da SQL Server, ma solo dopo un paio di tentativi. Tuttavia, indipendentemente dal fatto che l'importazione sia riuscita o meno, ottengo sempre l'errore menzionato sopra e mi chiedevo quale potrebbe essere la causa del problema? È piuttosto ingombrante dover continuare a ripetere le importazioni ogni volta che falliscono.
Ho già disattivato il timeout della connessione su SQL Server e, sebbene la connessione dal cluster Hadoop e SQL Server passi attraverso il firewall aziendale, i nostri amministratori mi dicono che il timeout sul firewall è 3600 secondi. Le importazioni falliscono prima di avvicinarsi a quel marchio.
Solo un esempio di uno dei comandi Sqoop io uso:
sqoop import \
--connect "jdbc:sqlserver://x.x.x.:1433;database=CEMHistorical" \
--table StreamSummary --username hadoop \
--password-file hdfs:///user/sqoop/.adg.password --hive-import \
--hive-overwrite --create-hive-table --split-by OfferedTime \
--hive-table develop.streamsummary --map-column-hive Call_ID=STRING,Stream_ID=STRING,OriginalCall_ID=STRING,TransactionID=TIMESTAMP
Aggiornamento:
Dopo entrando in contatto con il nostro team di rete, sembra che questo è sicuramente un problema di rete . Per aggiungere contesto, il cluster Hadoop si trova su una VLAN diversa come SQL Server e attraversa una serie di firewall. Per testare, ho provato a importare da un altro SQL Server all'interno della stessa VLAN del cluster Hadoop e non ho riscontrato questa eccezione.
È possibile chiedere agli amministratori di rete di controllare i registri del firewall quando la connessione ha esito negativo? Forse potrebbe far luce sulla questione? –
Gliel'ho chiesto, ma di solito ci vuole un bel po 'di tempo per tornare da me ... aggiornerò di nuovo la domanda non appena avrò notizie da loro. –