在jdbc url 后面追加参数 ,设定各种超时时间参数设置为1800秒,因为hive任务可能会执行比较久,所以超时时间设置长一点

hive.metastore.client.socket.timeout=1800&hive.server.read.socket.timeout=1800&hive.server.write.socket.timeout=1800&hive.server.thrift.socket.timeout=1800&hive.client.thrift.socket.timeout=1800


以下是我追加参数后的url

jdbc:hive2://bigdata-test:10000/test?mapreduce.job.queuename=root.test&hive.metastore.client.socket.timeout=1800&hive.server.read.socket.timeout=1800&hive.server.write.socket.timeout=1800&hive.server.thrift.socket.timeout=1800&hive.client.thrift.socket.timeout=1800,username=hdfs,password=hdfs

在通过jdbc 创建 Statement 语句对象时,设置语句对象的查询超时时间为1800秒,由于执行hive sql 比较耗时,所以一定要设置一个合理的时间,等待hive sql 返回结果(此步骤非常关键!!!)

对应的api  方法如下: stmt为 java.sql.Statement 对象实例

 stmt.setQueryTimeout(1800);


对应的截图如下:

基于CDH构建离线数仓,在通过JDBC向 Hive Server2提交作业时出现 java .net . Socket Timeout Exception : Read time d out 错误,导致大批量的作业失败,不能按时产生数据,已严重影响到业务运行。 最近由于一些表中每条数据量过大,导致查询时一条sql(100条)过了很久都没有查出。所以遇到这种情况时可以修改sql为一条一条查。 这时需要设置超时时间: prepareStatement= con.prepareStatement(selectSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_ READ _ONLY); // 设置超时时间为30s prepareStatement.setQuery Timeout (30); resultSet = ps.exe 数据库表的数据量大概50W左右,在报表设计器下创建了 hive 的数据源,连接正常,由于数据量比较大,就用了润乾报表的 大数据 报表功能,报表设置好后,发布到页面中报错: 数据集ds1中,SQL语句SELECT *  FROM general_bil::org.apache.thrift.transport.TTransport Exception : java .net . Socket Timeout Excep...           最近项目中写了个提数的的系统,该系统架构类似 Hadoop 里面的namenode和tasknode工作方式,客户端好像是tasknode,服务端namenode,是通过http通讯。           客户端从服务端领取提数任务时候,每个任务都启动下单独的客户端(jar包)去执行,提取数据生成cvs或者txt的文档,发送到网盘中,然后客户端执行完成退出。... set hive .metastore.client. socket . timeout =500; --指定MR任务运行队列 set mapreduce.job.queuename=bigdata; --指定作业名称,如果脚本中有多个sql语句,那么你设定jobname后,所有的sql生成的job都会有同一个名字 set mapred.job.name=jobname; 并行化配置 hive 默认job是顺序进行的,一个HQL拆分成 1、 问题 描述 在 Hive 升级到2.3.6版本后,启动 Hive server2需要花费15分钟左右的时间,这对于平时调试和紧急重启影响很大。因此查看启动log,发现两处疑点: 发现主要耗时就在这两处,第一次6分多钟第二次刚好5分钟。 2、 问题 排查 不多不少的5分钟让我想到了配置metastore连接的超时时间( hive .metastore.client. socket . timeout )刚好也是300s,于是去看这部分代码,并增加了些日志来排查。 org/apache/ hadoop / hive /metastore 2) hive Connection的 socket 超时时间通过login Timeout 进行设置,而login Timeout 读取的DriverManager的超时时间,因此,在创建 hive 连接时需要设置DriverManage的login Timeout 属性。总结: hive 中执行SQL的耗时较长,需要增大网络读超时时间的值,如果使用Hikari数据库连接池管理 hive 连接,可以通过配置连接超时时间来改变 hive 的读超时时间。不能盲目跟随,需要结合各自应用进行配置。 hive -jdbc版本:2.3.9。