架构组件&查询处理流程--笔记总结 | 学习笔记

简介: 快速学习 架构组件&查询处理流程--笔记总结

开发者学堂课程【大数据Impala教程架构组件&查询处理流程--笔记总结学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/722/detail/12886


架构组件&查询处理流程--笔记总结


内容介绍:

一、Impala 可以集群部署

二、Impala 查询处理流程

 

一、Impala 可以集群部署

1.概况

为了更好的理解 Impala 工作执行流程。通过笔记的方式用通俗的话语去描述当 Impala 中各个模块的职责以及查询处理过程。

2.Impala

首先针对 Impala 可以分布式集群部署。意味着可以部署在多个机器上,分为以下几个模块,第一个叫做 Impalad,准确来说 Impalad 就是 Impala 的服务。这个服务可以部署在多个不同的机器上。通常与 datenode 部署在同一个节点。这个目的主要是方便数据的本地化计算,效率较高,除了知道 Impala 之外,还要知道负责具体执行本次查询 SQL Impalad 称之为 Coordinator。比如发射请求,每个负责查询的连接到一个机器上,把它称之为协调者。协调者单词叫做 Coordinator,说到这里可以感受一下 Impala 服务可以连接到任何一台机器上。叫做每个 Impala server 都可以对外提供服务,都可以接受用户的请求,这是第一个模块。

3.Impala State Store

第二个模块叫做 Impala State Store 状态存储,主要保存 Impalad 的状态信息。监视其健康状态,维护集群中哪些服务可用,哪些服务不可用。

4.Impala Catalogd

第三个很重要叫做 Impala Catalogd 这个进程在老版本的 Impala 中是没有的。主要 metastore 维护的网关负责跟 hive metastore 进行交互,同步 hive 的数据到 Impala 自己的元数据中。启动的时候可以看到这些进程和服务的存在。

5.CLI

另外一个是用户操作 Impala 的方式,目前来说官方使用的 shell 通过命令行 Impala shell,另外一个可以使用 JDBC,写 Java 代码访问他,另外可以跟 hue 软件做集成,通过可视化页面区别。这样就可以满足 Impala 架构模块。要理解清楚他们分别的职责是什么。

 

二、Impala 查询处理流程

第二块叫做 Impala 查询处理流程。主要主要是简单梳理感受 Impala 是怎么工作的。根据讲义上的图感受大致 Impalad 执行过程。

1.两个部分

每个分为两个部分,一个叫做 Java 前端。一个叫做 C++ 后端。Java 前端负责接收解析 SQL,编译成执行计划树。C++ 后端负责具体的执行计划树操作,最终对数据进行操作。对于 C++ 代码怎么优化的开发代码比较陌生了。

2.Impala SQL

下面看一下用户编写的 Impala SQLSQL 首先传递给一个 Impala 的服务器 Impalad ,负责接受的叫做 Coordinator,调用 Java 前端,编译 SQL 成计划树。把编译的计划树以 Thrift 的数据格式返回给 C++ 后端。后端根据执行计划树、数据位于路径。路径底层会通过 libhdfs 和文件系统 HDFS 交互。还有 Impalad 状态信息,分配执行计划,进行查询,再汇总查询结果,把结果返回给 Java 前端,传递给用户的 CLI 命令行的地方或是进行 hue 展示的地方,大致描绘出了编写的收获过程。

3. hive 的不同

可以类比跟 hive 的执行流程总结优化,跟 hive 不同就在于整个执行中已经没有了 mapreduce 程序的存在,就可以使得它变成一种实时查询交互的 SQL 类的软件。

相关文章
|
13天前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
14天前
|
Kubernetes API 调度
Kubernetes 架构解析:理解其核心组件
【8月更文第29天】Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供了一个可移植、可扩展的环境来运行分布式系统。本文将深入探讨 Kubernetes 的架构设计,包括其核心组件如何协同工作以实现这些功能。
37 0
|
4月前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
4月前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
4天前
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
14 3
|
15天前
|
存储 安全 虚拟化
深入解析:Docker的架构与组件
【8月更文挑战第27天】
109 2
|
17天前
|
JSON 前端开发 API
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
40 2
|
29天前
|
存储 算法 前端开发
JVM架构与主要组件:了解Java程序的运行环境
JVM的架构设计非常精妙,它确保了Java程序的跨平台性和高效执行。通过了解JVM的各个组件,我们可以更好地理解Java程序的运行机制,这对于编写高效且稳定的Java应用程序至关重要。
34 3
|
1月前
|
存储 负载均衡 架构师
架构笔记汇总
架构笔记汇总
61 1
|
21天前
|
消息中间件 运维 NoSQL
基础架构组件选型及服务化
【8月更文挑战第22天】本文概述了分布式系统中常见的基础架构组件及其选型与服务化的重要性。

热门文章

最新文章