Spark Streaming

2020-11-24 14:50 更新

Spark Streaming

Spark streaming是Spark核心API的一個(gè)擴(kuò)展,它對(duì)實(shí)時(shí)流式數(shù)據(jù)的處理具有可擴(kuò)展性、高吞吐量、可容錯(cuò)性等特點(diǎn)。我們可以從kafka、flume、Twitter、 ZeroMQ、Kinesis等源獲取數(shù)據(jù),也可以通過(guò)由高階函數(shù)map、reduce、join、window等組成的復(fù)雜算法計(jì)算出數(shù)據(jù)。最后,處理后的數(shù)據(jù)可以推送到文件系統(tǒng)、數(shù)據(jù)庫(kù)、實(shí)時(shí)儀表盤(pán)中。事實(shí)上,你可以將處理后的數(shù)據(jù)應(yīng)用到Spark的機(jī)器學(xué)習(xí)算法圖處理算法中去。

streaming-arch

在內(nèi)部,它的工作原理如下圖所示。Spark Streaming接收實(shí)時(shí)的輸入數(shù)據(jù)流,然后將這些數(shù)據(jù)切分為批數(shù)據(jù)供Spark引擎處理,Spark引擎將數(shù)據(jù)生成最終的結(jié)果數(shù)據(jù)。

streaming-flow

Spark Streaming支持一個(gè)高層的抽象,叫做離散流(discretized stream)或者DStream,它代表連續(xù)的數(shù)據(jù)流。DStream既可以利用從Kafka, Flume和Kinesis等源獲取的輸入數(shù)據(jù)流創(chuàng)建,也可以在其他DStream的基礎(chǔ)上通過(guò)高階函數(shù)獲得。在內(nèi)部,DStream是由一系列RDDs組成。

本指南指導(dǎo)用戶(hù)開(kāi)始利用DStream編寫(xiě)Spark Streaming程序。用戶(hù)能夠利用scala、java或者Python來(lái)編寫(xiě)Spark Streaming程序。

注意:Spark 1.2已經(jīng)為Spark Streaming引入了Python API。它的所有DStream transformations和幾乎所有的輸出操作可以在scala和java接口中使用。然而,它只支持基本的源如文本文件或者套接字上的文本數(shù)據(jù)。諸如flume、kafka等外部的源的API會(huì)在將來(lái)引入。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)