请找到以下问题并帮助我解决。
我有一个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 HOW0680_CONTROL_NUMBER,HOW0680_POLICY_STATUS,HOW0680_EFFECTIVE_DATE,HOW0680_EXPIRATION_DATE,HOW0680_INSURED_NAME,HOW0680_RATED_STATE , HOW0680_REST_OF_RECORD , $1 RUNID FROM how0680_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 "/apps/hive/warehouse/tmp/prod_temp.db/how0680_record" \
--fetch-size 50000 \
--hive-table "prod_temp.how0680_record" -m 1
当我第一次在sqoop语句上运行时,我不断收到套接字超时错误。
错误manager.SqlManager:执行语句出错:java.sql.SQLException:JBC0088E:JBC0002E:检测到套接字超时:阅读超时
java.sql.SQLException:JBC0088E:JBC0002E:检测到套接字超时:阅读超时
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
来源)
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成功完成。
仅当我第一次运行时才遇到此问题。
我浏览了很少的博客,并且错误可能与JDBC中的连接池有关。
我的背景主要是相关数据,在JAVA方面经验不足。
有人可以帮我找出实际的问题和解决方案。
谢谢!!
您是否查看了数据库服务器上的负载?我猜这就是瓶颈所在。这个配置仅对您有用,可以扩展您的数据库服务器,或具有多个服务器,每个服务器一组不同的表。