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

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

2018-12-04    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

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

生于 LinkedIn

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

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

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

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

 

 

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

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

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

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

兼容 Beam

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

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

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

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

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

 

 

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

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

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

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

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

SQL 和 DevOps

但這些并非 Samza 1.0 的全部,因?yàn)樗帶來(lái)了一些更重要的新功能:SQL 和 DevOps 改進(jìn)。Samza 團(tuán)隊(duì)意識(shí)到,即使他們的 API 得到了升級(jí),但并非所有人都喜歡使用 API。非工程師更愿意通過(guò) SQL 訪問(wèn)數(shù)據(jù),而 Samza 正在提供這樣的功能。

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

 

 

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

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

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

但問(wèn)題是你應(yīng)不應(yīng)該使用它?如果你確信自己可以搭建、開(kāi)發(fā)、部署和維護(hù)它,那么絕對(duì)值得一試。

但無(wú)論你是否會(huì)使用它,Samza 1.0 都是一個(gè)重要的里程碑。因?yàn)樵?Apache Beam 似乎陷入僵局的時(shí)候,Samza 拉了它一把。并非每家公司都會(huì)像 LinkedIn 那樣,并非每家公司都有建立和維護(hù)自己的框架的必要。但在目前看來(lái),基于 Beam 進(jìn)行開(kāi)發(fā)似乎是可移植性方面的最佳選擇。

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

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/

標(biāo)簽: Google

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

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

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