大数据时代快速SQL引擎-Impala( 五 )
从上图可以看出 , Impala自身包含三个模块:Impalad、Statestore和Catalog , 除此之外它还依赖Hive Metastore和HDFS , 其中Imapalad负责接受用户的查询请求 , 也意味着用户的可以将请求发送给任意一个Impalad进程 , 该进程在本次查询充当协调者(coordinator)的作用 , 生成执行计划并且分发到其它的Impalad进程执行 , 最终汇集结果返回给用户 , 并且对于当前Impalad和其它Impalad进程而言 , 他们同时也是本次查询的执行者 , 完成数据读取、物理算子的执行并将结果返回给协调者Impalad 。 这种无中心查询节点的设计能够最大程度的保证容错性并且很容易做负载均衡 。 正如图中展示的一样 , 通常每一个HDFS的DataNode上部署一个Impalad进程 , 由于HDFS存储数据通常是多副本的 , 所以这样的部署可以保证数据的本地性 , 查询尽可能的从本地磁盘读取数据而非网络 , 从这点可以推断出Impalad对于本地数据的读取应该是通过直接读本地文件的方式 , 而非调用HDFS的接口 。 为了实现查询分割的子任务可以做到尽可能的本地数据读取 , Impalad需要从Metastore中获取表的数据存储路径 , 并且从NameNode中获取每一个文件的数据块分布 。
推荐阅读
- 捉迷藏|?LOL世界赛“含金量”数据出炉:EDG仅排第六,IG稳居榜首
- 李儒|三国杀:为什么叫李儒时代的骄傲,他到底有什么好骄傲的?厉害吗
- 梦幻西游|梦幻西游:诗情画意进入净台时代,郭无情买爆总17段野兽鞋
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- 帝国时代4|老外做的《帝国时代4》,究竟能有中国味吗?
- 碧蓝航线|碧蓝航线SR重巡福煦数据详解 期待越高失望越大 强度平平无奇
- 赛博朋克2077|王者荣耀:6种不花钱就能领皮肤碎片的方法!快速兑换心仪皮肤!
- 地下城与勇士|DNF:“全民云上”时代到来,一个过气小副本,究竟有何魅力?
- steam|目前Steam上什么游戏比较火?《帝国时代4》屈居第二
- kramer|国服极地大乱斗数据上线,来看看胜率榜符合你的预期吗?