Impala 部署 - 基于SQL的查询计算工具 安装部署 docker


https://hub.docker.com/r/fedormalyshkin/cdh6-impala-kudu

https://github.com/fedor-malyshkin/docker-cdh6-impala-kudu


https://github.com/base-big-data/docker-cdh6-hadoop

https://github.com/base-big-data/docker-cdh6-hive

https://github.com/base-big-data/docker-cdh6-hive-postgresql

https://github.com/base-big-data/docker-cdh6-impala


docker run -d -p 8050:8050 -p 8051:8051 -p 21000:21000 -p 21050:21050 -p 25000:25000 -p 25010:25010 -p 25020:25020 -p 50070:50070  -p 50075:50075 --name cdh6-impala-kudu fedormalyshkin/chd6-impala-kudu


Impala Web UIs                 URL

Impala State Store Server   http://localhost:25010

Impala Catalog Server         http://localhost:25020

Impala Server Daemon         http://localhost:25000


Impala由三种进程组成:


Impalad

impalad是impala主要的工作计算进程,负责接收client的请求,变成协调者角色,然后解析查询请求,拆分成不同的任务分发给其他的Impalad节点进程。每个Impalad工作节点进程接收到请求后,开始执行本地查询(比如查询hdfs的datanode或者hbase的region server),查询结果返回给协调者。协调者搜集到请求数据合并返回给client。

通过上面的图也能看出,每个Impalad又包含三种角色,当接收到client的请求时,由planner解析查询sql,拆分成一个个可以并行的小任务;然后通过coordinator发送给其他的节点;其他的节点接收请求后,由excutor执行本地查询。


StatStore

状态管理进程,负责搜集各个节点的健康状况,当某个节点挂掉时,负责通知其他的节点不要往这个节点发送任务。statestore由于只负责状态通知,因此当这个进程挂掉并不影响impalad查询,只是可能会发送任务到挂掉的节点,集群的鲁棒性差一些而已。


Catalog

元数据变化同步进程,由于每个impalad都可以作为coordinator角色,那么当一个节点接收到数据变更,比如alter指令,其他的节点如何知晓呢?就可以通过catalog来同步,每个节点的变化都通知给catlog进程,它再同步给其他的节点,每个节点都维护一份最新的元数据信息,这样就不怕查询的数据不一致了。

 

签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回