执行hive报错信息如下所示:
124637 [433e5410-af89-4061-bf3c-09c912efc845 main-LocalTask-MAPREDLOCAL-stderr] WARN org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask - I/O error in redirector thread.
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at org.apache.hadoop.hive.common.log.LogRedirector.run(LogRedirector.java:64)
at java.lang.Thread.run(Thread.java:750)
博主在百度上面并没找到相同的bug,但是经过网络上面多篇文章的分析最终找到了解决的办法,但是并没有找到这个bug发生的根本原因。
#hive默认是开启mapjoin优化的,我的解法就是将这个优化给关闭了。
#在执行hql之前先执行以下语句关闭mapjoin
set hive.auto.convert.join = false;