中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

實時流處理新選擇:LinkedIn 重磅發(fā)布 Samza 1.0

2018-12-04    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

近日,LinkedIn 正式發(fā)布了開源流式計算框架 Samza 的 1.0 版本。實時攝取和處理大量數(shù)據(jù)的能力對于越來越多的企業(yè)來說是一件非常有趣的事情。這是一個快速增長的領(lǐng)域,因為這些應用場景可以直接轉(zhuǎn)化為商業(yè)利益。我們已經(jīng)關(guān)注這個領(lǐng)域很長時間了,Apache Samza 1.0 的發(fā)布是一個重新審視它的機會,我們拭目以待它將給這個領(lǐng)域帶來哪些改變。

生于 LinkedIn

Apache Samza 于 2013 年在 LinkedIn 誕生,并于 2014 年成為 Apache 的頂級項目,F(xiàn)在,LinkedIn 有 3000 多個應用程序在使用它,用它來進行異常檢測、欺詐檢測、監(jiān)控性能、通知、實時分析,等等。

如果你對這個領(lǐng)域有一定了解的話,那么你該知道,Apache Kafka 是另一個主要的實時數(shù)據(jù)處理框架,它最初也是由 LinkedIn 開發(fā)的。Kafka 成為 LinkedIn 跟蹤數(shù)據(jù)的標準傳輸機制,并且每天都會向 Kafka 生成大量數(shù)據(jù),應用程序從 Kafka 中獲取洞見。

這些應用程序在消費 Kafka 的消息時需要處理一些常見的問題,例如檢查點、本地狀態(tài)管理、處理故障、伸縮處理,等等。Apache Samza 就是為解決流式處理中的這些問題而構(gòu)建的。但問題是,這在過去可能是有意義的,但在今天還是這樣的嗎?

這聽起來是一個奇怪的問題。畢竟,數(shù)據(jù)仍然在源源不斷地流入,而且還在不斷增加。不同之處在于,還有很多其他框架被構(gòu)建用于滿足完全相同的需求:Apex、Flink、Spark 和 Storm(這些還只是 Apache 的開源項目,當然還有其他一些專有的解決方案)。

 

 

LinkedIn Samza 團隊負責人 Samarth Shetty 表示,當他們開始接觸流式處理時,已有的流式處理框架很少能夠幫助他們應對 LinkedIn 的規(guī);蚣夹g(shù)問題。因此,他們認為最好的辦法是開發(fā)自己的框架:

“我們必須在 Samza 中加入增量快照和主機粘性(Host Affinity)等功能。當時的 Apache Flink 等框架還沒有提供這些功能。Kafka Streams 非常適合用于處理 Kafka 中的事件,但在 LinkedIn,我們需要處理來自不同系統(tǒng)的事件,例如 Azure EventHubs、AWS Kinesis 等。

Samza 提供了輕松連接到不同系統(tǒng)的能力。流式處理是 LinkedIn 的一個非常重要的應用場景,因此,我們致力于構(gòu)建一個最好的框架。隨著時間的推移,我們相信我們已經(jīng)開發(fā)出了最先進的流式處理框架之一,最適合用來滿足 LinkedIn 規(guī)模的處理需求。”

在某種程度上,這有點類似于機器學習領(lǐng)域的框架格局:有很多可用的框架,該如何選擇?當然,有選擇并不是件壞事,但“很多”和“太多”之間存在著一個界限。Facebook PyTorch 團隊負責人 Soumith Chintala 也表達了類似的觀點:我們想要一些對我們來說有用的東西,所以我們決定自己去構(gòu)建。

兼容 Beam

然而,與 Kafka 和 Confluent 不同的時,Samza 并沒有發(fā)展成為擁有獨立供應商的產(chǎn)品。Shetty 說,LinkedIn 有一群工程師致力于從事流式處理開發(fā)工作,而 Samza 是這些工作不可或缺的一部分。他又補充說,他們并沒有將 Samza 看成是一個產(chǎn)品:

“我們將其視為一個開源項目。LinkedIn 一直以來都是以這種方式參與開源的——當我們認為我們構(gòu)建的工具也能為其他公司帶來價值時,那么在可能的情況下,我們希望將它們交給社區(qū)。

雖然目前沒有與 Samza 掛鉤的供應商,但包括 Slack、TripAdvisor、Redfin 和 Optimizely 在內(nèi)的多家公司正在生產(chǎn)環(huán)境中使用它。我們認為,能夠吸引其他組織使用 Samza 的一個事實是,它已經(jīng)經(jīng)過大規(guī)模的實戰(zhàn)考驗,因為 LinkedIn 就在使用它。”

我們知道,Apex 背后的供應商 DataTorrent 最近破產(chǎn)了;蛟S在這個時候,這個領(lǐng)域沒有足夠的空間容納更多的開放核心的流式處理平臺供應商。所以,如果你想要使用 Samza,必須想清楚,并自己想辦法在生產(chǎn)環(huán)境中運行它,即使是最新的 1.0 版本也是這樣。不過,在其他方面倒是發(fā)生了一些變化,可能會帶來更廣泛的影響。

Samza 提供了一組新的 API,與 Apache Beam 兼容。Apache Beam 是一個開源項目,提供了一組統(tǒng)一的 API,用于跨執(zhí)行引擎移植處理管道,包括 Samza、Spark 和 Flink。Beam 還支持使用其他編程語言進行數(shù)據(jù)處理,包括數(shù)據(jù)科學領(lǐng)域的寵兒——Python。

 

 

在某種程度上,Samza 團隊已經(jīng)意識到,雖然穩(wěn)定性和性能是 Samza 的核心優(yōu)勢,但它的編程 API 卻相當?shù)图。Samza 提供了一組簡單的基于回調(diào)的 API,可用于指定消息級別的操作。

開發(fā)人員必須基于這組 API 自行實現(xiàn)復雜的操作,如窗口操作和連接操作。此外,需要使用 Kafka 主題將多個 Samza 作業(yè)連接在一起,這使得構(gòu)建應用程序非常耗時且容易出錯。

Samza 1.0 提供了一組高級 API,開發(fā)人員可以通過組合多個運算符來構(gòu)建復雜的數(shù)據(jù)管道。但 Samza 團隊不滿足于此,他們又向前邁進了一步,讓他們的 API 與 Apache Beam 兼容。

也就是說,現(xiàn)在可以使用 Java、Scala 或 Python 在 Beam 上開發(fā)流式應用程序,并且可以將它們移植到支持它們的框架中,甚至可以在 Google Cloud Dataflow 上運行它們——至少在理論上是這樣的。

Flink 和 Spark 都提供了 Beam API 之外的專有擴展,而 Spark 創(chuàng)建者對支持 Beam 并不是很感興趣。Spark 對 Beam 的支持主要是由社區(qū)提供的。

SQL 和 DevOps

但這些并非 Samza 1.0 的全部,因為它還帶來了一些更重要的新功能:SQL 和 DevOps 改進。Samza 團隊意識到,即使他們的 API 得到了升級,但并非所有人都喜歡使用 API。非工程師更愿意通過 SQL 訪問數(shù)據(jù),而 Samza 正在提供這樣的功能。

我們說“正在”,是因為從技術(shù)層面看是可以實現(xiàn) SQL 功能,但仍然需要通過 API 調(diào)用來使用這個功能。這種使用方式違背了降低使用門檻的目標,但 Shetty 指出,他們也正在為 SQL 創(chuàng)建交互式的 shell。SQL 已經(jīng)成為流式處理的香饃饃——Kafka、Flink 和 Spark 都支持 SQL。

 

 

Samza 1.0 的另一個改進方面是集群管理器的獨立性。在 Samza 1.0 之前,Samza 需要借助 YARN 進行資源管理和應用程序的分布式執(zhí)行。雖然使用 YARN 沒有什么問題,但用戶希望能夠靈活地在任意環(huán)境中運行流式處理。Samza 1.0 通過提供獨立運行模式來解決這個問題。

這種模式允許將 Samza 作為庫嵌入到應用程序中,并在任意資源管理器中運行。但還存在幾個問題:獨立模式還不支持像窗口和連接這樣的有狀態(tài)流式處理,并且對 Kubernetes 的支持還不夠。Samza 團隊正在努力解決這些問題。Samza 1.0 還支持表和流的連接,并改進了 Samza 應用程序的可測試性。

Samza 1.0 帶來了巨大的改進。它背后的團隊似乎意識到它的短板,并努力解決這些問題。他們也意識到了它的優(yōu)勢,例如 Samza 在一臺機器上每秒可以處理 120 萬條消息。

但問題是你應不應該使用它?如果你確信自己可以搭建、開發(fā)、部署和維護它,那么絕對值得一試。

但無論你是否會使用它,Samza 1.0 都是一個重要的里程碑。因為在 Apache Beam 似乎陷入僵局的時候,Samza 拉了它一把。并非每家公司都會像 LinkedIn 那樣,并非每家公司都有建立和維護自己的框架的必要。但在目前看來,基于 Beam 進行開發(fā)似乎是可移植性方面的最佳選擇。

Samza 1.0 發(fā)布詳細公告:

https://engineering.linkedin.com/blog/2018/11/samza-1-0--stream-processing-at-massive-scale

英文原文:

https://www.zdnet.com/article/real-time-data-processing-just-got-more-options-linkedin-releases-apache-samza-1-0-streaming/

標簽: Google

版權(quán)申明:本站文章部分自網(wǎng)絡,如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:WTF Python:有趣且鮮為人知的Python特性

下一篇:從NIPS到NeurIP 20年數(shù)據(jù)分析:MIT貢獻最大,吳恩達、Hinton為最TOP作者