溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis Streams與Spark的完美結(jié)合

發(fā)布時間:2020-04-09 08:28:32 來源:網(wǎng)絡 閱讀:302 作者:中間件小哥 欄目:云計算

來源:Redislabs

作者:Roshan Kumar

翻譯:Kevi×××)

最近,我有幸在 Spark +AI 峰會上發(fā)表了題目為“Redis + Structured Streaming:擴展您的持續(xù)應用的完美組合”的演講。

我對這個主題的興趣是由 Apache Spark 和 Redis 在過去幾個月中引入的新功能引起的。根據(jù)我之前使用 Apache Spark 的經(jīng)驗,我很欣賞它在運行批處理時的優(yōu)雅,并且它在 2.0 版本中引入?Structured Streaming?是在這個方向上的進一步發(fā)展。

與此同時,Redis 最近宣布了用于管理流數(shù)據(jù)的新數(shù)據(jù)結(jié)構(gòu),稱為“Streams”。Redis Streams 提供了生產(chǎn)者和消費者之間的異步通信功能以及持久性、回顧性查詢功能和類似于 Apache Kafka 的橫向擴展選項。從本質(zhì)上講,Redis 通過Streams 提供了一個輕便、快速、易于管理的流數(shù)據(jù)庫,使數(shù)據(jù)工程師們受益良多。

此外,開發(fā)?Spark-Redis 庫是為了使 Redis 可以作為彈性分布式數(shù)據(jù)集(RDD)使用。因為現(xiàn)在有了 Structured Streaming 和 Redis Streams,我們決定擴展 Spark-Redis 庫將 Redis Streams 集成為 Apache Spark Structured Streaming 的數(shù)據(jù)源。

Redis Streams與Spark的完美結(jié)合

?

?

在上個月的演講中,我演示了如何在 Redis Streams 中收集用戶活動數(shù)據(jù)并將其下載到 Apache Spark 進行實時數(shù)據(jù)分析。我開發(fā)了一個小型的適合移動設備的 Node.js 應用程序,在這個程序中人們可以點擊投票給他們最喜歡的狗來進行有趣的比賽。

這是一場艱苦的戰(zhàn)斗,有幾個觀眾甚至是***很有創(chuàng)意地攻ji了我的應用程序。他們使用“頁面檢查”選項更改了 HTML 按鈕名稱試圖弄亂應用的顯示。但最終他們失敗了,因為 Redis Streams,Apache Spark,Spark-Redis 庫和我的代碼都足夠的強大,可以有效地應對這些攻ji。

Redis Streams與Spark的完美結(jié)合

?

?

在我演講期間和之后觀眾還詢問了一些有趣的問題,例如:

1.?如果數(shù)據(jù)處理速度低于 Redis Streams 接收數(shù)據(jù)的速率,該如何擴展?

我的回答:配置一個 Redis Streams 的消費者組,將每個 Spark 作業(yè)作為屬于該組的一個消費者,這樣每個作業(yè)都會獲得一組獨有的數(shù)據(jù),將輸出模式設置為“更新”非常重要,這樣每個作業(yè)都不會覆蓋其他作業(yè)的數(shù)據(jù)提交。

?

2.?如果我重新啟動 Spark 作業(yè),Redis Streams 中的數(shù)據(jù)會發(fā)生什么變化?

我的回答:RedisStreams 持久化數(shù)據(jù)。因此您的 Spark 作業(yè)不會遺漏任何數(shù)據(jù),如果重新啟動 Spark 作業(yè),它將從之前停止的位置提取數(shù)據(jù)。

?

3.?我可以用 Python 開發(fā)我的 Spark 應用程序嗎?(我的演示是用 Scala 編寫的)

我的回答:是的,你可以,請參閱 GitHub 上的 Spark-Redis 文檔。

?

4. 我可以在云上部署 Redis Streams 嗎?

我的回答:是的,Streams 只是 Redis 中的另一個數(shù)據(jù)結(jié)構(gòu),從 5.0 版開始內(nèi)置于 Redis 中,最快捷的方式是在 https://redislabs.com/get-started 上注冊。

?

我在峰會上的主要收獲是了解到人們對連續(xù)處理和數(shù)據(jù)流的興趣日益濃厚。根據(jù)大家的需求,我們在 InfoQ 上發(fā)布了一篇關(guān)于此主題的更詳細的文章,在其中提供了有關(guān)如何設置 Redis Streams 和 Apache Spark 以及使用 Spark-Redis 庫進行連接的詳細信息,大家也可以隨時查看我演講的完整視頻。

?

更多優(yōu)質(zhì)中間件技術(shù)資訊/原創(chuàng)/翻譯文章/資料/干貨,×××


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI