hive on spark 资源占用不释放

hive on spark 资源占用不释放,第1张

hive on spark 资源占用不释放 一、环境描述二、描述2.2 问题2.3 现象 三、解决3.1 过程3.2 解决3.3 脚本代码

一、环境描述

CDH: 5.14.2
Spark:1.6.0 (hive on spark没使用2.0+版本)
Hue:3.9.0
hive:1.1.0

二、描述 2.2 问题

由于公司查询使用的hue,hue上有impala & hive 。在做大数据量测试和查询的时候impala 会出现内存不足的情况,所以测试人员&分析师偶尔还是会使用hive(底层是spark ) 去进行处理,而其结果跑完后,并不会第一时间释放spark 资源。这就导致很多spark 资源被占用浪费的情况。

2.3 现象


而我们默认的hive查询配置是8G 10C 。但是有些查询还有配置几百个G 的hive on spark 查询,而这个查询如果资源一致不释放,就会导致很多的spark自动化任务资源等待,从而导致执行时间被延长…

三、解决 3.1 过程

看到一个帖子:传送门
基本就是说这不是一个bug 而是一个资源的重复利用可以调节hive session的超时时间 hive.server2.idle.session.timeout即可以解决。但在当前使用的版本中达到hive session的超时时间(配置的两小时) 依旧会存在。

3.2 解决

进一步debug 发现,这个现象只出现在hue 查询hive 时才会存在,且占用队列为users用户队列。

其他情况下都不会发生该现象。而尝试hue 关闭session 按钮也不能解决这个问题,资源还是被占用。后来想手动实现kill 超时的任务,简单看了下yarn 的rest api

GET http:///ws/v1/cluster/apps

发现可以拿到每个Application的运行情况,所以尝试python 脚本去定时便利的user队列,然后拿到Application_id ,然后再cmd 执行

yarn application -kill {Application_id}
3.3 脚本代码
import requests
import time
import os
import logging

now_t = int(round(time.time() * 1000))
URL = f"http://host_ip:8088/ws/v1/cluster/apps"
response = requests.get(URL)
yarn_infos = response.json().get("apps").get("app")
for app_info in yarn_infos:
    if "root.users" in app_info.get("queue", None) and app_info.get("state", None) == "RUNNING":
        app_id = app_info.get("id", None)
        state = app_info.get("state", None)
        queue = app_info.get("queue", None)
        started_time = app_info.get("startedTime", None)
        diff_time = (now_t-started_time)/1000/60/60
        if diff_time > 2:
            os.system(f"yarn application -kill {app_id}")
            logging.info(f"users 队列kill任务app_id:{app_id},state:{state},queue:{queue},started_time:{started_time},now_time:{now_t}")
        else:
            logging.info(f"users队列正常任务app_id:{app_id},state:{state},queue:{queue},started_time:{started_time},now_time:{now_t}")

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/737338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存