Apache Tajo是Hadoop上的一個(gè)大數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)。
標(biāo)簽:大數(shù)據(jù)BI數(shù)據(jù)可視化數(shù)據(jù)分析Hadoop開發(fā)商: Apache
當(dāng)前版本: v0.11.1
產(chǎn)品類型:開源
產(chǎn)品功能:大數(shù)據(jù)分析工具
平臺(tái)語(yǔ)言:
開源水平:不提供源碼
本產(chǎn)品的分類與介紹僅供參考,具體以商家網(wǎng)站介紹為準(zhǔn),如有疑問(wèn)請(qǐng)來(lái)電 023-68661681 咨詢。
* 關(guān)于本產(chǎn)品的分類與介紹僅供參考,精準(zhǔn)產(chǎn)品資料以官網(wǎng)介紹為準(zhǔn),如需購(gòu)買請(qǐng)先行測(cè)試。
快速高效
完全的分布式SQL查詢處理引擎。
高級(jí)查詢優(yōu)化,如基于成本和漸進(jìn)式的查詢優(yōu)化。
合理的數(shù)據(jù)集上進(jìn)行交互式分析。
可伸縮
容錯(cuò)性與長(zhǎng)時(shí)間運(yùn)行查詢的動(dòng)態(tài)調(diào)度。
比主內(nèi)存更大的數(shù)據(jù)集核外算法。
可兼容
遵從ANSI / ISO SQL標(biāo)準(zhǔn)。
支持Hive MetaStore 的訪問(wèn)。
支持JDBC驅(qū)動(dòng)。
支持各種格式文件。如CSV、 JSON、 RCFile、SequenceFile、 ORC以及 Parquet。
簡(jiǎn)單
用戶定義函數(shù)
交互性的外殼
方便的備份/恢復(fù)功能
異步/同步Java API
Tajo采用了Master-Worker架構(gòu),Master-Worker-Client之間的RPC通信是使用Protocol buffer + Netty來(lái)實(shí)現(xiàn)的,具體如下:
1) TajoMaster:為客戶端提供查詢服務(wù)和管理各個(gè)QueryMaster(也可以說(shuō)是Tajo Worker),解析Query并協(xié)調(diào)QueryMaster,目前還內(nèi)置了catalog服務(wù)器。大致可以分為四個(gè)組件:Cluster Manager、Catalog、Global Query Engine以及History Manager。
Catalog 的工作是管理諸如tables、schemas、partitions,functions,indices及statistics等各種metadata。這些元數(shù)據(jù)信息一般都是Global Query Engine來(lái)操作,為了低延遲考慮跟hive一樣都是存在RDBMS(目前支持Derby和MySQL),默認(rèn)是保存在內(nèi)置的Derby數(shù)據(jù)庫(kù)中。后面可能會(huì)考慮使用hive的HCatalog來(lái)完成這塊功能。
Cluster Manager 主要是管理集群中各個(gè)節(jié)點(diǎn)之間的通信信息及資源(內(nèi)存/CPU/Disk)信息,每個(gè)節(jié)點(diǎn)定期發(fā)送資源信息,交給Master來(lái)管理將用于查詢計(jì)劃的分配等,這一塊是依賴Yarn的ResourceManager來(lái)管理。
Global Query Engine 當(dāng)一條query提交到master,GQE就會(huì)依據(jù)表的metadata以及集群資源信息(依賴于Catalog和Cluster Manager兩個(gè)模塊提供的信息)生成一個(gè)全局的查詢計(jì)劃。對(duì)于一個(gè)分布式執(zhí)行環(huán)境,全局的查詢計(jì)劃將會(huì)被分片,劃分成各個(gè)查詢單元分配給各個(gè)worker去執(zhí)行,在這些worker執(zhí)行過(guò)程中GQE會(huì)監(jiān)控每一個(gè)查詢單元的運(yùn)行狀況并實(shí)時(shí)去優(yōu)化和容錯(cuò)。在這一塊目前的語(yǔ)法解析是用ANTLR 4生成AST(抽象語(yǔ)法樹),這個(gè)以后可能會(huì)使用Tenzing的SQL Query Engine。
History Manager 收集各個(gè)query job狀態(tài)信息包括查詢語(yǔ)句,劃分的查詢單元等,通過(guò)web ui(默認(rèn)端口號(hào):26080)可以查詢。
2) QueryMaster:負(fù)責(zé)一個(gè)query的解析、優(yōu)化與執(zhí)行,它參與多個(gè)task runner worker協(xié)同工作,完成一個(gè)query的計(jì)算。每個(gè)Query Master可以生成多個(gè)TaskRunner來(lái)執(zhí)行master的查詢單元,這些task runner都是由yarn中的NodeManager來(lái)管理。
3)Tajo Worker 每個(gè)節(jié)點(diǎn)就是一個(gè)worker角色,每個(gè)worker包含存儲(chǔ)模塊管理和一個(gè)Local模式的Query Engine,這個(gè)local模式的Query Engine就是來(lái)接受master分配的查詢單元。每個(gè)查詢單元包含一個(gè)邏輯查詢計(jì)劃和一個(gè)分片(輸入數(shù)據(jù)關(guān)系的信息塊),在執(zhí)行過(guò)程中worker定期向master匯報(bào)查詢進(jìn)度和資源信息,master可以很靈活地面對(duì)非異常的錯(cuò)誤。
如上圖所示,Tajo采用傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)開發(fā)了SQL解析器,包括SQL解析、生成查詢計(jì)劃、優(yōu)化查詢計(jì)劃、執(zhí)行查詢技術(shù)等。但與傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)不同,Tajo最終執(zhí)行查詢技術(shù)時(shí)借鑒了MapReduce的設(shè)計(jì)思想,它將查詢計(jì)劃轉(zhuǎn)化為一系列任務(wù),這樣,執(zhí)行查詢計(jì)劃實(shí)際上就是執(zhí)行這些任務(wù),而每一個(gè)任務(wù)就是一個(gè)計(jì)算單位,同時(shí)Map Task和Reduce Task一樣。
更新時(shí)間:2017-06-05 11:14:18.000 | 錄入時(shí)間:2016-02-04 17:12:45.000 | 責(zé)任編輯:陳俊吉