wangwenli created HIVE-11681: -------------------------------- Summary: sometimes when query mr job progress, stream closed exception will happen Key: HIVE-11681 URL: https://issues.apache.org/jira/browse/HIVE-11681 Project: Hive Issue Type: Bug Components: HiveServer2 Affects Versions: 1.2.1 Reporter: wangwenli
sometimes the hiveserver will throw below exception , 2015-08-28 05:05:44,107 | FATAL | Thread-82995 | error parsing conf mapred-default.xml | org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2404) java.io.IOException: Stream closed at java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:84) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:160) at java.io.FilterInputStream.read(FilterInputStream.java:133) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2902) at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:302) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1753) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1426) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2807) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2246) at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2234) at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2305) at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2258) at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2175) at org.apache.hadoop.conf.Configuration.get(Configuration.java:854) at org.apache.hadoop.mapred.JobConf.checkAndWarnDeprecation(JobConf.java:2069) at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:477) at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:467) at org.apache.hadoop.mapreduce.Cluster.getJob(Cluster.java:187) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:580) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:578) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1612) at org.apache.hadoop.mapred.JobClient.getJobUsingCluster(JobClient.java:578) at org.apache.hadoop.mapred.JobClient.getJob(JobClient.java:596) at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:289) at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:548) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:435) at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:159) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85) at org.apache.hadoop.hive.ql.exec.TaskRunner.run(TaskRunner.java:72) after analysis, we found the root cause, below is step to reproduce the issue 1. open one beeline window, add jar 2. execute one sql like create table abc as select * from t1; 3. execute !quit, before this add a breakpoint at java.net.URLClassLoader.close(), so it will stop here 4. open another beeline window 5. execute one sql like select count(*) from t1, before this add one condition breakpoint at org.apache.hadoop.conf.Configuration.parse, the condition is url.toString().indexOf("hadoop-mapreduce-client-core-V100R001C00.jar!/mapred-default.xml")>0 6. when proceed to the above step, just get the stream 7. let the 3th step go ahead, which will close the stream 8. now, let sixth step go ahead, then the above exception coming suggest solution: the issue is hadppend when client use add jar + short connection , the client app should try best to use long connection, means reuse hive connetion meanwhile, here ,experts can suggest good solution for this issue -- This message was sent by Atlassian JIRA (v6.3.4#6332)