温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.总结
一些查询请求或者工作负载会导致Hive Metastore(HMS)的死锁。
2.症状
在受影响的版本中,某些工作负载可能导致Hive Metastore(HMS)死锁。内部的自动机制可以从这种死锁中恢复。但是,在高并发且写入较重的工作负载中,HMS从死锁中恢复比查询作业的执行时间还长,于是导致HMS的性能下降或者挂起。反过来影响HiveServer2的性能,从而影响查询性能。
升级到受影响的版本后,如果工作负载的性能急剧恶化或停滞,你可能遇到了这个问题。如果你使用MySQL或MariaDB作为元数据库的话,你会在HMS中的日志看到以下错误。
com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
(可左右滑动)
注意:在Oracle和PostgreSQL上,不会打印此消息,此问题与数据库无关
以下三种情况说明具体如何影响你:
1.如果你正在使用受影响的版本并使用Hive和Sentry,请参考下面的“解决办法”章节。
2.如果你使用受影响的版本,但不使用Hive和Sentry,则不需要执行任何操作。
3.如果你未使用受影响的版本并且你使用的是Hive和Sentry,请勿升级到受影响的版本。
3.适用版本
1.CDH5.13.0, 5.13.1, 5.13.2
2.CDH5.14.0
3.同时使用Hive和Sentry
4.解决办法1
1.升级到5.13.3或更高版本
2.升级到5.14.2或更高版本
5.解决办法2
如果你无法升级,为缓解此问题,请修改一下配置:
1.使用Cloudera Manager进入“Hive> Configuration>Search”,搜索“Hive Metastore Server Advanced Configuration Snippet (Safety Valve) for hive-site.xml”。
2.点击+号增加以下内容:
设置“hive.metastore.transactional.event.listeners”为空值
设置“hive.metastore.event.listeners”为“org.apache.hive.hcatalog.listener.DbNotificationListener”,如下图所示:
3.重启HMS服务使配置生效。
使用此解决方法的副作用可能是某些DDL查询(如删除表和使用相同名称创建的新表)失败,并显示报错“No valid privileges”。重新运行这些查询应该可以解决该问题。
如果做了上述修改后问题仍然存在,考虑升级到推荐的新版本。
6.总结
在CDH5.15发布之前,目前较新的版本推荐的是5.13.3或5.14.2。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操