要好好使用 Impala 就得好好梳理一下他得结构以及他存在得一些问题或者需要注意得地方。本篇博客主要想记录一下对 Impala 架构梳理以及使用上的 workaround。
Impala 简介
首先我们来了解一下在 Impala Guide 中 Impala 对自己的定位
Impala is an addition to tools available for querying big data. Impala does not replace the batch processing frameworks built on MapReduce such as Hive. Hive and other frameworks built on MapReduce are best suited for long running batch jobs, such as those involving batch processing of Extract, Transform, and Load (ETL) type jobs.
Impala 认为自己是大数据查询工具的补充,对于长时间的 batch work 还是推荐使用基于 mapreduce 的方式来处理超大量数据。因为那更稳定可靠。
Impala 目前已经从 Apache 孵化项目中毕业,由 Cloudera 公司捐赠后 Impala 由 Cloudera Impala => Apache Impala
Impala 架构部分
Impala 守护进程(Impala Daemon)
Impala 的核心组件一个守护进程,运行在集群的每个数据节点上,它是一个叫 impalad 的进程负责读取和写入数据文件。接受从impala-shell传递过来的命令,Hue、JDBC或ODBC传输过来的查询;并行化查询请求并在整个集群中分配工作;将中间查询结果传输回中央协调器节点。
注意上面我 CDH 上运行的跟 impala 相关的实例,我只在一个计算节点上启动了 impala daemon,所以说我要使用 hue 或者 impala 请求该节点来构建查询和返回结果。
如果有多个 impala daemon ,那么我可以向任意有 impala daemon 节点上提交任务。该实例将作为该查询协调节点。其他节点将部分查询结果返回协调节点,它将构建最终的结果集。
Impala 状态存储进程(Impala StateStore)
被称为 statestore 的 Impala
Reference:
https://zhuanlan.zhihu.com/p/77463503 Apache Impala概念和架构
https://impala.apache.org/docs/build/impala-3.2.pdf Apache Impala Guide
https://impala.apache.org/impala-docs.html Apache Impala Doc
原文:https://www.cnblogs.com/piperck/p/11939472.html