色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于MPP架構的介紹與批處理架構異同點及OLAP引擎詳解

電子工程師 ? 來源:維科網 ? 作者:園陌 ? 2021-04-14 11:18 ? 次閱讀

面試官:說下你知道的MPP架構的計算引擎?

這個問題不少小伙伴在面試時都遇到過,因為對MPP這個概念了解較少,不少人都卡殼了,但是我們常用的大數據計算引擎有很多都是MPP架構的,像我們熟悉的Impala、ClickHouse、Druid、Doris等都是MPP架構。

采用MPP架構的很多OLAP引擎號稱:億級秒開。

本文分為三部分講解,第一部分詳解MPP架構,第二部分剖析MPP架構與批處理架構的異同點,第三部分是采用MPP架構的OLAP引擎介紹。

一、MPP架構

MPP是系統架構角度的一種服務器分類方法。

目前商用的服務器分類大體有三種:

SMP(對稱多處理器結構)NUMA(非一致存儲訪問結構)MPP(大規模并行處理結構)

我們今天的主角是 MPP,因為隨著分布式、并行化技術成熟應用,MPP引擎逐漸表現出強大的高吞吐、低時延計算能力,有很多采用MPP架構的引擎都能達到“億級秒開”。

先了解下這三種結構:

1. SMP

即對稱多處理器結構,就是指服務器的多個CPU對稱工作,無主次或從屬關系。SMP服務器的主要特征是共享,系統中的所有資源(如CPU、內存、I/O等)都是共享的。也正是由于這種特征,導致了SMP服務器的主要問題,即擴展能力非常有限。

2. NUMA

即非一致存儲訪問結構。這種結構就是為了解決SMP擴展能力不足的問題,利用NUMA技術,可以把幾十個CPU組合在一臺服務器內。NUMA的基本特征是擁有多個CPU模塊,節點之間可以通過互聯模塊進行連接和信息交互,所以,每個CPU可以訪問整個系統的內存(這是與MPP系統的重要區別)。但是訪問的速度是不一樣的,因為CPU訪問本地內存的速度遠遠高于系統內其他節點的內存速度,這也是非一致存儲訪問NUMA的由來。

這種結構也有一定的缺陷,由于訪問異地內存的時延遠遠超過訪問本地內存,因此,當CPU數量增加時,系統性能無法線性增加。

3. MPP

即大規模并行處理結構。MPP的系統擴展和NUMA不同,MPP是由多臺SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個服務器系統。每個節點只訪問自己的資源,所以是一種完全無共享(Share Nothing)結構。

MPP結構擴展能力最強,理論可以無限擴展。由于MPP是多臺SPM服務器連接的,每個節點的CPU不能訪問另一個節點內存,所以也不存在異地訪問的問題。

MPP架構圖:

2021040610133620.jpg

MPP架構

每個節點內的CPU不能訪問另一個節點的內存,節點之間的信息交互是通過節點互聯網絡實現的,這個過程稱為數據重分配。

但是MPP服務器需要一種復雜的機制來調度和平衡各個節點的負載和并行處理過程。目前,一些基于MPP技術的服務器往往通過系統級軟件(如數據庫)來屏蔽這種復雜性。舉個例子,Teradata就是基于MPP技術的一個關系數據庫軟件(這是最早采用MPP架構的數據庫),基于此數據庫來開發應用時,不管后臺服務器由多少節點組成,開發人員面對的都是同一個數據庫系統,而無需考慮如何調度其中某幾個節點的負載。

MPP架構特征:

任務并行執行;數據分布式存儲(本地化);分布式計算;高并發,單個節點并發能力大于300用戶;橫向擴展,支持集群節點的擴容;Shared Nothing(完全無共享)架構。

NUMA和MPP區別:

二者有許多相似之處,首先NUMA和MPP都是由多個節點組成的;其次每個節點都有自己的CPU,內存,I/O等;都可以都過節點互聯機制進行信息交互。

那它們的區別是什么呢,首先是節點互聯機制不同,NUMA的節點互聯是在同一臺物理服務器內部實現的,MPP的節點互聯是在不同的SMP服務器外部通過I/O實現的。

其次是內存訪問機制不同,在NUMA服務器內部,任何一個CPU都可以訪問整個系統的內存,但異地內存訪問的性能遠遠低于本地內存訪問,因此,在開發應用程序時應該盡量避免異地內存訪問。而在MPP服務器中,每個節點只訪問本地內存,不存在異地內存訪問問題。

二、批處理架構和MPP架構

批處理架構(如 MapReduce)與MPP架構的異同點,以及它們各自的優缺點是什么呢?

相同點:

批處理架構與MPP架構都是分布式并行處理,將任務并行的分散到多個服務器和節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果。

不同點:

批處理架構和MPP架構的不同點可以舉例來說:我們執行一個任務,首先這個任務會被分成多個task執行,對于MapReduce來說,這些tasks被隨機的分配在空閑的Executor上;而對于MPP架構的引擎來說,每個處理數據的task被綁定到持有該數據切片的指定Executor上。

正是由于以上的不同,使得兩種架構有各自優勢也有各自缺陷:

批處理的優勢:

對于批處理架構來說,如果某個Executor執行過慢,那么這個Executor會慢慢分配到更少的task執行,批處理架構有個推測執行策略,推測出某個Executor執行過慢或者有故障,則在接下來分配task時就會較少的分配給它或者直接不分配,這樣就不會因為某個節點出現問題而導致集群的性能受限。

批處理的缺陷:

任何事情都是有代價的,對于批處理而言,它的優勢也造成了它的缺點,會將中間結果寫入到磁盤中,這嚴重限制了處理數據的性能。

MPP的優勢:

MPP架構不需要將中間數據寫入磁盤,因為一個單一的Executor只處理一個單一的task,因此可以簡單直接將數據stream到下一個執行階段。這個過程稱為pipelining,它提供了很大的性能提升。

MPP的缺陷:

對于MPP架構來說,因為task和Executor是綁定的,如果某個Executor執行過慢或故障,將會導致整個集群的性能就會受限于這個故障節點的執行速度(所謂木桶的短板效應),所以MPP架構的最大缺陷就是——短板效應。另一點,集群中的節點越多,則某個節點出現問題的概率越大,而一旦有節點出現問題,對于MPP架構來說,將導致整個集群性能受限,所以一般實際生產中MPP架構的集群節點不易過多。

舉個例子來說下兩種架構的數據落盤:要實現兩個大表的join操作,對于批處理而言,如Spark將會寫磁盤三次(第一次寫入:表1根據join key進行shuffle;第二次寫入:表2根據join key進行shuffle;第三次寫入:Hash表寫入磁盤), 而MPP只需要一次寫入(Hash表寫入)。這是因為MPP將mapper和reducer同時運行,而MapReduce將它們分成有依賴關系的tasks(DAG),這些task是異步執行的,因此必須通過寫入中間數據共享內存來解決數據的依賴。

批處理架構和MPP架構融合:

兩個架構的優勢和缺陷都很明顯,并且它們有互補關系,如果我們能將二者結合起來使用,是不是就能發揮各自最大的優勢。目前批處理和MPP也確實正在逐漸走向融合,也已經有了一些設計方案,技術成熟后,可能會風靡大數據領域,我們拭目以待!

三、 MPP架構的OLAP引擎

采用MPP架構的OLAP引擎有很多,下面只選擇常見的幾個引擎對比下,可為公司的技術選型提供參考。

采用MPP架構的OLAP引擎分為兩類,一類是自身不存儲數據,只負責計算的引擎;一類是自身既存儲數據,也負責計算的引擎。

1)只負責計算,不負責存儲的引擎

1. Impala

Apache Impala是采用MPP架構的查詢引擎,本身不存儲任何數據,直接使用內存進行計算,兼顧數據倉庫,具有實時,批處理,多并發等優點。

提供了類SQL(類Hsql)語法,在多用戶場景下也能擁有較高的響應速度和吞吐量。它是由Java和C++實現的,Java提供的查詢交互的接口和實現,C++實現了查詢引擎部分。

Impala支持共享Hive Metastore,但沒有再使用緩慢的 Hive+MapReduce 批處理,而是通過使用與商用并行關系數據庫中類似的分布式查詢引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 三部分組成),可以直接從 HDFS 或 HBase 中用 SELECT、JOIN 和統計函數查詢數據,從而大大降低了延遲。

Impala經常搭配存儲引擎Kudu一起提供服務,這么做最大的優勢是查詢比較快,并且支持數據的Update和Delete。

2. Presto

Presto是一個分布式的采用MPP架構的查詢引擎,本身并不存儲數據,但是可以接入多種數據源,并且支持跨數據源的級聯查詢。Presto是一個OLAP的工具,擅長對海量數據進行復雜的分析;但是對于OLTP場景,并不是Presto所擅長,所以不要把Presto當做數據庫來使用。

Presto是一個低延遲高并發的內存計算引擎。需要從其他數據源獲取數據來進行運算分析,它可以連接多種數據源,包括Hive、RDBMS(Mysql、Oracle、Tidb等)、Kafka、MongoDB、Redis等。

2)既負責計算,又負責存儲的引擎

1. ClickHouse

ClickHouse是近年來備受關注的開源列式數據庫,主要用于數據分析(OLAP)領域。

它自包含了存儲和計算能力,完全自主實現了高可用,而且支持完整的SQL語法包括JOIN等,技術上有著明顯優勢。相比于hadoop體系,以數據庫的方式來做大數據處理更加簡單易用,學習成本低且靈活度高。當前社區仍舊在迅猛發展中,并且在國內社區也非?;馃?,各個大廠紛紛跟進大規模使用。

ClickHouse在計算層做了非常細致的工作,竭盡所能榨干硬件能力,提升查詢速度。它實現了單機多核并行、分布式計算、向量化執行與SIMD指令、代碼生成等多種重要技術。

ClickHouse從OLAP場景需求出發,定制開發了一套全新的高效列式存儲引擎,并且實現了數據有序存儲、主鍵索引、稀疏索引、數據Sharding、數據Partitioning、TTL、主備復制等豐富功能。以上功能共同為ClickHouse極速的分析性能奠定了基礎。

2. Doris

Doris是百度主導的,根據Google Mesa論文和Impala項目改寫的一個大數據分析引擎,是一個海量分布式 KV 存儲系統,其設計目標是支持中等規模高可用可伸縮的 KV 存儲集群。

Doris可以實現海量存儲,線性伸縮、平滑擴容,自動容錯、故障轉移,高并發,且運維成本低。部署規模,建議部署4-100+臺服務器。

Doris3 的主要架構:DT(Data Transfer)負責數據導入、DS(Data Seacher)模塊負責數據查詢、DM(Data Master)模塊負責集群元數據管理,數據則存儲在 Armor 分布式 Key-Value 引擎中。Doris3 依賴 ZooKeeper 存儲元數據,從而其他模塊依賴 ZooKeeper 做到了無狀態,進而整個系統能夠做到無故障單點。

3. Druid

Druid是一個開源、分布式、面向列式存儲的實時分析數據存儲系統。

Druid的關鍵特性如下:

亞秒級的OLAP查詢分析:采用了列式存儲、倒排索引、位圖索引等關鍵技術;在亞秒級別內完成海量數據的過濾、聚合以及多維分析等操作;實時流數據分析:Druid提供了實時流數據分析,以及高效實時寫入;實時數據在亞秒級內的可視化;豐富的數據分析功能:Druid提供了友好的可視化界面;SQL查詢語言;高可用性與高可拓展性:Druid工作節點功能單一,不相互依賴;Druid集群在管理、容錯、災備、擴容都很容易;

4. TiDB

TiDB 是 PingCAP 公司自主設計、研發的開源分布式關系型數據庫,是一款同時支持OLTP與OLAP的融合型分布式數據庫產品

TiDB 兼容 MySQL 5.7 協議和 MySQL 生態等重要特性。目標是為用戶提供一站式 OLTP 、OLAP 、HTAP 解決方案。TiDB 適合高可用、強一致要求較高、數據規模較大等各種應用場景。

5. Greenplum

Greenplum 是在開源的 PostgreSQL 的基礎上采用了MPP架構的性能非常強大的關系型分布式數據庫。為了兼容Hadoop生態,又推出了HAWQ,分析引擎保留了Greenplum的高性能引擎,下層存儲不再采用本地硬盤而改用HDFS,規避本地硬盤可靠性差的問題,同時融入Hadoop生態。

3)常用的引擎對比

一張圖總結下常用的OLAP引擎對比:

常見OLAP引擎對比

20210406101337601.jpg

編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SMP
    SMP
    +關注

    關注

    0

    文章

    76

    瀏覽量

    19704
  • OLAP
    +關注

    關注

    0

    文章

    24

    瀏覽量

    10117
  • MPP
    MPP
    +關注

    關注

    0

    文章

    24

    瀏覽量

    10611
收藏 人收藏

    評論

    相關推薦

    ?ISP算法及架構分析介紹

    一、ISP算法及架構分析介紹 ISP即Image Signal Processor,是一種圖像處理架構,不是我們用的下載器。 ISP其實算是圖像處理
    的頭像 發表于 11-26 10:05 ?605次閱讀
    ?ISP算法及<b class='flag-5'>架構</b>分析<b class='flag-5'>介紹</b>

    架構與設計 常見微服務分層架構的區別和落地實踐

    架構風格越傾向于清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件架構設計過程中又有非常多的架構分層模型。 傳統三層
    的頭像 發表于 10-22 15:34 ?292次閱讀
    <b class='flag-5'>架構</b>與設計 常見微服務分層<b class='flag-5'>架構</b>的區別和落地實踐

    指令集架構與微架構的區別

    指令集架構(Instruction Set Architecture,ISA)與微架構(Microarchitecture)是計算機體系結構中的兩個重要概念,它們在處理器的設計和實現中扮演著不同的角色。以下是對兩者區別的詳細闡述
    的頭像 發表于 10-05 15:10 ?652次閱讀

    簡述微處理器的指令集架構

    處理器的指令集架構(Instruction Set Architecture,ISA)是計算機體系結構中的核心組成部分,它定義了計算機能夠執行的指令集合、數據類型、寄存器、內存訪問方式等,是連接
    的頭像 發表于 10-05 14:59 ?543次閱讀

    電源反接制動和倒拉反接制動有何異同點

    電源反接制動和倒拉反接制動是兩種電機制動方式,它們在工業自動化和電機控制領域中有著廣泛的應用。這兩種制動方式各有特點和適用場景,下面我將介紹它們的異同點。 電源反接制動 電源反接制動是一種電機
    的頭像 發表于 09-19 09:10 ?1468次閱讀

    處理器的指令集架構介紹

    處理器的指令集架構(Instruction Set Architecture,ISA)是計算機體系結構中至關重要的部分,它定義了微處理器能夠執行的操作和指令的集合,以及這些指令如何被組織、存儲
    的頭像 發表于 08-22 10:53 ?1481次閱讀

    SSD架構與功能模塊詳解

    在之前的系列文章中,我們介紹了固態硬盤的系列知識,包括閃存的介質、原理,以及作為SSD大腦的控制器設計,本文將詳細介紹SSD架構以及功能模塊。
    的頭像 發表于 07-27 10:30 ?1131次閱讀
    SSD<b class='flag-5'>架構</b>與功能模塊<b class='flag-5'>詳解</b>

    中科馭數助力奇點云《2024 OLAP數據庫引擎選型白皮書》發布

    5月28日,奇點云2024 StartDT Day數智科技大會暨產品發布會召開,同期發布了2024年版《OLAP數據庫引擎選型白皮書》,為業界伙伴提供最新的選型參考。
    的頭像 發表于 05-30 09:50 ?480次閱讀
    中科馭數助力奇點云《2024 <b class='flag-5'>OLAP</b>數據庫<b class='flag-5'>引擎</b>選型白皮書》發布

    MySQL的整體邏輯架構

    支持多種存儲引擎是眾所周知的MySQL特性,也是MySQL架構的關鍵優勢之一。如果能夠理解MySQL Server與存儲引擎之間是怎樣通過API交互的,將大大有利于理解MySQL的核心基礎架構
    的頭像 發表于 04-30 11:14 ?479次閱讀
    MySQL的整體邏輯<b class='flag-5'>架構</b>

    嵌入式微處理架構可分為

    的性能、功耗和可靠性都有重要影響。 目前,主流的嵌入式微處理架構主要有ARM架構、x86架構和MIPS架構。下面將對這三種
    的頭像 發表于 04-21 14:39 ?1214次閱讀

    交換芯片架構是什么意思 交換芯片架構怎么工作

    交換芯片架構是指交換芯片內部的設計和組織方式,包括其硬件組件、處理單元、內存結構、接口以及其他關鍵部分的布局和相互作用。交換芯片的架構決定了其處理網絡數據包的能力和效率。
    的頭像 發表于 03-22 16:45 ?804次閱讀

    交換芯片架構設計

    交換芯片的架構設計是網絡設備性能和功能的關鍵。一個高效的交換芯片架構能夠處理大量的數據流量,支持高速數據傳輸,并提供先進的網絡功能。
    的頭像 發表于 03-21 16:28 ?596次閱讀

    fpga芯片架構介紹

    FPGA(現場可編程門陣列)芯片架構是一種高度靈活和可編程的集成電路架構,它以其獨特的結構和功能,在現代電子系統中扮演著至關重要的角色。FPGA芯片架構的核心在于其可編程性和高度的并行處理
    的頭像 發表于 03-15 14:56 ?815次閱讀

    處理器多架構部署的優勢有哪些?

    Web 服務器、搜索引擎和內容管理系統等位于企業云基礎設施前端的應用程序,是引入可擴展、高能效 arm64 架構的理想對象。
    發表于 03-15 14:39 ?465次閱讀
    <b class='flag-5'>處理</b>器多<b class='flag-5'>架構</b>部署的優勢有哪些?

    NFC技術與RFID技術有哪些異同點

    NFC技術與RFID技術在一些方面相似,但也存在一些不同之處。以下是它們之間的主要異同點: 相同點: 都是無線通信技術:NFC和RFID都是利用無線信號進行數據傳輸的通信技術,它們都不需要通過物理
    的頭像 發表于 03-08 17:56 ?2497次閱讀
    主站蜘蛛池模板: 久草在线一免费新视频 | 东京热一本无码av | 邻家美姨在线观看全集免费 | 男生J桶进女人P又色又爽又黄 | 国产亚洲欧美ai在线看片 | 中文字幕99香蕉在线 | 高h辣h双处全是肉一对一 | 92午夜理论第1000集 app | 精品粉嫩BBWBBZBBW| 欧美中文字幕一区二区三区 | 乳交高H糙汉宠文 | 青青草原国产在线 | 亚洲色综合狠狠综合区 | 澳大利亚剧满足在线观看 | 老师的快感电影完整版 | 十分钟免费观看高清视频大全 | 国产精品资源网站在线观看 | 国产成久久免费精品AV片天堂 | 青青青久久 | 亚洲 无码 在线 专区 | 国产乱码卡二卡三卡4W | 一本色道久久88加勒比—综合 | 亚洲欧美中文字幕高清在线 | MD传媒MD0021在线观看 | DASD-700美谷朱里 | 色多多涩涩屋下载软件 | 亚洲人成影院在线播放 | 国产精品大陆在线视频 | 国产高潮国产高潮久久久久久 | 色www精品视频在线观看 | 国产一区二区在线观看免费 | 樱花动漫成人隐藏入口 | WWW亚洲精品久久久无码 | 肉肉高潮液体高干文H | 影音先锋影院中文无码 | 一本之道高清www在线观看 | 国产AV无码熟妇人妻麻豆 | 中文字幕亚洲无线码高清不卡 | 日韩精品 中文字幕 有码 | 亚洲日韩欧美国产中文在线 | 在线播放无码字幕亚洲 |