日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
怎么理解Vineyard加入CNCFSandbox

本篇內(nèi)容介紹了“怎么理解Vineyard加入CNCF Sandbox”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司公司2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元牟平做網(wǎng)站,已為上家服務(wù),為牟平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575

項(xiàng)目介紹

現(xiàn)有的大數(shù)據(jù)分析場(chǎng)景中,對(duì)于端到端任務(wù),不同的子任務(wù)之間通常使用例如 HDFS、S3、OSS 這樣的分布式文件系統(tǒng)或?qū)ο蟠鎯?chǔ)系統(tǒng),來(lái)共享任務(wù)之間的中間數(shù)據(jù),這種方式在運(yùn)行效率和研發(fā)效率上存在諸多問(wèn)題,以下圖所示的一個(gè)風(fēng)控作業(yè)工作流為例:  怎么理解Vineyard加入CNCF Sandbox

  1. 工作流中不同任務(wù)之間為了共享中間數(shù)據(jù),前一個(gè)任務(wù)將結(jié)果寫(xiě)入文件系統(tǒng),完成之后,后一個(gè)再將文件讀出作為輸入,這個(gè)過(guò)程帶來(lái)了額外的序列化及反序列化、內(nèi)存拷貝、以及網(wǎng)絡(luò)、IO 的開(kāi)銷(xiāo),我們從歷史任務(wù)中觀察到有超過(guò) 60% 的任務(wù)為此花費(fèi)了 40% 以上的執(zhí)行時(shí)間。

  2. 對(duì)于生產(chǎn)環(huán)境,為了高效地解決某一個(gè)特定范式的問(wèn)題往往會(huì)引入一個(gè)新系統(tǒng)(例如分布式圖計(jì)算),但這樣的系統(tǒng)往往難以直接與工作流中的其他系統(tǒng)無(wú)縫銜接,需要很多重復(fù)的 IO、數(shù)據(jù)格式轉(zhuǎn)換和適配的研發(fā)工作。

  3. 使用外部文件系統(tǒng)共享數(shù)據(jù)給工作流帶來(lái)了額外的中斷,因?yàn)橥挥挟?dāng)一個(gè)任務(wù)完全寫(xiě)完所有結(jié)果,下一個(gè)任務(wù)才能開(kāi)始讀取和計(jì)算,這使得跨任務(wù)的流水線(xiàn)并行無(wú)法被應(yīng)用。

  4. 現(xiàn)有的分布式文件系統(tǒng)在共享中間數(shù)據(jù)時(shí),特別是在云原生環(huán)境下,并沒(méi)有很好的處理分布式數(shù)據(jù)的位置問(wèn)題,造成網(wǎng)絡(luò)開(kāi)銷(xiāo)的浪費(fèi),從而降低端到端執(zhí)行效率。

為了解決現(xiàn)有大數(shù)據(jù)分析工作流中存在的上述問(wèn)題,我們?cè)O(shè)計(jì)和實(shí)現(xiàn)了分布式內(nèi)存數(shù)據(jù)共享引擎 Vineyard。

怎么理解Vineyard加入CNCF Sandbox

Vineyard 從以下三個(gè)角度來(lái)應(yīng)對(duì)上述幾個(gè)問(wèn)題:

  1. 為了使端到端工作流中任務(wù)之間的數(shù)據(jù)共享更加高效,Vineyard 通過(guò)內(nèi)存映射的方式,支持系統(tǒng)間零拷貝的數(shù)據(jù)共享,省去了額外的 IO 開(kāi)銷(xiāo)。

  2. 為了簡(jiǎn)化新計(jì)算引擎接入現(xiàn)有系統(tǒng)所需要的適配和開(kāi)發(fā),Vineyard 對(duì)常見(jiàn)的數(shù)據(jù)類(lèi)型,提供了開(kāi)箱即用的抽象,例如 Tensor、DataFrame、Graph,等等,從而不同計(jì)算引擎之間共享中間結(jié)果不再需要額外的序列化和反序列。同時(shí),Vineyard 將 IO、數(shù)據(jù)遷移、快照等可復(fù)用的組件以插件的形式實(shí)現(xiàn),使其能夠很靈活地按需注冊(cè)到計(jì)算引擎中去,降低與計(jì)算引擎本身無(wú)關(guān)的開(kāi)發(fā)成本。

  3. Vineyard 提供一系列 operators,來(lái)實(shí)現(xiàn)更高效靈活的數(shù)據(jù)共享。例如 Pipeline operator 實(shí)現(xiàn)了跨任務(wù)的流水線(xiàn)并行,使得后續(xù)任務(wù)可以隨著前序任務(wù)輸出的產(chǎn)生,同時(shí)進(jìn)行計(jì)算,提高了端到端整體效率。

  4. Vineyard 與 Kubernetes 集成,通過(guò) Scheduler Plugin,讓任務(wù)的調(diào)度能夠感知所需要的數(shù)據(jù)的局部性,在 Kubernetes 讓單個(gè)任務(wù)的 Pod 盡可能地調(diào)度到與 Pod 所需的輸入數(shù)據(jù)對(duì)其的機(jī)器上,來(lái)減小數(shù)據(jù)遷移需要的網(wǎng)絡(luò)開(kāi)銷(xiāo),提升端到端性能。

在初步的對(duì)比實(shí)驗(yàn)中,相比于使用 HDFS 來(lái)共享中間數(shù)據(jù),對(duì)于評(píng)測(cè)任務(wù),Vineyard 能夠大幅降低用于交換中間結(jié)果引入的額外開(kāi)銷(xiāo),對(duì)于整個(gè)工作流的端到端時(shí)間有 1.34 倍的提升。

核心功能

接下來(lái)從 Vineyard 核心的設(shè)計(jì)與實(shí)現(xiàn),以及 Vineyard 如何助力云原生環(huán)境中大數(shù)據(jù)分析任務(wù)兩個(gè)方面來(lái)介紹 Vineyard 的核心功能。

1. 分布式內(nèi)存數(shù)據(jù)共享

Vineyard 將內(nèi)存中的數(shù)據(jù)表示為 Object。Object 可以是 Local 的,也可以是 Global 的,以分布式執(zhí)行引擎 Mars 和 Dask 為例,一個(gè) DataFrame 往往被拆分成很多個(gè) Chunk 以利用多臺(tái)機(jī)器的計(jì)算能力,每臺(tái)機(jī)器上有多個(gè) Chunk,這些 Chunk 是 Vineyard 中的 LocalObject,這些 Chunk 一起構(gòu)成了一個(gè)全局的視圖,即 GlobalDataFrame。這個(gè) GlobalDataFrame 能夠直接共享給其他計(jì)算引擎,如 GraphScope,作為圖數(shù)據(jù)的輸入。有了這些數(shù)據(jù)類(lèi)型的抽象,Vineyard 上的不同計(jì)算引擎之間就可以無(wú)縫地共享中間結(jié)果,將一個(gè)任務(wù)的輸出直接用作下一個(gè)任務(wù)的輸出。  更具體地,Vineyard 中又是如果表達(dá)一個(gè)特定類(lèi)型的 Object,使之能夠很容易地適配到不同的計(jì)算引擎中去呢?這得益于 Vineyard 在 Object 的表示上提供的靈活性。Vineyard 中,一個(gè) Object 包括兩個(gè)部分,Metadata,以及一組 Blob。Blob 中存儲(chǔ)著實(shí)際的數(shù)據(jù),而 Metadata 則用于解釋這些 Blob 的語(yǔ)義。例如對(duì)于 Tensor,Blob 是一段連續(xù)內(nèi)存,存儲(chǔ)著 Tensor 中所有的元素,而 Metadata 中記錄了 Tensor 的類(lèi)型、形狀、以及行主序還是列主序等屬性。在 Python 中,這個(gè) Object 可以被解釋為一個(gè) Numpy 的 NDArray,而在 C++ 中,這個(gè) Object 可以被解釋為一個(gè) xtensor 中的 tensor。這兩種不同編程語(yǔ)言的 SDK 中,共享這個(gè) Tensor 不會(huì)帶來(lái)額外的 IO、拷貝、序列化/反序列化、以及類(lèi)型轉(zhuǎn)換的開(kāi)銷(xiāo)。  同時(shí),Vineyard 中的 Metadata 是可嵌套的,這使得我們通過(guò)很容易地將任何復(fù)雜的數(shù)據(jù)類(lèi)型描述為 Vineyard 中的 Object,不會(huì)限制計(jì)算引擎的表達(dá)能力。以 GlobalDataFrame 為例,見(jiàn)下圖中 Metadata 的結(jié)構(gòu)。  怎么理解Vineyard加入CNCF Sandbox

2. 云原生環(huán)境中數(shù)據(jù)與任務(wù)的協(xié)同調(diào)度

對(duì)于一個(gè)真實(shí)部署的大數(shù)據(jù)分析流水線(xiàn),僅僅有任務(wù)之間的數(shù)據(jù)共享是遠(yuǎn)遠(yuǎn)不夠的。在云環(huán)境中,一個(gè)端到端流水線(xiàn)中包含的多個(gè)子任務(wù)在被 Kubernetes 調(diào)度時(shí)僅僅考慮了需要的資源約束,連續(xù)的兩個(gè)任務(wù)的 co-locate 無(wú)法保證,在兩個(gè)任務(wù)之間共享中間結(jié)果時(shí)仍然有數(shù)據(jù)遷移引入的網(wǎng)絡(luò)開(kāi)銷(xiāo),如下圖,在運(yùn)行 Task B 時(shí),因?yàn)閮蓚€(gè)任務(wù)的 Pod 沒(méi)有對(duì)齊,數(shù)據(jù)分片 A3、A4 需要被遷移到 Pod 所在的 Vineyard 實(shí)例上。  怎么理解Vineyard加入CNCF Sandbox

對(duì)此,Vineyard 通過(guò) CRD 將集群中的數(shù)據(jù)(Vineyard Objects)表示為可觀測(cè)的資源,并基于 Kubernetes 的 Scheduler Framework 設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)考慮數(shù)據(jù)局部性的調(diào)度器插件。當(dāng)前一個(gè)任務(wù) Task A 完成后,從結(jié)果對(duì)象的 Metadata 中,調(diào)度器插件可以知道所有分片的位置,在啟動(dòng)下一個(gè)任務(wù)時(shí),調(diào)度器給數(shù)據(jù)所在的節(jié)點(diǎn)(圖中的 Node 1、Node 2)更高的優(yōu)先級(jí),使任務(wù) Task B 也盡可能地被調(diào)度到對(duì)應(yīng)的節(jié)點(diǎn)上,從而省去了數(shù)據(jù)遷移引入的額外開(kāi)銷(xiāo),來(lái)改善端到端的性能。

快速上手

Vineyard 集成了 Helm 以方便用戶(hù)安裝和部署:

helm repo add vineyard https://vineyard.oss-ap-southeast-1.aliyuncs.com/charts/
helm install vineyard vineyard/vineyard

安裝之后,系統(tǒng)中會(huì)部署一個(gè) Vineyard DaemonSet,并暴露一個(gè) UNIX domain socket 用于與應(yīng)用的任務(wù) Pod 之間的共享內(nèi)存和 IPC 通信。

“怎么理解Vineyard加入CNCF Sandbox”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


新聞名稱(chēng):怎么理解Vineyard加入CNCFSandbox
文章位置:http://www.dlmjj.cn/article/jhhijg.html