博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Llama-impala on yarn的中间协调服务
阅读量:6439 次
发布时间:2019-06-23

本文共 1355 字,大约阅读时间需要 4 分钟。

本文基于CDH发行版下的Hadoop Yarn和Impala

早期的Impala版本号中。为了使用Impala。我们一般会在以Client/Server的结构在各个集群节点启动impala-server、impala-state-store和impala-catalog服务,而且在启动过程中无法动态调整内存和CPU的分配。CDH5之后,Impala開始支持Impala-on-yarn模式。通过一个叫做Llama(Long-Lived Application Master)的中间协调Yarn和Impala,向Hadoop Yarn资源管理器申请计算资源。

1、Llama介绍

Llama(Long-LivedApplicationMaster)是位于ClouderaImpala和HadoopYARN之间,用于协调资源管理的服务系统。

在一个Hadoop集群中,Impala能够通过Llama预约、使用以及释放资源分配,以降低运行Impala查询时过多的资源管理用度。仅仅有在Impala中启用资源管理。集群中的Llama服务才真正运作。

默认情况下,YARN依据MapReduce工作的须要按位分配资源,而Impala则须要全部资源在同一时间可用,以保证查询的中间结果可以在不同节点间交换,而不须要迟延查询时间来等待新的资源分配,Llama就是为了在每一个Impala查询開始运行前就可保证其须要的资源都可用而出现。
若一个查询运行完成,Llama会将资源进行缓存。确保在运行Impala子查询时能够使用。这样的缓存机制避免了每一个查询运行前都须要进行新的资源请求。同一时候。假设YARN须要该资源用于其它工作,Llama就会将这部分资源还给YARN。
须要注意的是:Llama仅支持YARN。不能与MRv1结合使用。同一时候,Llama也是通过YARN的配置文件与Hadoop进行协作的。

2、控制计算资源预估

我们提交SQL到Impala后。有时会错误的预估该次查询可能消耗的计算资源,Impala支持用户设置默认的内存和CPU资源申请大小,SQL执行过程中,一旦资源開始紧缺时,Impala会通过Llama向Yarn申请很多其它的资源来扩展(expanding)当前的预留资源。一旦查询作业完毕,Llama一般会将资源还给Yarn。用户能够在启动使用impalad进程时加上-rm_always_use_defaults參数(必选)以及-rm_default_memory=size and -rm_default_cpu_cores(可选)。Cloudera官方建议使用Impala-on-yarn时加上这些启动參数,能够让查询资源动态扩展。

3、验证计算资源预估和实际使用

为了使用户可以方便的验证查询语句所使用的集群资源大小,使用EXPLAIN语句可以查询相关内存预估的信息,以及使用到virtual core的大小。

使用EXPLAIN并不会真正提交查询

4、资源限制的原理

  CPU限制是通过Linux CGroups机制。Yarn在各个节点启动符合CGroups形式的Container进程

  内存限制是通过限制Impala的查询内存。一旦查询请求被授权,Impala会在运行前设置内存上限

转载地址:http://zwkwo.baihongyu.com/

你可能感兴趣的文章
python练习---购物车
查看>>
[C++基础]025_虚函数和虚函数表
查看>>
ARC的原理详解
查看>>
php代码审计基础笔记
查看>>
hdu1160 dp
查看>>
java服务器端编程
查看>>
JavaScript 语言基础知识点图示
查看>>
linux清理缓存的命令
查看>>
jsoup的介绍使用(转)
查看>>
ES6之拷贝对象
查看>>
new delete malloc free
查看>>
如何使用subversion管理iOS源代码
查看>>
ios获得通讯录中联系人的所有属性
查看>>
hihoCoder1353 满减优惠
查看>>
js/jquery判断浏览器的方法总结
查看>>
【SICP练习】138 练习3.69
查看>>
【Unity】7.6 自定义输入
查看>>
有关sublime的一些使用
查看>>
数据库连接池的实现及原理
查看>>
练习、C# 结构体、冒泡排序
查看>>