记一次hive超时报错问题

最近在开发RDBMSHive/Impala/Kudu/HBase的载数功能。

碰到了一个hive一直超时的问题,可把人烦死了,就是悟空那个表情

然后排查了一下问题,记录一下。

关注博主不迷路,获取更多干货资源

1 场景

我们使用hive做数仓,将RDBMS的数据摄取到hive中,或者再到Kudu/HBase,这个一波操作的话,我们需要建两个表,一个hive表,一个hive和RDBMS的StorageHandler表

当然如果是到Kudu或者HBase的话,还需要一张hive到Kudu或者HBase的StorageHandler表

也就是一波操作至少建立2-3个表。

2 事故现场

那么在这个建表加导入数据的过程中,经常出现hive连接超时的情况,恼火。

平时因为开发任务很重,所以每次碰到这个问题都是直接重启Hive赶紧接着干活

终于有一天,内心的另一个我忍受不了了,决定把这个狗东西的真面目给他揭开。

3 问题排查

3.1 现象查看

先去看了下hive,一切显示正常,这就操蛋了。

进到hive的日志中,看到了一点端倪,说是有Hive Metastore Server运行不良

3.2 hive连接数查看

1
SELECT hive_open_connections,hive_open_operations FROM ENTITY_DATA

3.3 配置查看

然后去看了下hive配置,原来CDH的hive中hiveServer2并发连接数默认是3hiveServer2Hive Metastore Server最长等待时间默认是5分钟

1
2
hive.driver.parallel.compilation.global.limit
hive.metastore.client.socket.timeout

所以问题原因就是,我们同时会有很多载数任务进行,这些任务都比较耗费时间

当有三个任务在执行的时候,其他任务就得等待超过5分钟的话就超时了。

4 事故处理

解决问题的话,无非两个方向

一是增大并发数

二是延长超时时间

我们的话,因为载数任务比较多,3个并发肯定是不行的,所以先将载数并发数调整到30超时时间调整到15分钟

目前程序都正常运行没有出现问题,以后要是这个配置扛不住的话,往上加就好了,当然也不是越大越好,根据自己的实际场景在这两者之间做一个权衡

5 躺板板

红伞伞白杆杆,吃完一起躺板板

躺板板埋山山,亲朋都来吃饭饭

饭饭里有红伞伞,吃完全村埋山山,来年长满红伞伞

关注博主不迷路

联系博主


本博客所有文章除特别声明外,均为原创。版权归博主小马所有。任何团体、机构、媒体、网站、公众号及个人不得转载。如需转载,请联系博主(关于页面)。如其他团体、机构、媒体、网站、博客或个人未经博主允许擅自转载使用,请自负版权等法律责任!