hive运行报Call to master/**.** failed on local exception: java.nio.channels.ClosedByInterr

最近在运行hive任务时,会很频繁的报此错误信息,如下:

hive运行报Call to master/**.** failed on local exception: java.nio.channels.ClosedByInterr_第1张图片

原因是连接不上namenode的8020端口,此端口是hdfs的端口配置,导致原因如下:

就是运行一个SQL语句一次读6次写入不同表的任务导致。

解决方式:

将该SQL语句,进行拆分。测试5次后,不再出现这种情况。

目前该问题还没得到彻底解决。等待…………

通过几天的观察发现,与IPC的相关参数设置有关,通过查看hadoop相关的IPC源码发现,默认的IPC读线程只有一个,而且空闲时间太短。导致当我的一个SQL语句包含一次读多次写的场景时,偶尔会出现IPC来不及处理,然后被hadoop里的IPC监控线程判断出已经超时,导致IPC连接关闭(默认一次关闭10个连接)。
另外就是如果运行脚本内容(指SQL语句)太多,那么分多个SQL脚本分开运行。

 

你可能感兴趣的:(exception,sql,hadoop,脚本,任务,测试,hive)