LLAP

全称: Live Long and Process (LLAP)

在hive2.0中添加了LLAP功能(HIVE-7926),文档jira 是HIVE-9850

配置LLAP可以参考 Configuration Properties. 中的llap部分


概览

在最近几年,hive的速度有了显著的提升,这要感谢社区贡献的多种特征和提升其中包括Tez和CBO,下边是我们要把hive带到更高的层次:
  • 异步IO
  • 预拉取和缓存列快
  • 多线程JIT友好的操作流
LLAP提供了一个高级的执行模式,它包括一个长久存活的守护程序去代替了和HDFS datanode的直接交互 和一个紧密集成的DAG框架。这个守护程序中加入了缓存、预抓取、查询过程和访问控制等功能。短小的查询由守护程序执行,大的重的操作由yarn的container执行。
和datanode相似,llap守护程序可以被其他程序使用,特别是一个以文件为中的展示数据关系的视图。这个是守护程序也开发了API让其它程序来集成它。
最后,一个很好的列层的访问授权,hive中主流采用的关键需求。
下面这个图展示的了LLAP 在Tez的执行。初始化阶段的查询放在了LLAP,大的shuffle在他们的container中执行,多个查询和应用可以同时访问LLAP.


持久的守护程序

为了实现缓存、JIT优化和减少启动时间,我们要在集群的节点上运行守护进程,它将处理IO、,缓存、查询段执行。
  • 这些节点将是无状态的  任何对llap节点的请求必须包含本地数据和元数据。他将在本地和远程执行,本地化是请求者的责任(YARN)
  • 可恢复和弹性的失败和恢复被简化,因为任何数据节点可以被作为任何阶段的输入数据使用。Tez AM可以很简单的返回集群上的失败阶段。
  • 节点间可以交流  LLAP节点可以分享数据(例如 抓取的分区、广播的阶段) ,这将是Tez中用同样的机制来实现的。

执行引擎

LLAP和现在已经存在的hive一起工作来提供可以伸缩、多样性的hive,他是加强hive而不是取代hive。
守护程序是可选的
外部的协调和执行引擎 LLAP不是执行引擎,它依赖于执行引擎(Tez) 不打算支持MR
部分执行
资源管理  Yarn container 授权给LLAP


请求分段执行

LLAP能执行如下分段:ilters, projections, data transformations, partial aggregates, sorting, bucketing, hash joins/semi-joins
  • 平行执行 节点允许从不同查询不同session来的查询段水平执行
  • 接口 

I/O

守护进程将摆脱I/0, 将压缩格式转移到单独的线程。数据准备好后被送去执行,所以当现在正在执行的时候可以准备下一个数据。
  • 多种文件格式
  • 谓词和 bloom filters

缓存

守护进程会缓存输入文件和数据的元数据。元数据和索引信息将会被缓存即使现在数据还没被缓存。元数据存在当前进程的java类里面,缓存数据被存储在格式化的IO分片
  • 收回政策  应用在分析表的扫描的工作压力
  • 缓存粒度 数据缓存的单元是列式的


原文地址: https://cwiki.apache.org/confluence/display/Hive/LLAP

==============================
目前了解到LLAP只支持TEZ任务.



图片来源:https://toutiao.io/posts/cblnn2/preview












评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值