摘要:典型代表是,這種系統(tǒng)的特點(diǎn)是擴(kuò)展性和容錯(cuò)性好,但性能低下。借鑒分布式數(shù)據(jù)庫(kù)思想。具體見參考資料,下載,下載是韓國(guó)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室開源的基于的分布式數(shù)據(jù)倉(cāng)庫(kù),目前是的二級(jí)項(xiàng)目。此外,使用進(jìn)行資源管理。
1. 背景
當(dāng)前,Hadoop之上的SQL引擎已經(jīng)非常多了,概括起來有兩類系統(tǒng),分別是:
(1)將SQL轉(zhuǎn)化為MapReduce。典型代表是Apache Hive,這種系統(tǒng)的特點(diǎn)是擴(kuò)展性和容錯(cuò)性好,但性能低下。為了彌補(bǔ)SQL on MapReduce的不足,google提出了Tenzing(見參考資料[3]),與Hive不同,Tenzing充分借鑒了MapReduce和DataBase的優(yōu)勢(shì),首先,它對(duì)傳統(tǒng)的MapReduce進(jìn)行了優(yōu)化(比如Map 可以不寫磁盤,Reduce可不必排序等),使其性能更高,采用MapReduce一大優(yōu)勢(shì)是使Tenzing具有了很好的擴(kuò)展性和容錯(cuò)性,Tenzing論文是這樣表述的:
“Thanks to MapReduce, Tenzing scales to thousands of cores and petabytes of data on cheap, unreliable hardware. We worked closely with the MapReduce team to implement and take advantage of MapReduce optimizations.”
其次,它借鑒了傳統(tǒng)database的優(yōu)勢(shì),嵌有一個(gè)cost-based 優(yōu)化器,以對(duì)SQL查詢計(jì)劃進(jìn)行充分優(yōu)化。
(2)借鑒分布式數(shù)據(jù)庫(kù)思想。典型代表是Google Dremel、Apache Drill和Cloudera Impala,這類系統(tǒng)的特點(diǎn)是性能高(與Hive等系統(tǒng)比),但擴(kuò)展性(包括集群規(guī)模擴(kuò)展和SQL類型支持多樣性)和容錯(cuò)性較差,Google在Dremel論文(見參考資料[4])中這樣描述Dremel的適用場(chǎng)景:
“Dremel is not intended as a replacement for MR and is often used in conjunction with it to analyze outputs of MR pipelines or rapidly prototype larger computations.”
也就是說,Dremel并不是用以取代MR的,而是彌補(bǔ)MR不足,通常用于分析MR產(chǎn)生的數(shù)據(jù)(這些數(shù)據(jù)量小,處理這些數(shù)據(jù)時(shí),對(duì)SQL表達(dá)能力和框架容錯(cuò)性要求低)。
Apache tajo(具體見參考資料[1][2],tajo ppt下載,tajo paper下載)是韓國(guó)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室開源的基于YARN的分布式數(shù)據(jù)倉(cāng)庫(kù),目前是Apache的二級(jí)項(xiàng)目。Tajo的設(shè)計(jì)思想類似于Tenzing,它充分借鑒了MapReduce和DataBase的優(yōu)勢(shì),使其具有Hive的擴(kuò)展性和容錯(cuò)性好的優(yōu)點(diǎn),但同時(shí)性能比Hive高不少。
2. Tajo設(shè)計(jì)架構(gòu)Tajo采用了Master-worker架構(gòu),具體如下:
(1) TajoMaster:為客戶端提供查詢服務(wù)和管理各個(gè)QueryMaster。
(2) QueryMaster:負(fù)責(zé)一個(gè)query的解析、優(yōu)化與執(zhí)行,它與多個(gè)task runner worker協(xié)同工作,完成一個(gè)query的計(jì)算。
如下圖所示,Tajo采用傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)開發(fā)了SQL解析器,包括SQL解析,生成查詢計(jì)劃、優(yōu)化查詢計(jì)劃、執(zhí)行查詢技術(shù)等,但與傳統(tǒng)數(shù)據(jù)庫(kù)不同,Tajo最終執(zhí)行查詢計(jì)劃時(shí)借鑒了MapReduce的設(shè)計(jì)思想,它將查詢計(jì)劃轉(zhuǎn)化為一系列任務(wù),這樣,執(zhí)行查詢計(jì)劃實(shí)際上就是執(zhí)行這些任務(wù),而每個(gè)任務(wù)是一個(gè)計(jì)算單位,同Map Task和Reduce Task一樣,它可以重復(fù)執(zhí)行、有進(jìn)度匯報(bào)等,這樣,Tajo可以直接使用MapReduce中的容錯(cuò)、推測(cè)執(zhí)行等機(jī)制。此外,Tajo使用YARN進(jìn)行資源管理。
我在前一篇博文《Apache Tez:一個(gè)運(yùn)行在YARN之上支持DAG作業(yè)的計(jì)算框架》中介紹了Tez,其中談到Hive+Tez,經(jīng)Tez優(yōu)化后的Hive是一個(gè)非常有前景的項(xiàng)目,此外,Tajo也談到,將來不排除使用Tez作為底層計(jì)算框架的可能:
Besides, Tez has some overlapping functions with Tajo. However, Tez is in the pre-alpha stage and may be a prototype. When Tez becomes feasible, Tajo could use Tez as an underlying framework according to the applicability. However, Tajo will still use its row/native columnar execution engine and its optimizer. Tajo may be potentially the first application of Tez.
真正可能取代Hive的是Tenzing或者Tajo這樣的系統(tǒng),而不是類似Dremel或者Impala的系統(tǒng)。后者在擴(kuò)展性、SQL表達(dá)能力(主要是它的嵌套存儲(chǔ)模型導(dǎo)致的)和容錯(cuò)性等方面遠(yuǎn)遠(yuǎn)差于Hive/Tenzing/Tajo,正如Dremel論文所述,Dremel通常與MR結(jié)合使用,設(shè)計(jì)動(dòng)機(jī)并不是取代MR,而是使某些場(chǎng)景下的計(jì)算更加高效。此外,Dremel和Impala是一種計(jì)算系統(tǒng),它們需要計(jì)算資源,卻沒有集成到當(dāng)前發(fā)展迅猛的資源管理系統(tǒng)YARN中,這意味著,如果采用Impala這樣的系統(tǒng),你只能多帶帶搭一個(gè)獨(dú)立的專有集群,無法做到資源共享。即使Impala成熟了,如果Hive的取代品(比如Tajo)沒有成熟,則長(zhǎng)期時(shí)間內(nèi),大部分公司仍然主要采用Hive(這時(shí)候,Hortonworks的Hive+Tez就有用武之地了)進(jìn)行大數(shù)據(jù)處理,而Impala僅用于進(jìn)一步處理Hive輸出的結(jié)果或者用于某一類適合場(chǎng)景的應(yīng)用(畢竟這類系統(tǒng)的SQL表達(dá)能力有限,容錯(cuò)性和擴(kuò)展性差)。
就Tajo而言,目前活躍度很低,只有韓國(guó)大學(xué)的數(shù)據(jù)庫(kù)實(shí)驗(yàn)室的幾個(gè)人在開發(fā),離真正的可用還有很長(zhǎng)時(shí)間,但它已經(jīng)邁出了第一步,即成為Apache的項(xiàng)目,讓更多的人參與進(jìn)來。
4.參考資料Tajo’s slide
Tajo: A Distributed Data Warehouse System on Large Clusters.
Tenzing: A SQL Implementation On The MapReduce Framework
Dremel: Interactive Analysis of Web-Scale Datasets
by 西成懂 under CC-BY
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/35713.html
閱讀 2857·2023-04-26 01:02
閱讀 1887·2021-11-17 09:38
閱讀 810·2021-09-22 15:54
閱讀 2913·2021-09-22 15:29
閱讀 905·2021-09-22 10:02
閱讀 3460·2019-08-30 15:54
閱讀 2021·2019-08-30 15:44
閱讀 1608·2019-08-26 13:46