0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

YTsaurus:EB級(jí)存儲(chǔ)和處理系統(tǒng)現(xiàn)已開源

jf_WZTOguxH ? 來源:AI前線 ? 2023-06-14 14:46 ? 次閱讀

大家好,我叫 Maxim Babenko,是 Yandex 分布式計(jì)算技術(shù)部的負(fù)責(zé)人。今天,我們很高興地宣布,YTsaurus 平臺(tái)開源發(fā)布。YTsaurus 是 Yandex 開發(fā)的關(guān)鍵基礎(chǔ)設(shè)施類大數(shù)據(jù)系統(tǒng)之一,之前我們稱之為 YT。

YTsaurus 是我們近十年努力的成果,我們希望把它與全世界分享。在這篇文章中,我們將介紹 YT 的發(fā)展歷史、我們開發(fā)它的動(dòng)機(jī)、它的主要功能以及最適合的領(lǐng)域。

GitHub 存儲(chǔ)庫中包含 YTsaurus 的服務(wù)器代碼、使用 K8s 的部署基礎(chǔ)設(shè)施、系統(tǒng)的 Web 界面,以及 C++、Java、Go 和 Python 等流行編程語言的客戶端 SDK。所有內(nèi)容都遵循 Apache 2.0 許可,也就是說,任何人都可以下載并根據(jù)自己的需要修改它。

YT 是如何成為 Yandex 最重要的大數(shù)據(jù)系統(tǒng)的

72b67e6c-0a79-11ee-962d-dac502259ad0.png

故事要從 2006 年說起。那時(shí),Yandex 已經(jīng)是一家相當(dāng)大的公司。在哪里存儲(chǔ)以及如何處理公司的數(shù)據(jù)成了不小的難題。當(dāng)時(shí),我們的關(guān)注點(diǎn)是來自多個(gè)服務(wù)的日志。日志處理涉及各種分析,可以解決從改進(jìn)機(jī)器學(xué)習(xí)模型到分析用戶行為(在服務(wù)功能或界面變化時(shí))的各種任務(wù)。

可擴(kuò)展彈性數(shù)據(jù)存儲(chǔ)系統(tǒng)的理念已經(jīng)開始流行。它可以執(zhí)行并行計(jì)算,而且無需擔(dān)心數(shù)據(jù)的物理位置和集群物理組件的容錯(cuò)能力。

2004 年,來自谷歌的 Jeffrey Dean 和 Sanjay Ghemawat 發(fā)布了 MapReduce:簡(jiǎn)化大型集群上的數(shù)據(jù)處理。在很大程度上,它預(yù)測(cè)了分布式計(jì)算行業(yè)未來十年的發(fā)展。毫不奇怪,Yandex 開發(fā)了類似 MapReduce 模型的實(shí)現(xiàn),我們稱之為 YAMR,即 Yet Another MapReduce。

我們以破紀(jì)錄的速度從零開始構(gòu)建了 YAMR。無疑,這對(duì)公司內(nèi)部基礎(chǔ)設(shè)施的發(fā)展產(chǎn)生了巨大的影響。然而,隨著時(shí)間的推移,事情變得越來越明顯,YAMR 中許多最初的設(shè)計(jì)選擇使得系統(tǒng)無法有效地演進(jìn)和擴(kuò)展。例如,YAMR 主服務(wù)器是單一故障點(diǎn),無法擴(kuò)展。

72e24fba-0a79-11ee-962d-dac502259ad0.png

乍一看,自己構(gòu)建基礎(chǔ)設(shè)施的決定似乎是 NIH 綜合癥的一個(gè)典型案例,我們甚至沒有考慮過使用像 Apache Hadoop 這樣的開箱即用的解決方案。但也不完全是這樣。2015 年 9 月,Yandex 的一隊(duì)工程師前往加州,與一些在生產(chǎn)環(huán)境中使用 Hadoop 技術(shù)棧的人會(huì)面,詢問他們關(guān)于限制因素、操作特性以及 Hadoop 將如何發(fā)展的問題。

但那時(shí),Hadoop 技術(shù)棧已明顯落后于 YAMR,我們已經(jīng)支持糾刪碼(erasure coding)和 IPv6 連接。問題還不止這些。

經(jīng)過全方位的分析之后,我們決定放棄使用 Hadoop 的想法。與此同時(shí),我們必須在 YAMR 的漸進(jìn)式開發(fā)和革命性重寫之間做出選擇,最終,我們選擇了后者。在這之前的五年時(shí)間里,我有幸成為一小群狂熱愛好者中的一員,開始了一個(gè)代號(hào)為 YT 的項(xiàng)目。只需適當(dāng)?shù)母倪M(jìn),YT 就完全有可能取代 YAMR。

重要的是要明白,替代 YAMR 并不簡(jiǎn)單。在高峰期,該系統(tǒng)管理的集群總計(jì)有數(shù)千個(gè)節(jié)點(diǎn),有大量應(yīng)用程序的代碼是基于 YAMR API 的。因此,改進(jìn) YT 和從 YAMR 遷移花費(fèi)了我們?cè)S多年的時(shí)間。這個(gè)故事本身有許多很有趣的細(xì)節(jié),或許值得單獨(dú)寫一篇文章。

72ec998e-0a79-11ee-962d-dac502259ad0.png

自 2017 年以來,Yandex 就只有一個(gè) MapReduce 系統(tǒng),在規(guī)模和功能方面的開發(fā)一直持續(xù)到今天。如今,我們公司運(yùn)營(yíng)著數(shù)個(gè) YT 集群,規(guī)模從幾臺(tái)機(jī)器到幾萬臺(tái)服務(wù)器不等。最大的安裝存儲(chǔ)著艾字節(jié)的數(shù)據(jù),使用了幾百萬核 CPU 內(nèi)核和幾千個(gè) GPU 卡,夜以繼日地進(jìn)行著計(jì)算。

7320f79c-0a79-11ee-962d-dac502259ad0.png

YTsaurus:名字起源

“YT 會(huì)開源嗎?”,我們花了將近 7 年的時(shí)間來回答這個(gè)問題。我們的答案是:YT 不會(huì)開源,但 YTsaurus 會(huì)!

我們最初開發(fā)的系統(tǒng)叫“YT”。代碼庫的許多部分中都有這個(gè)縮寫。Yandex 內(nèi)部流傳著一個(gè)說法,“YT”這個(gè)縮寫代表了“Yandex Table”,可能是受到谷歌著名的 Big Table 系統(tǒng)的啟發(fā),但我們并沒有找到任何可靠的證據(jù)可以支持這個(gè)推測(cè)。

當(dāng)決定以開源的方式發(fā)布這個(gè)系統(tǒng)時(shí),我們發(fā)現(xiàn)很難保留原來的名稱。其中一個(gè)原因是,這個(gè)兩個(gè)字母的組合通常與某個(gè)流行的視頻托管平臺(tái)有關(guān)。

最終,我們選定了“YTsaurus”這個(gè)名字。它有著同樣可愛而熟悉的“YT”前綴,我們團(tuán)隊(duì)一直把這個(gè)項(xiàng)目看成一個(gè)有生命的東西?,F(xiàn)在,我們終于知道它是什么種族了!

在我們的代碼庫和文章中,我們經(jīng)常將“YTsaurus”縮寫為“YT”。我們自己也還在適應(yīng)全名的過程中。

系統(tǒng)功能

我們?cè)O(shè)計(jì)的系統(tǒng)既靈活又可擴(kuò)展。目前,它的功能并不局限于經(jīng)典的 MapReduce 技術(shù)。在本節(jié)中,我將描述 YTsaurus 開源版本提供的主要技術(shù)能力,從底層存儲(chǔ)到高級(jí)計(jì)算原語。

735669ae-0a79-11ee-962d-dac502259ad0.png

Cypress:可靠高效的數(shù)據(jù)存儲(chǔ)

任何大數(shù)據(jù)系統(tǒng)的核心都是各種日志、統(tǒng)計(jì)數(shù)據(jù)、索引以及其他結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)。YTsaurus 以 Cypress 為基礎(chǔ)構(gòu)建。Cypress 是一種基于樹的具有容錯(cuò)能力的存儲(chǔ),其功能可以簡(jiǎn)單描述如下:

以目錄、表(結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù))和文件(非結(jié)構(gòu)化數(shù)據(jù))為節(jié)點(diǎn)的樹狀命名空間

透明地將大型表格式數(shù)據(jù)分片為塊,我們可以將表視為單個(gè)實(shí)體,而無需過多考慮物理存儲(chǔ)的細(xì)節(jié)

支持表格式數(shù)據(jù)基于行和列的存儲(chǔ)機(jī)制

支持使用不同壓縮級(jí)別的各種編解碼器(如 lz4 和 zstd)壓縮存儲(chǔ)

支持使用具有不同控制和計(jì)算策略的各種糾刪編解碼器進(jìn)行糾刪編碼,而這些策略具有不同的冗余參數(shù)和允許的損失類型

支持層次類型和數(shù)據(jù)排序標(biāo)志的表達(dá)性數(shù)據(jù)圖式化

后臺(tái)復(fù)制和修復(fù)被刪除的數(shù)據(jù),無需人工干預(yù)

事務(wù)語義支持嵌套事務(wù)和快照 / 共享 / 排他級(jí)鎖

事務(wù)可以影響許多 Cypress 對(duì)象并無限期持續(xù)

靈活的配額核算系統(tǒng)

Cypress 的核心是一個(gè)可復(fù)制且可橫向擴(kuò)展的主服務(wù)器,存儲(chǔ)著關(guān)于 Cypress 樹狀結(jié)構(gòu)的元數(shù)據(jù),以及集群中所有表的塊副本的組成和位置。主服務(wù)器以 Hydra 為基礎(chǔ)實(shí)現(xiàn)為一個(gè)可復(fù)制狀態(tài)機(jī)。Hydra 是一種類似 Raft 的專有共識(shí)算法。

Cypress 實(shí)現(xiàn)了一個(gè)具有容錯(cuò)能力的彈性數(shù)據(jù)層。下面將要介紹系統(tǒng)幾乎所有方面都用到了這一層。

MapReduce 計(jì)算和通用調(diào)度器

盡管在人們的眼中,MapReduce 已不再是什么新技術(shù),也沒什么與眾不同之處,但它在我們系統(tǒng)中的實(shí)現(xiàn)還是很值得關(guān)注的。我們?nèi)匀挥盟M(jìn)行需要高吞吐量的 PB 級(jí)數(shù)據(jù)計(jì)算。

YTsaurus 中的 MapReduce 具有以下特點(diǎn):

豐富的基本操作模型:經(jīng)典的 MapReduce(具有不同的 Shuffle 策略并支持多階段分區(qū))、Map、Erase、Sort,以及一些考慮了輸入數(shù)據(jù)“排序”的經(jīng)典模型擴(kuò)展。

計(jì)算可橫向擴(kuò)展:操作被劃分成作業(yè),在獨(dú)立的服務(wù)器上運(yùn)行。

單個(gè)操作可支持?jǐn)?shù)十萬個(gè)作業(yè)。

靈活的分層計(jì)算池模型可以提供即時(shí)和完整性保證,并可以在消費(fèi)者之間公平地分配未充分利用的資源(無保證)。

向量資源模型支持按不同的比例申請(qǐng)不同的計(jì)算資源(CPU、RAM、GPU)。

使用 Porto 容器化機(jī)制按 CPU、RAM、文件系統(tǒng)和進(jìn)程名稱空間隔離在計(jì)算節(jié)點(diǎn)容器中執(zhí)行的作業(yè)。

可擴(kuò)展的調(diào)度程序可以為集群提供多達(dá)一百萬個(gè)并發(fā)任務(wù)。

在進(jìn)行更新或調(diào)度器節(jié)點(diǎn)出現(xiàn)故障時(shí),幾乎所有的計(jì)算進(jìn)度都會(huì)保留。

YT 不僅支持執(zhí)行 MapReduce 操作,還支持在集群上部署用戶提供的任何代碼。

對(duì)于副作用不明確的代碼,YT 使用“普通(vanilla)”操作來運(yùn)行。平臺(tái)的許多其他組件也都用到了這個(gè)功能,下文會(huì)進(jìn)行討論。

動(dòng)態(tài) K-V 存儲(chǔ)表

實(shí)際上,MapReduce 范式不適合構(gòu)建響應(yīng)時(shí)間低于秒級(jí)的交互式計(jì)算管道。問題不僅在于如何處理數(shù)據(jù),還在于如何存儲(chǔ)數(shù)據(jù)。

YT 的靜態(tài)表就像 HDFS 中的一組文件,可以作為 MapReduce 計(jì)算的輸入和輸出。但是,它們不能用在交互式場(chǎng)景中,因?yàn)樗鼈兪桥c速度緩慢的持久存儲(chǔ)介質(zhì)綁定的。通常,對(duì)于交互式場(chǎng)景,應(yīng)用程序會(huì)使用鍵值存儲(chǔ)。鍵值存儲(chǔ)可以橫向擴(kuò)展,并能提供低延遲的讀寫訪問。

幸運(yùn)的是,2014 年,我們開始在 YT 框架內(nèi)開發(fā)動(dòng)態(tài)表。它們部分基于 Apache HBase 模型,可以橫向擴(kuò)展,并使用分布式文件系統(tǒng)作為底層存儲(chǔ)。不過,不同于 Apache HBase,動(dòng)態(tài)表被有機(jī)地整合到了整個(gè)生態(tài)系統(tǒng)中:它們相當(dāng)于 Cypress 的節(jié)點(diǎn),可以用于許多需要靜態(tài)表的場(chǎng)景。

例如,在 YT 中,你可以創(chuàng)建一個(gè)動(dòng)態(tài)表作為 MapReduce 操作的結(jié)果,并將其用于基于鍵的快速搜索和插入。同時(shí),你可以創(chuàng)建一個(gè)后臺(tái) MapReduce 進(jìn)程,處理來自動(dòng)態(tài)表的數(shù)據(jù)樣本,并計(jì)算關(guān)于它的一些統(tǒng)計(jì)信息

使用 MVCC 模型存儲(chǔ)數(shù)據(jù)。用戶可以通過鍵或時(shí)間戳查找值。

可擴(kuò)展性:動(dòng)態(tài)表會(huì)被劃分成片(按鍵的范圍劃分),由單獨(dú)的服務(wù)器提供服務(wù)。

事務(wù)性:動(dòng)態(tài)表是 OLTP 存儲(chǔ),可以修改不同表不同分片中的多個(gè)行。

容錯(cuò)能力:提供分片服務(wù)的節(jié)點(diǎn)如果出現(xiàn)單點(diǎn)故障,那么分片會(huì)被移到另一個(gè)節(jié)點(diǎn)而不丟失數(shù)據(jù)。

隔離性:為了實(shí)現(xiàn)負(fù)載隔離,提供分片服務(wù)的節(jié)點(diǎn)會(huì)被分組成包,駐留在不同的機(jī)器上。

在單個(gè)鍵甚至單個(gè)值的層面上進(jìn)行沖突檢查。

熱數(shù)據(jù)響應(yīng)來自內(nèi)存。

內(nèi)置了類似 SQL 的語言,用于查詢掃描和分析。

除了具有 K-V 存儲(chǔ)接口的動(dòng)態(tài)表外,系統(tǒng)還支持實(shí)現(xiàn)了消息隊(duì)列抽象的動(dòng)態(tài)表,即主題和流。你也可以把這些隊(duì)列看成是表,因?yàn)樗鼈冇尚薪M成,并且有自己的模式。在事務(wù)中,你可以同時(shí)修改 K-V 動(dòng)態(tài)表和隊(duì)列中的行。這樣一來,你就可以基于 YT 的動(dòng)態(tài)表構(gòu)建具有 Exactly Once 語義的流處理。

YQL

YQL 是一種基于 SQL 的查詢語言;它是 YT 之上構(gòu)建的第一個(gè)高級(jí)原語。YQL 之于 YT 相當(dāng)于 Hive 之于 Hadoop。這種技術(shù)讓用戶可以用 SQL 編寫簡(jiǎn)單的查詢,而不是自己編寫代碼構(gòu)建一系列 MapReduce 操作。下面是一個(gè)例子:

SELECT region, AVG(age) AS avg_age_in_region, COUNT(DISTINCT ip) AS ips_count FROM `//home/production/users` GROUP BY region ORDER BY avg_age_in_region;

如今,許多大數(shù)據(jù)任務(wù)都可以表述為簡(jiǎn)單的 SQL 查詢。沒有 YQL,我們的生態(tài)系統(tǒng)就是不完整的。它是用于在大型數(shù)據(jù)集上進(jìn)行即時(shí)分析和常規(guī)生產(chǎn)計(jì)算的最流行的工具之一。

YQL 有以下好處:

強(qiáng)大的圖執(zhí)行引擎,可以構(gòu)建具有數(shù)百個(gè)節(jié)點(diǎn)的 MapReduce 管道,并可以在計(jì)算過程中進(jìn)行調(diào)整。

通過將子查詢存儲(chǔ)在變量中,就可以使用 SQL 將復(fù)雜的數(shù)據(jù)處理管道構(gòu)建成依賴查詢和事務(wù)鏈。

任意復(fù)雜度的查詢,其并行執(zhí)行都是可預(yù)測(cè)的。

高效地實(shí)現(xiàn)連接、子查詢和窗口函數(shù),而且對(duì)它們的拓?fù)浠蚯短讻]什么限制。

大量的函數(shù)庫。

支持 C++、Python 和 JavaScript 自定義函數(shù)。

支持通過 CatBoost 和 TensorFlow 使用機(jī)器學(xué)習(xí)模型。

在準(zhǔn)備好的計(jì)算實(shí)例上自動(dòng)執(zhí)行一小部分查詢,繞過 MapReduce 以減少延遲。

CHYT

不用說,大多數(shù)讀者朋友們都聽說過 ClickHouse。2016 年,這個(gè) DBMS 成為 Yandex 開源技術(shù)的先驅(qū),并于 2021 年成為一家獨(dú)立的公司 ClickHouse Inc.。

如今,ClickHouse 是最受歡迎的分析型數(shù)據(jù)庫之一,它基于列的執(zhí)行引擎非常高效,并集成了各種 BI 系統(tǒng)。ClickHouse 其中一個(gè)很好的特性是源代碼中存儲(chǔ)和計(jì)算部分實(shí)現(xiàn)了良好的隔離,這使得我們?cè)?2018 年構(gòu)建出了 CHYT——ClickHouse 計(jì)算引擎將 YTsaurus 作為存儲(chǔ)集成。

在 YTsaurus 生態(tài)系統(tǒng)中,CHYT 提供了以下功能:

在 YT 中對(duì)靜態(tài)表進(jìn)行快速分析查詢,延遲只有亞秒級(jí)。

重用 YTsaurus 集群中已有的數(shù)據(jù),而無需將其復(fù)制到單獨(dú)的 ClickHouse 集群。

能夠通過 ClickHouse 的原生 ODBC 和 JDBC 驅(qū)動(dòng)程序集成第三方可視化系統(tǒng)。

我注意到,集成是在相當(dāng)?shù)偷膶哟紊贤瓿傻?。這讓我們可以充分挖掘 YTsaurus 和 ClickHouse 的潛力,即:

支持讀取靜態(tài)和動(dòng)態(tài)表。

部分支持 YTsaurus 事務(wù)模型。

支持分布式插入。

將 YTsaurus 內(nèi)部格式的列式數(shù)據(jù) CPU 高效地轉(zhuǎn)換為內(nèi)存中的 ClickHouse 表示。

主動(dòng)數(shù)據(jù)緩存,在某些情況下,允許完全從實(shí)例內(nèi)存中讀取查詢執(zhí)行數(shù)據(jù)。

ClickHouse 服務(wù)器代碼會(huì)在上述普通操作發(fā)生時(shí)運(yùn)行,使用的計(jì)算資源與 MapReduce 計(jì)算相同。從這個(gè)意義上講,YTsaurus 集群于我們內(nèi)部的 CHYT 集群而言是一朵計(jì)算云。

這使得不同的用戶或用戶團(tuán)隊(duì)可以在單個(gè) YT 集群上運(yùn)行多個(gè) CHYT 集群,彼此完全隔離,用和云類似的方式解決資源隔離問題。

SPYT

2019 年,Yandex 推出了 SPYT,這個(gè)系統(tǒng)將 Apache Spark 作為 YT 數(shù)據(jù)的計(jì)算引擎集成。與 CHYT 類似,普通 YTsaurus 操作為 Spark 集群提供計(jì)算資源。Apache Spark 的設(shè)計(jì)初衷就是為了方便連接第三方存儲(chǔ)并將其作為數(shù)據(jù)源。

SPYT 在 YTsaurus 的生態(tài)系統(tǒng)中也是根深蒂固。得益于與第三方系統(tǒng)豐富的集成能力,它成了編寫 ETL 工作流的主要方法之一。在底層,Spark 使用了一個(gè)靈活的分布式計(jì)算優(yōu)化器,可以最大化中間數(shù)據(jù)的內(nèi)存存儲(chǔ),并可以實(shí)現(xiàn)具有多個(gè)連接的計(jì)算管道。

各種 SDK

對(duì)于用特定語言編寫的系統(tǒng),SDK 通常是自動(dòng)生成的或由用戶社區(qū)的某個(gè)人編寫的(長(zhǎng)時(shí)間得不到維護(hù))。但我們用當(dāng)下流行的語言(C++、Python、Java、Go)開發(fā)了所有的 API。對(duì)于每一種 SDK,我們都仔細(xì)考慮了它與系統(tǒng)交互時(shí)的所有細(xì)微的不同之處。

因?yàn)榭赡艽嬖?a href="http://www.ttokpm.com/v/tag/1722/" target="_blank">網(wǎng)絡(luò)故障和其他錯(cuò)誤,所以我們用不同語言編寫的客戶端庫都可以重試請(qǐng)求,包括讀寫大量數(shù)據(jù)。在創(chuàng)建每一種庫時(shí),我們都考慮了這門語言的特性,并盡可能使用這些特性來簡(jiǎn)化它與系統(tǒng)的交互。

Web 界面

對(duì)于一個(gè)有成千上萬的用戶使用的系統(tǒng),必須要有一個(gè)用戶友好的 Web 界面。而且,我們有意沒有為用戶和管理員創(chuàng)建單獨(dú)的 Web 界面,這幫助我們避免了愛好者們匆忙創(chuàng)建 Web 管理界面的情況,那很常見:畢竟用戶側(cè)更重要,在管理員面前就沒什么可尷尬的了。

7361e13a-0a79-11ee-962d-dac502259ad0.png

你可以通過 YTsaurus Web 界面完成以下工作:

通過 Cypress 瀏覽文件、表和其他對(duì)象。

創(chuàng)建、重命名或刪除 Cypress 對(duì)象,并修改它們的屬性。

執(zhí)行和查看 MapReduce 計(jì)算。

跨所有引擎執(zhí)行和查看 SQL 查詢歷史——YQL、CHYT、動(dòng)態(tài)表 SQL。

管理系統(tǒng):監(jiān)控集群組件的運(yùn)行狀況,創(chuàng)建、刪除或禁用用戶,管理訪問權(quán)限和配額,查看集群組件版本等。

技術(shù)層面看 YTsaurus

服務(wù)器端代碼大部分都是用 C++ 編寫的。我們喜歡這種語言,因?yàn)樗墓δ芎茇S富,用它編寫的代碼很高效。在開源發(fā)布 YTsaurus 之后,我們希望把大量的開發(fā)成果分享出來,或許你可以把它們作為單獨(dú)的 C++ 原語來使用。

服務(wù)器端代碼是使用 Clang 編譯器和 CMake 構(gòu)建系統(tǒng)構(gòu)建的。

系統(tǒng)的個(gè)別部分是用 Go、Python 和 Java 編寫的。還有一個(gè) API,讓你可以使用上述 4 種編程語言開發(fā)與 YTsaurus 交互的應(yīng)用程序。

代碼庫會(huì)自動(dòng)與內(nèi)部存儲(chǔ)庫同步。因此,外部總是可以獲得 YTsaurus 的最新版本。

YTsaurus 在 x86-64 Linux 服務(wù)器上運(yùn)行。

部署和管理

在 Yandex,我們安裝了超過 20 套 YTsaurus。它們的規(guī)模和配置差異很大,從單集群 5 臺(tái)主機(jī)到 20K+ 不等。YTsaurus 還集成了幾個(gè)內(nèi)部 Yandex 系統(tǒng),包括身份驗(yàn)證、訪問控制、審計(jì)、監(jiān)控、硬件管理和容器編排。所有這些系統(tǒng)最大限度地減少了管理集群的工作量。

為了方便用戶,我們投資開發(fā)了二級(jí)操作符,用于在 Kubernetes 中自動(dòng)部署 YTsaurus 集群,并支持標(biāo)準(zhǔn)的升級(jí)機(jī)制,可以在停機(jī)狀態(tài)下升級(jí)到新版本。該操作符讓你可以在幾分鐘內(nèi)把 YTsaurus 集群部署到 Minikube、公有云或本地 Kubernetes 上。

通過修改元數(shù)據(jù)樹(Cypress)中的系統(tǒng)節(jié)點(diǎn),可以動(dòng)態(tài)地管理集群配置。使用基本的 Cypress 命令(如 list、get、set 和 remove),你可以創(chuàng)建帳戶、添加用戶或計(jì)算池、授予目錄訪問權(quán)限或退役集群節(jié)點(diǎn)。

特別值得注意的是動(dòng)態(tài)配置各個(gè)組件的能力:通過修改特定屬性,你可以調(diào)整緩存大小、心跳周期或節(jié)點(diǎn)上的日志記錄設(shè)置。

YTsaurus 是一個(gè)計(jì)算平臺(tái),因此,用戶代碼的執(zhí)行是隱式的。為了運(yùn)行和隔離不受信任的代碼,YTsaurus 使用了 Yandex 開發(fā)的容器化系統(tǒng) Porto。為了在多租戶集群中實(shí)現(xiàn)完全的用戶隔離,建議將 Porto 安裝為 Kubernetes CRI。這可以充分釋放 YTsaurus 作業(yè)隔離和在不同操作中使用自定義環(huán)境的能力。

當(dāng)然,如果沒有可觀測(cè)性工具——日志記錄、定量監(jiān)測(cè)和跟蹤,運(yùn)營(yíng)大型分布式系統(tǒng)是不可能的。YTsaurus 會(huì)生成結(jié)構(gòu)化日志,用于審計(jì)和監(jiān)控用戶操作,并且提供了詳細(xì)的調(diào)試日志,用于更深層次的問題診斷。此外,該系統(tǒng)支持 Prometheus 格式的指標(biāo)導(dǎo)出,并通過 Jaeger gRPC 協(xié)議進(jìn)行鏈路追蹤。

基于 YTsaurus 可以構(gòu)建什么?

讓我們通過幾個(gè)例子看一下 Yandex 是如何使用這個(gè)系統(tǒng)的。

YTsaurus 最具啟發(fā)性、最典型的用例之一是創(chuàng)建 DWH。例如,來自 Yandex Taxi、Yandex Eats、Yandex Deli 和 Yandex Delivery 的訂單以原始格式以最小的延遲接收到 YTsaurus 動(dòng)態(tài)表中。每月的數(shù)據(jù)量可達(dá)數(shù)百 TB。

然后,我們用各種工具處理訂單,例如,大多數(shù)分析型數(shù)據(jù)集市是通過 YQL 和 SPYT 進(jìn)行準(zhǔn)備的。數(shù)據(jù)總量超過 6PB。CHYT 用于即時(shí)分析,各種可視化則在 Yandex DataLens 中創(chuàng)建。Yandex 的其他服務(wù)中也存在類似的用例,如 Yandex Market、Yandex Music 和 Yandex Travel。

還有一些非常具體的用例。例如,Yandex 所有的三臺(tái)超級(jí)計(jì)算機(jī)都由 YTsaurus 調(diào)度程序管理。許多具有不同類型 GPU 的節(jié)點(diǎn)連接到 YT,并分布在不同的池樹中。這使得用戶可以顯式指定所需的 GPU 模型,并使用存儲(chǔ)在 YTsaurus 中的數(shù)據(jù)。

目前,YTsaurus 動(dòng)態(tài)表存儲(chǔ)的數(shù)據(jù)達(dá) PB 級(jí),大量的交互服務(wù)都以它們?yōu)榛A(chǔ)構(gòu)建。Yandex 廣告團(tuán)隊(duì)是最大的內(nèi)部客戶之一。在 HighLoad++ 2022 大會(huì)上,我的同事們探討了他們?cè)?YTsaurus 上構(gòu)建交互式流處理的方法。

結(jié)語

YTsaurus 是一個(gè)有著豐富歷史的大工程。如果你感興趣,就請(qǐng)看一看 YTsaurus,找一些對(duì)自己有用的東西。也許你會(huì)喜歡我們?cè)诖a中實(shí)現(xiàn)的技術(shù)解決方案,或者找個(gè)機(jī)會(huì)部署 YTsaurus 并實(shí)際地試用一下。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3126

    瀏覽量

    42070
  • 處理系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    16633
  • 分布式計(jì)算
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    4450

原文標(biāo)題:YTsaurus:EB 級(jí)存儲(chǔ)和處理系統(tǒng)現(xiàn)已開源

文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國(guó)產(chǎn)FRAM SF25C20用于實(shí)時(shí)處理系統(tǒng),兼容MB85RS2MT

    國(guó)產(chǎn)FRAM SF25C20用于實(shí)時(shí)處理系統(tǒng),兼容MB85RS2MT
    的頭像 發(fā)表于 07-31 10:06 ?191次閱讀
    國(guó)產(chǎn)FRAM SF25C20用于實(shí)時(shí)<b class='flag-5'>處理系統(tǒng)</b>,兼容MB85RS2MT

    信號(hào)采集與處理系統(tǒng)通常由哪些模塊組成

    信號(hào)采集與處理系統(tǒng)是一種廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域的電子系統(tǒng),它能夠?qū)Ω鞣N類型的信號(hào)進(jìn)行采集、處理和分析。一個(gè)完整的信號(hào)采集與處理系統(tǒng)通常由以下幾個(gè)模塊組成: 信號(hào)源模塊 信號(hào)源
    的頭像 發(fā)表于 07-15 14:12 ?355次閱讀

    基于MATLAB的信號(hào)處理系統(tǒng)與分析

    基于MATLAB的信號(hào)處理系統(tǒng)與分析,包括信號(hào)的導(dǎo)入、預(yù)處理、分析、特征提取以及頻譜分析等關(guān)鍵步驟,并通過實(shí)例展示MATLAB在信號(hào)處理與分析中的強(qiáng)大功能。
    的頭像 發(fā)表于 05-17 14:24 ?675次閱讀

    兆芯攜手智云創(chuàng)新推出高性能NVMe企業(yè)級(jí)存儲(chǔ)系統(tǒng)

    面向持續(xù)增長(zhǎng)的數(shù)字化轉(zhuǎn)型與應(yīng)用創(chuàng)新發(fā)展需求,兆芯攜手智云創(chuàng)新,基于兆芯高性能自主處理器平臺(tái)成功推出多款信創(chuàng)存儲(chǔ)產(chǎn)品,包括高性能NVMe企業(yè)級(jí)存儲(chǔ)系統(tǒng)、HS6000系列企業(yè)
    的頭像 發(fā)表于 04-12 14:06 ?412次閱讀

    數(shù)字圖像處理系統(tǒng)及應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《數(shù)字圖像處理系統(tǒng)及應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 02-23 14:49 ?0次下載

    晶振在視覺處理系統(tǒng)中的運(yùn)作及作用

    在現(xiàn)代視覺處理系統(tǒng)中,晶振(晶體振蕩器)發(fā)揮著關(guān)鍵作用,通過提供精確、穩(wěn)定的時(shí)鐘信號(hào),協(xié)調(diào)各個(gè)組件的操作,確保系統(tǒng)的正常運(yùn)行。
    的頭像 發(fā)表于 01-11 15:00 ?267次閱讀
    晶振在視覺<b class='flag-5'>處理系統(tǒng)</b>中的運(yùn)作及作用

    集成化信息化信號(hào)采集處理系統(tǒng)有哪些

    隨著科技的飛速發(fā)展,集成化信息化信號(hào)采集處理系統(tǒng)在各個(gè)領(lǐng)域的應(yīng)用越來越廣泛。這種系統(tǒng)能夠?qū)崿F(xiàn)對(duì)各種信號(hào)的實(shí)時(shí)采集、處理和分析,為決策者提供準(zhǔn)確、及時(shí)的信息,從而推動(dòng)各行業(yè)的快速發(fā)展。本文將對(duì)集成化
    的頭像 發(fā)表于 12-14 11:19 ?775次閱讀

    基于SOPC技術(shù)實(shí)現(xiàn)的語音處理系統(tǒng)的設(shè)計(jì)方法

    電子發(fā)燒友網(wǎng)站提供《基于SOPC技術(shù)實(shí)現(xiàn)的語音處理系統(tǒng)的設(shè)計(jì)方法.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 14:34 ?0次下載
    基于SOPC技術(shù)實(shí)現(xiàn)的語音<b class='flag-5'>處理系統(tǒng)</b>的設(shè)計(jì)方法

    基于MATLAB GUI的水汽自動(dòng)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于MATLAB GUI的水汽自動(dòng)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-24 10:47 ?0次下載
    基于MATLAB GUI的水汽自動(dòng)<b class='flag-5'>處理系統(tǒng)</b>的設(shè)計(jì)與實(shí)現(xiàn)

    基于高壓脈沖電場(chǎng)技術(shù)的污水處理系統(tǒng)研究設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于高壓脈沖電場(chǎng)技術(shù)的污水處理系統(tǒng)研究設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-20 11:43 ?0次下載
    基于高壓脈沖電場(chǎng)技術(shù)的污水<b class='flag-5'>處理系統(tǒng)</b>研究設(shè)計(jì)

    基于8片TMS320C6416的衛(wèi)星圖像目標(biāo)提取高速處理系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于8片TMS320C6416的衛(wèi)星圖像目標(biāo)提取高速處理系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 10-19 14:35 ?1次下載
    基于8片TMS320C6416的衛(wèi)星圖像目標(biāo)提取高速<b class='flag-5'>處理系統(tǒng)</b>

    基于ARM的嵌入式圖像處理系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ARM的嵌入式圖像處理系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:29 ?7次下載
    基于ARM的嵌入式圖像<b class='flag-5'>處理系統(tǒng)</b>設(shè)計(jì)

    基于ARM嵌入式圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于ARM嵌入式圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 10:16 ?0次下載
    基于ARM嵌入式圖像<b class='flag-5'>處理系統(tǒng)</b>設(shè)計(jì)與實(shí)現(xiàn)

    一種心電信號(hào)處理系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《一種心電信號(hào)處理系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-11 09:16 ?2次下載
    一種心電信號(hào)<b class='flag-5'>處理系統(tǒng)</b>設(shè)計(jì)

    基于PC104的實(shí)時(shí)信號(hào)采集處理系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于PC104的實(shí)時(shí)信號(hào)采集處理系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-10 09:37 ?1次下載
    基于PC104的實(shí)時(shí)信號(hào)采集<b class='flag-5'>處理系統(tǒng)</b>設(shè)計(jì)