Kylin與Impala的區(qū)別
Kylin定義
Apache Kylin是一個開源的分布式分析引擎讨越,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù)镀钓,最初由eBay開發(fā)并貢獻(xiàn)至開源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表筏勒。
impala定義
Cloudera公司推出,提供對HDFS碴卧、Hbase數(shù)據(jù)的高性能葱淳、低延遲的交互式SQL查詢功能沮协。
基于Hive,使用內(nèi)存計算啦辐,兼顧數(shù)據(jù)倉庫谓传、具有實時、批處理昧甘、多并發(fā)等優(yōu)點良拼。
是CDH平臺首選的PB級大數(shù)據(jù)實時查詢分析引擎。
由此可見,kylin與impala雖然面向最多的都是Hive數(shù)據(jù)庫充边,但是使用的方式是完全不同的庸推。
kylin: 提前構(gòu)建cube,將聚合得到的數(shù)據(jù)存儲到HBase中。利用HBase的列式存儲特性保證Kylin的高并發(fā)浇冰。
impala:完全依賴于Hive數(shù)據(jù)庫,與Hive共用一個元數(shù)據(jù)庫,完全基于內(nèi)存運算贬媒。
Kylin架構(gòu):
一、外部展示層
1. REST Server: 接收標(biāo)準(zhǔn)SQL進(jìn)行查詢
2. Query Engine: 將標(biāo)準(zhǔn)SQL進(jìn)行解析,然后與系統(tǒng)中的其他組件進(jìn)行交互,從而返回對應(yīng)結(jié)果
二肘习、轉(zhuǎn)換與存儲層
3. Routing: 將解析的SQL生成的執(zhí)行計劃轉(zhuǎn)換成cube緩存的查詢
4. Metadata: 管理存儲在HBase中的Kylin元數(shù)據(jù),最重要的是cube元數(shù)據(jù)
三际乘、cube維度層
5. Cube Build Engine: 在數(shù)據(jù)表上通過指定的維度構(gòu)建cube
Impala架構(gòu):
1.Catalog:
① 分發(fā)表的元數(shù)據(jù)信息到各個impalad中
② 接收來自statestore的所有請求
2.Statestore:
① 負(fù)責(zé)收集分布在集群中各個impalad進(jìn)程的資源信息、各節(jié)點健康狀況漂佩,同步節(jié)點信息
② 負(fù)責(zé)query的協(xié)調(diào)調(diào)度
3.Impalad:
① 負(fù)責(zé)協(xié)調(diào)客戶端提交查詢的執(zhí)行
② 與HDFS部署在同一節(jié)點上
③ 給其它inmalad分配任務(wù)以及收集其它的impalad執(zhí)行結(jié)果,進(jìn)行匯總
④ impala也會對其它impalad分配任務(wù),主要是對本地的HDFS脖含、HBase里的部分?jǐn)?shù)據(jù)進(jìn)行操作