Description
I hava met the problem that Hive process cannot create new threads because of lots of OutputStream not closed.
Here is the part of jstack info:
"Thread-35783" daemon prio=10 tid=0x00007f8f58f02800 nid=0x18cc in Object.wait() [0x00007f8e632c0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:577)
- locked <0x000000061af52d50> (a java.util.LinkedList)
and the related error log:
org.apache.hadoop.hive.ql.parse.SemanticException: Unable to create temp file for insert values Expression of type TOK_TABLE_OR_COL not supported in insert/values
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genValuesTempTable(SemanticAnalyzer.java:812)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1(SemanticAnalyzer.java:1207)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1(SemanticAnalyzer.java:1410)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genResolvedParseTree(SemanticAnalyzer.java:10136)
Caused by: org.apache.hadoop.hive.ql.parse.SemanticException: Expression of type TOK_TABLE_OR_COL not supported in insert/values
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.unparseExprForValuesClause(SemanticAnalyzer.java:858)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genValuesTempTable(SemanticAnalyzer.java:785)
... 15 more
It shows the output stream won't close if caught exception in funtion unparseExprForValuesClause in SemanticAnalyzer.java