您好,登錄后才能下訂單哦!
如何進(jìn)行ApacheHudi與其他類(lèi)似系統(tǒng)的比較,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
Apache Hudi填補(bǔ)了在DFS上處理數(shù)據(jù)的巨大空白,并可以和一些大數(shù)據(jù)技術(shù)很好地共存。然而,將Hudi與一些相關(guān)系統(tǒng)進(jìn)行對(duì)比,來(lái)了解Hudi如何適應(yīng)當(dāng)前的大數(shù)據(jù)生態(tài)系統(tǒng),并知曉這些系統(tǒng)在設(shè)計(jì)中做的不同權(quán)衡仍將非常有用。
Apache Kudu是一個(gè)與Hudi具有相似目標(biāo)的存儲(chǔ)系統(tǒng),該系統(tǒng)通過(guò)對(duì) upserts
支持來(lái)對(duì)PB級(jí)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析。一個(gè)關(guān)鍵的區(qū)別是Kudu還試圖充當(dāng)OLTP工作負(fù)載的數(shù)據(jù)存儲(chǔ),而Hudi并不希望這樣做。因此,Kudu不支持增量拉取(截至2017年初),而Hudi支持增量處理。
Kudu與分布式文件系統(tǒng)抽象和HDFS完全不同,它自己的一組存儲(chǔ)服務(wù)器通過(guò)RAFT相互通信。與之不同的是,Hudi旨在與底層Hadoop兼容的文件系統(tǒng)(HDFS,S3或Ceph)一起使用,并且沒(méi)有自己的存儲(chǔ)服務(wù)器群,而是依靠Apache Spark來(lái)完成繁重的工作。因此,Hudi可以像其他Spark作業(yè)一樣輕松擴(kuò)展,而Kudu則需要硬件和運(yùn)營(yíng)支持,特別是HBase或Vertica等數(shù)據(jù)存儲(chǔ)系統(tǒng)。到目前為止,我們還沒(méi)有做任何直接的基準(zhǔn)測(cè)試來(lái)比較Kudu和Hudi。但是,如果我們要使用CERN,我們預(yù)期Hudi在攝取parquet文件上有更卓越的性能。
Hive事務(wù)/ACID是另一項(xiàng)類(lèi)似的工作,它試圖在ORC文件格式之上的實(shí)現(xiàn) 讀取時(shí)合并
的存儲(chǔ)層。可以理解,此功能與Hive以及LLAP之類(lèi)的其他工作緊密相關(guān)。Hive事務(wù)不提供Hudi提供的讀取優(yōu)化存儲(chǔ)選項(xiàng)或增量拉取。在實(shí)現(xiàn)選擇方面,Hudi充分利用了類(lèi)似Spark的處理框架的功能,而Hive事務(wù)特性則在用戶或Hive Metastore啟動(dòng)的Hive任務(wù)/查詢的下實(shí)現(xiàn)。根據(jù)我們的生產(chǎn)經(jīng)驗(yàn),與其他方法相比,將Hudi作為庫(kù)嵌入到現(xiàn)有的Spark管道中要容易得多,并且操作不會(huì)太繁瑣。Hudi還設(shè)計(jì)用于與Presto/Spark等非Hive引擎合作,并計(jì)劃引入除parquet以外的文件格式。
盡管HBase最終是OLTP工作負(fù)載的鍵值存儲(chǔ)層,但由于與Hadoop的相似性,用戶通常傾向于將HBase與分析相關(guān)聯(lián)。鑒于HBase經(jīng)過(guò)嚴(yán)格的寫(xiě)優(yōu)化,它支持開(kāi)箱即用的亞秒級(jí)更新,Hive-on-HBase允許用戶查詢?cè)摂?shù)據(jù)。但是,就分析工作負(fù)載的實(shí)際性能而言,Parquet/ORC之類(lèi)的混合列式存儲(chǔ)格式可以輕松超越HBase,因?yàn)檫@些工作負(fù)載主要是讀取繁重的工作。Hudi彌補(bǔ)了更快的數(shù)據(jù)與分析存儲(chǔ)格式之間的差距。從運(yùn)營(yíng)的角度來(lái)看,與管理分析使用的HBase region服務(wù)器集群相比,為用戶提供可更快給出數(shù)據(jù)的庫(kù)更具可擴(kuò)展性。最終,HBase不像Hudi這樣重點(diǎn)支持 提交時(shí)間
、 增量拉取
之類(lèi)的增量處理原語(yǔ)。
一個(gè)普遍的問(wèn)題:"Hudi與流處理系統(tǒng)有何關(guān)系?",我們將嘗試回答。簡(jiǎn)而言之,Hudi可以與當(dāng)今的批處理( 寫(xiě)時(shí)復(fù)制存儲(chǔ)
)和流處理( 讀時(shí)合并存儲(chǔ)
)作業(yè)集成,以將計(jì)算結(jié)果存儲(chǔ)在Hadoop中。對(duì)于Spark應(yīng)用程序,這可以通過(guò)將Hudi庫(kù)與Spark/Spark流式DAG直接集成來(lái)實(shí)現(xiàn)。在非Spark處理系統(tǒng)(例如Flink、Hive)情況下,可以在相應(yīng)的系統(tǒng)中進(jìn)行處理,然后通過(guò)Kafka主題/DFS中間文件將其發(fā)送到Hudi表中。從概念上講,數(shù)據(jù)處理管道僅由三個(gè)部分組成:輸入
, 處理
, 輸出
,用戶最終針對(duì)輸出運(yùn)行查詢以便使用管道的結(jié)果。Hudi可以充當(dāng)將數(shù)據(jù)存儲(chǔ)在DFS上的輸入或輸出。Hudi在給定流處理管道上的適用性最終歸結(jié)為你的查詢?cè)赑resto/SparkSQL/Hive的適用性。
更高級(jí)的用例圍繞增量處理的概念展開(kāi),甚至在 處理
引擎內(nèi)部也使用Hudi來(lái)加速典型的批處理管道。例如:Hudi可用作DAG內(nèi)的狀態(tài)存儲(chǔ)(類(lèi)似Flink使用的[rocksDB(https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/state_backends.html#the-rocksdbstatebackend))。這是路線圖上的一個(gè)項(xiàng)目并將最終以Beam Runner的形式呈現(xiàn)。
對(duì)于與Iceberg和Delta的對(duì)比,可以看如下對(duì)比圖(2019年9月之前由Qubole技術(shù)博客提供)。
Hudi社區(qū)并不想通過(guò)官方文檔方式來(lái)比較與同為數(shù)據(jù)湖開(kāi)源框架Iceberg和Delta的區(qū)別,因?yàn)檫@可能會(huì)讓開(kāi)發(fā)者覺(jué)得Hudi立場(chǎng)不中立,為保持更為中立的立場(chǎng),社區(qū)更愿意將此比較交給開(kāi)發(fā)者,讓他們?nèi)ミx擇適合自己的框架。
關(guān)于如何進(jìn)行ApacheHudi與其他類(lèi)似系統(tǒng)的比較問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。