Impala架构详细讲解
来源:互联网 发布:sodu小说源码 编辑:程序博客网 时间:2024/06/14 08:37
架构:采用无中心设计
三大核心组件:
Impala Daemon
impalad是Impala的核心进程,运行在所有的数据节点上,可以读写数据,并接收客户端的查询请求,并行执行来自集群中其他节点的查询请求,将中间结果返回给调度节点。调用节点将结果返回给客户端。用户在impala集群上的某个节点提交数据处理请求 则该节点称为coordinator node(协调器节点),其他的集群节点传输其中的处理的部分数据到该coordinator node,coordinator node负责构建最终的结果数据返回给用户。
impala 支持在提交任务的时候(采用JDBC ,ODBC 方式) 采用round-robin算法来实现负载均衡,将任务提交到不同的节点上
impalad 进程通过持续的和statestore 通信来确认自己所在的节点是否健康 和是否可以接受新的任务请求
Impala Statestore(主要优化点,线程数)
状态管理进程,定时检查The Impala Daemon的健康状况,协调各个运行impalad的实例之间的信息关系,Impala正是通过这些信息去定位查询请求所要的数据,进程名叫做 statestored,在集群中只需要启动一个这样的进程,如果Impala节点由于物理原因、网络原因、软件原因或者其他原因而下线,Statestore会通知其他节点,避免查询任务分发到不可用的节点上。
Impala Catalog Service(元数据管理和元存储)
元数据管理服务,进程名叫做catalogd,将数据表变化的信息分发给各个进程。接收来自statestore的所有请求 ,每个Impala节点在本地缓存所有元数据。 当处理极大量的数据和/或许多分区时,获得表特定的元数据可能需要大量的时间。 因此,本地存储的元数据缓存有助于立即提供这样的信息。当表定义或表数据更新时,其他Impala后台进程必须通过检索最新元数据来更新其元数据缓存,然后对相关表发出新查询。
impala组件列表:
impala client:
功能:将HiveQL请求送给impalad,并等待结果返回给用户
impalad:
Planner > FE(JAVA)
功能:负责解析查询请求,并生成执行计划树(Query Plan Tree)
Coordinator > BE(C++)
功能:拆解请求(Fragment),负责定位数据位置,并发送请求到Exec Engine,汇聚请求结果上报
Exec Engine > BE(C++)
功能:执行Fragment子查询,比如scan,Aggregation,Merge etc.
statestore server:
功能:维护impalad的伙伴关系,负责通知伙伴关系变化,类似于仪表盘的zk的故障监控功能
meta server:
Hive Meta Storage
功能:用户维护表的schema信息等元数据(存在于一个关系型数据库)
NameNode of HDFS
功能:用于定位hdfs的数据位置
HMaster of HBase
功能:用于定位HBase的数据的位置
storage server:
HDFS:
功能:HDFS的DataNode服务
HBASE:
功能:HBase的RegionServer服务
- Impala架构详细讲解
- impala架构
- Impala学习--Impala概述,Impala系统架构
- Impala学习--Impala系统架构
- Impala002-Impala架构
- 解析Impala架构
- Impala架构分析
- Impala ——架构分析
- Impala之概念及架构
- Impala架构和工作原理
- Android架构详细讲解与C/C++开发支持原理
- 详细讲解mvc与三层架构的区别
- Spring Cloud微服务架构代码结构详细讲解
- Impala源代码分析(1)-Impala架构和RPC
- 详细讲解
- Impala invalidate metadata详细使用方法说明
- Impala invalidate metadata详细使用方法说明
- Impala之02-原理、架构分析(1)
- Android 实现个性的ViewPager切换动画 实战PageTransformer(兼容Android3.0以下)
- EXT JS 网格列 隐藏
- 未来的设计师该从这四方面提升竞争力
- pointer_spot_touch 触摸圆点与触摸线不相交
- python实现图片转化成可读文件
- Impala架构详细讲解
- 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
- Java语言这些年的发展
- sublime报错there are no packages for installation
- Android 插件化基础——虚拟机
- spring面试题目
- c++有哪些函数不能声明为虚函数
- 建站之登录<二>
- 这样阐述你的设计风格才有效