记录一下,在用impala作为计算引擎查询hive数据时,经常性的发现资源少的节点由于内存暴增而记录一下,在用impala作为计算引擎查询hive数据时,经常性的发现资源少的节点由于内存暴增而导致impala Daemon 挂掉,仔细查询cdh中impala执行过程的日志,发现impala的计算会初始化到一个节点
我们需要将查询调度到资源比较多的服务器节点才行,希望不要在资源少的节点运行执行
经过查询
可以在impala 的配置中建 角色组来管理impala Daemon的各服务器节点扮演不同的角色,比如让大内存,好设备扮演执行器executor,让设备比较差的节点扮演coordinator协调器
步骤如下
点击“角色组”
创建一个角色组,我这里设置的coordinator group 其实我这个应该叫executor group 名字无所谓, 将其他group中资源好impala daemon 放在这个组作为执行器,中心思想就是让一些节点作为执行节点(他们的资源丰富),让另一部分作为协调器(只负责协调分发查询请求)
关键地方来了,在配置中查询 “Impala Daemon Specialization” 单个值编辑 我的这个coordinator group和impala daemon group1 里面的服务器节点资源较多,既可以作为协调器也可以作为执行器,而impala daemon default group 资源比较少,就让他仅作为协调器
注意点:要是配置在impala daemon 某个节点只是执行器,那在改节点就不能使用impala-shell 提交查询了
所以要是在执行器的节点位置要是提交impala-shell时,可以设置程 NO_SPECIALIZATION , 如果不需要提交,直接设REXECUTOR_ONLY
参考一些博客
https://blog.csdn.net/haoxiaoyan/article/details/86536215