Sqoop:在映射任务期间从SQL Server导入"与主机xxxx的TCP/IP连接,端口1433失败"

Ton*_*res 9 sql-server-2008 sqoop hortonworks-data-platform

在带有Sqoop 1.4.6的HDP 2.3.2上,我正在尝试从SQL Server 2008导入表.

我能够成功连接到SQL Server,因为我可以列出数据库和表等.

但是,在导入过程中每次遇到以下错误:

错误:java.lang.RuntimeException:java.lang.RuntimeException:com.microsoft.sqlserver.jdbc.SQLServerException:与主机xxxx,端口1433的TCP/IP连接失败.错误:"连接超时.验证连接属性.确保主机上正在运行SQL Server实例并接受端口上的TCP/IP连接.确保防火墙不阻止与端口的TCP连接. ".

我再次实际上能够从SQL Server成功导入,但只能在几次重试后才能成功导入.但是,无论导入成功还是失败,我总是得到上面提到的错误,我想知道是什么原因导致了这个问题?每当失败时必须继续重复导入是相当麻烦的.

我已经关闭了SQL Server上的连接超时,虽然来自Hadoop集群和SQL Server的连接通过我们的公司防火墙,但是我们的管理员告诉我防火墙上的超时是3600秒.在达到该标记附近之前,进口失败.

只是我使用的一个sqoop命令的示例:

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
Run Code Online (Sandbox Code Playgroud)

更新:

在与我们的网络团队取得联系后,似乎这绝对是一个网络问题.要添加上下文,Hadoop集群与SQL Server位于不同的VLAN上,并且它通过许多防火墙.为了测试,我尝试从与Hadoop集群相同的VLAN内的不同SQL Server导入,但我根本没有遇到此异常.

Ton*_*res 1

在此发布此作为参考:

我从未收到过我们网络团队关于防火墙日志的回复,但我们的 NameNode 操作系统已损坏,必须重新格式化并重新安装 HDP。由于某种原因,我们不再遇到此错误。

原始集群和新安装之间的一个区别是,我们有 4 个节点(1 个名称节点和 3 个数据节点),这些节点被虚拟化在一台服务器中。现在,我们正在运行单节点集群 (HDP 2.3.4),服务器上没有虚拟化。