请找到我的以下问题并帮助我解决它。
我有一个 sqoop 语句,它使用 attunity jdbc 驱动程序将数据从大型机带到 Hadoop(Hive)。
sqoop import \
--connect "jdbc:attconnect://X.X.1.1:8883;DefTdpName=PROD_E;OneTdpMode=1"\
--driver "com.attunity.jdbc.NvDriver" \
--query Select * FROM how_record WHERE \$CONDITIONS" \
--fields-terminated-by "\t" \
--hive-import \
--hive-overwrite \
--delete-target-dir \
--null-string '\\N' \
--null-non-string '\\N' \
--hive-delims-replacement '' \
--target-dir "path/how_record" \
--fetch-size 50000 \
--hive-table "how_record" -m 1
当我第一次在 sqoop 语句之上运行时,我不断收到套接字超时错误。
ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: JBC0088E: JBC0002E: Socket timeout detected: Read timed out java.sql.SQLException: JBC0088E: JBC0002E: Socket timeout detected: Read timed out at com.attunity.jdbc.NvSQLWarning.createSQLException(Unknown Source) at com.attunity.comm.XmsgComm.xMsgThrowTimeoutEx(Unknown Source) at com.attunity.comm.XmsgComm.treatInterruptedIOException(Unknown Source) at com.attunity.comm.XmsgComm.xMsgPerformCall(Unknown Source) at com.attunity.comm.Daemon.GetServer(Unknown Source) at com.attunity.navapi.SysTdp.getRemoteSysTdp(Unknown Source) at com.attunity.jdbc.NvConnectionBase.open(Unknown Source) at com.attunity.jdbc.NvConnectPropertiesBase.openConnection(Unknown Source) at com.attunity.jdbc.NvDriverCoreBase.connect(Unknown Source) at com.attunity.jdbc.NvDriverCoreBase.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:270)
但是当我第二次(立即)运行到一个以上时,错误会自动解决并且 sqoop 正在成功完成。
只有当我第一次运行 sqoop 时,我才会遇到这个问题。
我浏览了一些博客,错误可能与 JDBC 中的连接池有关。
我的背景主要是相关的DATA,在JAVA方面没有太多经验。
有人可以帮我找出实际问题和解决方案。
提前致谢!!