前言

在Wetest輿情項(xiàng)目中,需要對(duì)每天千萬(wàn)級(jí)的游戲評(píng)論信息進(jìn)行詞頻統(tǒng)計(jì),在生產(chǎn)者一端,我們將數(shù)據(jù)按照每天的拉取時(shí)間存入了Kafka當(dāng)中,而在消費(fèi)者一端,我們利用了spark streaming從kafka中不斷拉取數(shù)據(jù)進(jìn)行詞頻統(tǒng)計(jì)。本文首先對(duì)spark streaming嵌入kafka的方式進(jìn)行歸納總結(jié),之后簡(jiǎn)單闡述Spark streaming+kafka在輿情項(xiàng)目中的應(yīng)用,最后將自己在Spark Streaming+kafka的實(shí)際優(yōu)化中的一些經(jīng)驗(yàn)進(jìn)行歸納總結(jié)。(如有任何紕漏歡迎補(bǔ)充來(lái)踩,我會(huì)第一時(shí)間改正^v^)

Spark streaming接收Kafka數(shù)據(jù)

用spark streaming流式處理kafka中的數(shù)據(jù),第一步當(dāng)然是先把數(shù)據(jù)接收過(guò)來(lái),轉(zhuǎn)換為spark streaming中的數(shù)據(jù)結(jié)構(gòu)Dstream。接收數(shù)據(jù)的方式有兩種:1.利用Receiver接收數(shù)據(jù),2.直接從kafka讀取數(shù)據(jù)。

基于Receiver的方式

這種方式利用接收器(Receiver)來(lái)接收kafka中的數(shù)據(jù),其最基本是使用Kafka高階用戶API接口。對(duì)于所有的接收器,從kafka接收來(lái)的數(shù)據(jù)會(huì)存儲(chǔ)在spark的executor中,之后spark streaming提交的job會(huì)處理這些數(shù)據(jù)。如下圖:
萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
在使用時(shí),我們需要添加相應(yīng)的依賴包:

<dependency><!-- Spark Streaming Kafka -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming-kafka_2.10</artifactId>
    <version>1.6.3</version></dependency>

網(wǎng)友評(píng)論