重慶慧都科技有限公司
參考價: | 面議 |
- 產(chǎn)品型號
- 品牌
- 其他 廠商性質(zhì)
- 所在地
訪問次數(shù):59更新時間:2022-03-28 16:38:55
功能描述
需要培訓、定制、外包?
請聯(lián)系我們!:800018081
慧都專業(yè)技術團隊幫助您提高效率,節(jié)省成本,降低風險!
* 關于本產(chǎn)品的分類與介紹僅供參考,精準產(chǎn)品資料以介紹為準,如需購買請先行測試。
特性:
快速高效
*的分布式SQL查詢處理引擎。
高級查詢優(yōu)化,如基于成本和漸進式的查詢優(yōu)化。
合理的數(shù)據(jù)集上進行交互式分析。
可伸縮
容錯性與長時間運行查詢的動態(tài)調(diào)度。
比主內(nèi)存更大的數(shù)據(jù)集核外算法。
可兼容
遵從ANSI / ISO SQL標準。
支持Hive MetaStore 的訪問。
支持JDBC驅(qū)動。
支持各種格式文件。如CSV、 JSON、 RCFile、SequenceFile、 ORC以及 Parquet。
簡單
用戶定義函數(shù)
交互性的外殼
方便的備份/恢復功能
異步/同步Java API
體系架構:
Tajo采用了Master-Worker架構,Master-Worker-Client之間的RPC通信是使用Protocol buffer + Netty來實現(xiàn)的,具體如下:
1) TajoMaster:為客戶端提供查詢服務和管理各個QueryMaster(也可以說是Tajo Worker),解析Query并協(xié)調(diào)QueryMaster,目前還內(nèi)置了catalog服務器。大致可以分為四個組件:Cluster Manager、Catalog、Global Query Engine以及History Manager。
Catalog 的工作是管理諸如tables、schemas、partitions,functions,indices及statistics等各種metadata。這些元數(shù)據(jù)信息一般都是Global Query Engine來操作,為了低延遲考慮跟hive一樣都是存在RDBMS(目前支持Derby和MySQL),默認是保存在內(nèi)置的Derby數(shù)據(jù)庫中。后面可能會考慮使用hive的HCatalog來完成這塊功能。
Cluster Manager 主要是管理集群中各個節(jié)點之間的通信信息及資源(內(nèi)存/CPU/Disk)信息,每個節(jié)點定期發(fā)送資源信息,交給Master來管理將用于查詢計劃的分配等,這一塊是依賴Yarn的ResourceManager來管理。
Global Query Engine 當一條query提交到master,GQE就會依據(jù)表的metadata以及集群資源信息(依賴于Catalog和Cluster Manager兩個模塊提供的信息)生成一個全局的查詢計劃。對于一個分布式執(zhí)行環(huán)境,全局的查詢計劃將會被分片,劃分成各個查詢單元分配給各個worker去執(zhí)行,在這些worker執(zhí)行過程中GQE會監(jiān)控每一個查詢單元的運行狀況并實時去優(yōu)化和容錯。在這一塊目前的語法解析是用ANTLR 4生成AST(抽象語法樹),這個以后可能會使用Tenzing的SQL Query Engine。
History Manager 收集各個query job狀態(tài)信息包括查詢語句,劃分的查詢單元等,通過web ui(默認端口號:26080)可以查詢。
2) QueryMaster:負責一個query的解析、優(yōu)化與執(zhí)行,它參與多個task runner worker協(xié)同工作,完成一個query的計算。每個Query Master可以生成多個TaskRunner來執(zhí)行master的查詢單元,這些task runner都是由yarn中的NodeManager來管理。
3)Tajo Worker 每個節(jié)點就是一個worker角色,每個worker包含存儲模塊管理和一個Local模式的Query Engine,這個local模式的Query Engine就是來接受master分配的查詢單元。每個查詢單元包含一個邏輯查詢計劃和一個分片(輸入數(shù)據(jù)關系的信息塊),在執(zhí)行過程中worker定期向master匯報查詢進度和資源信息,master可以很靈活地面對非異常的錯誤。

如上圖所示,Tajo采用傳統(tǒng)數(shù)據(jù)庫技術開發(fā)了SQL解析器,包括SQL解析、生成查詢計劃、優(yōu)化查詢計劃、執(zhí)行查詢技術等。但與傳統(tǒng)的數(shù)據(jù)庫技術不同,Tajo最終執(zhí)行查詢技術時借鑒了MapReduce的設計思想,它將查詢計劃轉(zhuǎn)化為一系列任務,這樣,執(zhí)行查詢計劃實際上就是執(zhí)行這些任務,而每一個任務就是一個計算單位,同時Map Task和Reduce Task一樣。