HUE 设置hive默认参数|世界热头条

来源: 腾讯云 时间:2022-12-06 23:16:26


(资料图片仅供参考)

注,本次演示使用的集群为腾讯云EMR-V3.4.0,HUE版本为4.10.0。

查阅HUE代码,发现hive链接的客户端都是在本地生产的,也就是在 hiveserver2.py中来完成初始化的。该文件在EMR集群上的路径为 /usr/local/service/hue/desktop/libs/notebook/src/notebook/connectors/hiveserver2.py ,其中 _prepare_hql_query函数来完成初始化。所以只要将相关参数设置在 _prepare_hql_query函数中就行。

def _prepare_hql_query(self, snippet, statement, session):         settings = snippet["properties"].get("settings", None)    file_resources = snippet["properties"].get("files", None)    functions = snippet["properties"].get("functions", None)    properties = session["properties"] if session else []    # Get properties from session if not defined in snippet    if not settings:      settings = next((prop["value"] for prop in properties if prop["key"] == "settings"), None)    if not file_resources:      file_resources = next((prop["value"] for prop in properties if prop["key"] == "files"), None)    if not functions:      functions = next((prop["value"] for prop in properties if prop["key"] == "functions"), None)    database = snippet.get("database") or "default"    return hql_query(      statement,      query_type=QUERY_TYPES[0],      settings=settings,      file_resources=file_resources,      functions=functions,      database=database    )

阅读 hiveserver2.py发现除了HIVE的初始化,impala的初始化也在_prepare_hql_query函数中。故在给HIVE添加参数的时候,需要指定给HIVE设置,否则会导致impala无法初始化。

本次需求说明:在使用HUE的时候,用户提交的HIVE hql任务,默认执行引擎为mr;并且在指定的YANR队列中运行,避免抢占资源影响其他任务。

当前EMR集群已经配置为公平调度,并为hue用户设置了专用的队列“hue_pool”。

需要添加代码:

if snippet["type"] == "hive":        snippet["properties"]["settings"].append({"key": "hive.execution.engine", "value": "mr"})        snippet["properties"]["settings"].append({"key": "mapreduce.job.queuename","value":"root.hue_pool"})

满足本次需求的改造函数完成如下:

def _prepare_hql_query(self, snippet, statement, session):         if snippet["type"] == "hive":        snippet["properties"]["settings"].append({"key": "hive.execution.engine", "value": "mr"})        snippet["properties"]["settings"].append({"key": "mapreduce.job.queuename","value":"root.hue_pool"})    settings = snippet["properties"].get("settings", None)    file_resources = snippet["properties"].get("files", None)    functions = snippet["properties"].get("functions", None)    properties = session["properties"] if session else []    # Get properties from session if not defined in snippet    if not settings:      settings = next((prop["value"] for prop in properties if prop["key"] == "settings"), None)    if not file_resources:      file_resources = next((prop["value"] for prop in properties if prop["key"] == "files"), None)    if not functions:      functions = next((prop["value"] for prop in properties if prop["key"] == "functions"), None)    database = snippet.get("database") or "default"    return hql_query(      statement,      query_type=QUERY_TYPES[0],      settings=settings,      file_resources=file_resources,      functions=functions,      database=database    )

在EMR集群的master节点上进行修改,修改完成后在控制台重启HUE服务即可。

上一篇:

下一篇:

X 关闭

热门推荐

北京疾控中心发出8条提醒

2022-12-06   环球时报新媒体

冬季食补推荐羊肉面

2022-12-06   北京日报客户端

北京多部门通报-每日视讯

2022-12-06   环球时报新媒体

西门子SCL---Tcp/ip通信

2022-12-06   腾讯云

建筑界的“奥斯卡”!张家口入选!

2022-12-06   张家口新闻网

宫所有歌曲(宫所有歌曲)

2022-12-06   万能网

聘上“烘烤师” 串起“生产链”

2022-12-06   中国产业经济信息网

本土新增“4988+22859”

2022-12-06   人民网科普

国货品牌:锚定高质量锻造硬实力-天天报道

2022-12-06   中国产业经济信息网

技术创新让中国汽车品牌“走红”中东

2022-12-06   中国产业经济信息网

国内首条齿轨列车试验线交付使用

2022-12-06   中国产业经济信息网

卡拉OK到北京

2022-12-06   北京青年报官网

每日消息!SpringBoot基本应用

2022-12-05   腾讯云

Spring Boot + Shiro整合

2022-12-05   腾讯云

前沿资讯!SpringBoot基本使用

2022-12-05   腾讯云

神泣手游(神泣1 4)

2022-12-05   万能网

song ericsson x10铃声

2022-12-05   万能网

每日看点!仙剑5虚拟机镜像

2022-12-05   万能网

今晚再降!北京92号汽油重回“7元时代”

2022-12-05   北京日报客户端

首都博物馆:明日起暂停对外开放

2022-12-05   北京日报客户端

yui gloria

2022-12-05   万能网

近40年来青藏高原湖泊的结冰时间普遍推迟

2022-12-05   中国网·中国发展门户网

Copyright   2015-2022 中国行业信息网版权所有  备案号:   联系邮箱:29 59 11 57 8@qq.com