Impala简介(整理)

简介:         一、定义(来自百度百科)         Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。

        一、定义(来自百度百科)

        Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

        二、Impala组成

        1、客户端:包括JDBC、ODBC、Hue、Impala Shell等,用于执行查询或完成管理任务;

        2、Hive Metastore:存储可用于Impala数据的信息,包括可用数据库及其结构。当执行Impala Sql语句进行schema对象的创建、修改及删除,或加载数据到表中等操作时,相关元数据的变化,通过单独的catalog服务自动广播到所有Impala节点;

        3、Cloudera Impala(Impalad进程):运行于数据节点的Impala程序,用于协调和执行查询。每一个Impala的实例可以获取、解析以及协调Impala客户端传来的查询。查询是被分布到各Impala节点间,这些节点作为workers,并行执行查询片段;

        4、HDFS、HBase:数据的实际存储位置。

        三、Impala查询执处理过程

        1、用户程序通过JDBC、ODBC、Impala Shell等Impala 客户端发送Sql语句给Impala;

        2、用户程序连接到集群中任意Impalad进程,这一进程作为整个查询的协调器;

        3、Impala解析、分析查询,确定哪些任务由集群中哪一Impalad实例执行,并生成最优执行计划;

        4、Impalad实例访问对应HDFS、HBase服务,获取数据;

        5、每一个Impalad实例将数据返回给协调器Impalad,由其发送结果给客户端。

        四、优点(来自百度百科)

        1、Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。

        2、省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。

        3、Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。

        4、通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。

        5、用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。

        6、使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

相关文章
|
网络协议 Linux
如何在服务器上进行双网卡双IP双网关配置?
最近,有个想法,在服务器中配置双网卡双IP双网关,双网卡配置一个上外网,一个上内网。不多说了,直接进入今天的主题。
1756 0
|
11月前
|
前端开发 Java API
SpringBoot整合Flowable【06】- 查询历史数据
本文介绍了Flowable工作流引擎中历史数据的查询与管理。首先回顾了流程变量的应用场景及其局限性,引出表单在灵活定制流程中的重要性。接着详细讲解了如何通过Flowable的历史服务API查询用户的历史绩效数据,包括启动流程、执行任务和查询历史记录的具体步骤,并展示了如何将查询结果封装为更易理解的对象返回。最后总结了Flowable提供的丰富API及其灵活性,为后续学习驳回功能做了铺垫。
814 0
SpringBoot整合Flowable【06】- 查询历史数据
|
网络协议 安全 Linux
Nmap简介
Nmap简介
331 13
|
Java Linux Apache
Maven的Binary与Source区别
Maven的Binary与Source区别
382 1
|
Java 索引 安全
[Mvel]Mvel2.0使用指南一 基础
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/75244442 MVEL在很大程度上受到Java语法的启发,作为一个表达式语言,也有一些根本的区别,旨在更高的效率,例如:直接支持集合、数组和字符串匹配等操作以及正则表达式。
16217 0
|
人工智能 数据可视化 BI
超好用的低代码平台:10款可视化工具深度评测
以下是内容摘要,以240个字符以内完成: 了解多款低代码开发平台,如Zoho Creator(提供直观界面、预建模板、工作流定制和多平台支持)、OutSystems(专注高性能、企业安全及多渠道发布)、Mendix(与Microsoft 365集成、丰富的组件和自定义连接器)、Wix Code(无代码Web开发)、Bubble(完全无代码、高度定制化页面)、Knack(快速建库、多角色访问控制)和Caspio(强大的数据库功能和定制报表)。这些平台降低开发门槛,适用于不同业务场景。
672 10
|
数据采集 安全 数据可视化
浅谈网络安全态势感知
网络安全态势感知是应对复杂网络环境和频繁攻击的关键,它基于数据采集、理解和预测,评估网络安全性并预测未来趋势。中国在该领域的研究已有显著进展,如2003年国家互联网应急中心的监测平台和2015年四川大学的大数据分析平台。态势感知涉及数据采集、理解、评估和预测四个步骤,通过可视化方式展示给用户。其核心功能包括态势总览、资产管理、告警管理等。未来发展方向将结合大数据和AI提升预测精度,实现云化和动态扩展。德迅云安全提供的解决方案侧重主动监测、精准防护和智能分析,适用于金融、电商和政企等领域。
|
存储 安全 应用服务中间件
谷粒学院(十六)OAuth2 | 微信扫码登录 | QQ扫码登录(一)
谷粒学院(十六)OAuth2 | 微信扫码登录 | QQ扫码登录(一)
谷粒学院(十六)OAuth2 | 微信扫码登录 | QQ扫码登录(一)
|
SQL 存储 分布式计算
Apache Impala(demo)
Apache Impala(demo)
240 0
|
数据采集 安全 JavaScript
HTML代码混淆技术:原理、应用和实现方法详解
HTML代码混淆是一种常用的反爬虫技术,它可以有效地防止爬虫对网站数据的抓取。本文将详细介绍HTML代码混淆技术的原理、应用以及实现方法,帮助大家更好地了解和运用这一技术。