我正在尝试设置一个Sqoop导入,以便将查询从Intersystems Caché中提取到Hive表中;我已经成功连接,但在映射阶段开始大约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: job_1577368744752_0394 19/12/30 16:24:15 INFO impl.YarnClientImpl: application_1577368744752_0394 19/12/30 16:24:15 INFO mapreduce.Job:http://[SERVER]:8088/proxy/application_1577368744752_0394/ 19/12/30 16:24:15 INFO mapreduce.Job: job_1577368744752_0394 19/12/30 16:24:46 INFO mapreduce.Job:运行在uber模式下的作业job_1577368744752_0394 : false 19/12/30 16:24:46 INFO mapreduce.Job: map 0%减少0% 19/12/30 16:27:25 INFO mapreduce.Job:任务Id : attempt_1577368744752_0394_m_000000_0状态:失败错误: org.apache.sqoop.mapreduce.db.DBInputFormat.setDbConf(DBInputFormat.java:170):java.lang.RuntimeException: java.sql.SQLException:缓存JDBC通信链接失败:连接超时(连接超时)在org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73) at org.apache.hadoop.util.ReflectionUtils的org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73)。org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:755) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1920)在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)引起的: java.lang.RuntimeException: java.sql.SQLException:缓存JDBC通信链接失败: org.apache.sqoop.mapreduce.db.DBInputFormat.setDbConf(DBInputFormat.java:168)的org.apache.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:223)的连接超时(连接超时). 10多个原因是: java.sql.SQLException:缓存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(DriverManager.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中,并在sqoop作业中使用了com.intersys.jdbc.CacheDriver;但是它确实是连接的,所以我不确定是驱动程序版本问题还是其他服务器端配置问题.
任何洞察力都将不胜感激。
发布于 2020-01-02 20:44:14
实际上,这是一个防火墙问题;我们的集群中只有两台机器被授予访问权限,所以当Sqoop从其他机器发送映射器从Caché读取时,来自这些节点的连接被拒绝了。
https://stackoverflow.com/questions/59567309
复制相似问题