我正在尝试设置一个sqoop导入,以从intersystems cach获取一个查询é 放进 hive 的table里;我已成功连接,但在Map阶段开始大约2分钟后,作业失败,并显示连接超时消息。
我将提供sqoop作业和以下消息:
sqoop import
-Dhadoop.security.credential.provider.path=jceks://hdfs/user/bigdata/myCachePWD.password.jceks
--connect jdbc:Cache://server:1972/database
--username my_username
--password-alias myCachePWD.password.alias
--table sds.T00055_PCTE
--hive-database stg_splunk
--hive-table t00055_pcte
--hive-overwrite
--hive-import
--num-mappers 10
--as-parquetfile
--compress
--compression-codec org.apache.hadoop.io.compress.SnappyCodec
--warehouse-dir /user/hive/warehouse/stage/
--driver com.intersys.jdbc.CacheDriver
--split-by DT_ICLO
下面是相关的错误日志:
19/12/30 16:24:14 info mapreduce.jobsubmitter:提交作业令牌:作业\u 1577368744752 \u 0394 19/12/30 16:24:15 info impl.yarclientimpl:提交的应用程序应用程序\u 1577368744752 \u 0394 19/12/30 16:24:15 info mapreduce.job:跟踪作业的url:http://[server]:8088/proxy/application \u 1577368744752 \u 0394/19/12/30 16:24:15 infomapreduce.job:正在运行job:job\u 157736874752\u 0394 19/12/30 16:24:46 info mapreduce.job:job job\u 157736874752\u 0394正在uber模式下运行:false 19/12/30 16:24:46 info mapreduce.job:map 0%reduce 0%19/12/30 16:27:25 info mapreduce.job:任务id:尝试\u 157736874752\u m\u000000\u 0,状态:失败错误:java.lang.runtimeexception:java.lang.runtimeexception:java.sql.sqlexception:[cache jdbc]通信链接失败:org.apache.sqoop.mapreduce.db.dbinputformat.setdbconf(dbinputformat)上的连接超时(连接超时)。java:170)位于org.apache.sqoop.mapreduce.db.dbinputformat.setconf(dbinputformat)。java:161) 位于org.apache.hadoop.util.reflectionutils.setconf(reflectionutils。java:73)位于org.apache.hadoop.util.reflectionutils.newinstance(reflectionutils。java:133)在org.apache.hadoop.mapred.maptask.runnewmapper(maptask。java:755)在org.apache.hadoop.mapred.maptask.run(maptask。java:341)在org.apache.hadoop.mapred.yarnchild$2.run(yarnchild。java:164)在javax.security.auth.subject.doas(主题)中的java.security.accesscontroller.doprivileged(本机方法)。java:422)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1920)在org.apache.hadoop.mapred.yarnchild.main(yarnchild。java:158)原因:java.lang.runtimeexception:java.sql.sqlexception:[cache jdbc]通信链接失败:org.apache.sqoop.mapreduce.db.dbinputformat.getconnection(dbinputformat)上的连接超时(连接超时)。java:223)位于org.apache.sqoop.mapreduce.db.dbinputformat.setdbconf(dbinputformat)。java:168) ... 还有10个原因:java.sql.sqlexception:[cache jdbc]通信链路故障:com.intersys.jdbc.cacheconnection.connect(cacheconnection)处的连接超时(连接超时)。java:1063)在com.intersys.jdbc.cacheconnection.(cacheconnection。java:370)在com.intersys.jdbc.cachedriver.connect(cachedriver。java:211)在java.sql.drivermanager.getconnection(驱动管理器)。java:664)在java.sql.drivermanager.getconnection(drivermanager。java:247)在org.apache.sqoop.mapreduce.db.dbconfiguration.getconnection(dbconfiguration。java:302)在org.apache.sqoop.mapreduce.db.dbinputformat.getconnection(dbinputformat。java:216) ... 还有11个
我不确定我是否找到了正确的司机;我从中复制了缓存驱动程序 DBeaver
进入 /var/lib/sqoop
使用了 com.intersys.jdbc.CacheDriver
在sqoop工作中;它确实连接,所以我不确定是驱动程序版本问题还是其他服务器端配置问题。。。
任何见解都将不胜感激。
1条答案
按热度按时间kknvjkwl1#
原来是防火墙问题;访问权限只授予集群中的两台机器,因此当sqoop从其他机器发出Map器来读取cach时é, 来自这些节点的连接被拒绝。