Llama-impala on yarn的中间协调服务

本文基于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会在执行前设置内存上限

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 10:36:56

Llama-impala on yarn的中间协调服务的相关文章

知识链-分布式协调服务zookeeper

分布式协调服务 Zookeeper zookeeper是一个开源的分布式协调服务.是典型的分布式数据一致性的解决方案. 集群内所有server基于Zab(ZooKeeper Atomic Broadcast)协议进行通信 Zookeeper官网地址: http://zookeeper.apache.org/ Zookeeper官网文档地址:http://zookeeper.apache.org/doc/trunk/index.html 认识ZooKeeper ZooKeeper概述 ZooKee

Hadoop系列之zookeeper(分布式协调服务)安装配置

Hadoop系列之zookeeper(分布式协调服务)安装配置 1.安装cd /root/softtar zxvf zookeeper-3.4.6.tar.gzmv zookeeper-3.4.6 /usr/local/hadoop/zookeeper2.修改配置文件mkdir -p /data/zookeeper/data //3个节点都需要创建此目录cd /usr/local/hadoop/zookeeper/confcp zoo_sample.cfg zoo.cfg#vim zoo.cfg

搞懂分布式技术3:初探分布式协调服务zookeeper

搞懂分布式技术3:初探分布式协调服务zookeeper 1.Zookeepr是什么 Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知.集群管理,Master选举,分布式锁和分布式队列等功能. 2.zookeeper可以保证的分布式一致性 a.顺序一致性 从一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到zookeeper中去 b.原子性 所有事务请求的处理结果在整个集群中所有机器上的应用情

Zookeeper 分布式协调服务开源项目

1,Zookeeper是什么? ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题. ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性.ZooKeeper框架最初是在"Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序.后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准. 官

分布式协调服务Zookeeper原理

CAP理论 C: (Consistency) 一致性 ???????在分布式系统中,数据能够在多个副本之间保持一致的特性.对于有多个副本的分布式系统来说,如果数据在一个节点上进行修改,其他节点尚未同步数据,当在其他节点上读取操作的时候,读取的还是老的数据.这就是分布式数据不一致. ???????在分布式系统中,如果更新一个节点,其他节点的数据也能保证有相应的更新.那么系统被认为具有强一致性. A: (Availability) 可用性 ???????在分布式系统中,可用性指的是系统提供的服务,一

Hadoop 2.0 Yarn代码:心跳驱动服务分析

当RM(ResourcesManager)和NM(NodeManager)陆续将所有模块服务启动,最后启动是NodeStatusUpdater,NodeStatusUpdater将用Hadoop RPC远程调用ResourcesTrackerService中的函数,进行资源是初始化等操作,为将要运行的Job做好准备.以下主要分析在Job提交之前 RM与NM在心跳的驱动下操作. AD: hadoop-yarn-server-resourcemanager下的包 org.apache.hadoop.

配置zookeeper(分布式应用程序协调服务)

<properties> <zookeeper.version>3.4.7</zookeeper.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifa

go任务调度3(etcd协调服务、raft协议)

etcd是将数据存储在集群中的高可用k-v存储.允许应用实时监听存储中的k-v变化.能容忍单点故障,能够应对网络分区. (raft是一个分布式协议,管理的是日志:etcd管理的是k-v,把k-v放到日志里,kv就编程分布式集群了)(调用者写入请求发给leader请求写入k-v,leader会将日志实时向follower们复制,leader不会立即返回给调用者,会马上往集群follower做日志拷贝.当日志被复制给N+1个节点后(即大多数),本地提交(也就是告诉客户端提交成功),返回给调用者(客户

Impala源码之资源管理与资源隔离

本文由  网易云发布. 前言 Impala是一个MPP架构的查询系统,为了做到平台化服务,首先需要考虑就是如何做到资源隔离,多个产品之间尽可能小的甚至毫无影响.对于这种需求,最好的隔离方案无疑是物理机器上的隔离,A产品使用这几台机器,B产品使用那几台机器,然后前端根据产品路由到不同集群,这样可以做到理想中的资源隔离,但是这样极大的增加了部署.运维等难度,而且无法实现资源的共享,即使A产品没有任务在跑,B产品也不能使用A产品的资源,这无疑是一种浪费.毛主席教导我们浪费是可耻的,所以我们要想办法在充