Spark Streaming整合Flume(Push-based Approach)統計詞頻

Spark Streaming整合Flume統計詞頻

配置flume的配置文件,如下:
在這裏插入圖片描述
開發sparkstreaming程序,如下:
from pyspark.streaming import StreamingContext
from pyspark import SparkContext
from pyspark.streaming.flume import FlumeUtils

‘’‘Spark Streaming整合Flume統計詞頻’’’

#sc = SparkContext(master=“local[2]”,appName=“FlumeNetWorkWordCount”)
ssc = StreamingContext(sc,5)

flumeStreams = FlumeUtils.createStream(ssc, “hadoop001”, 41414)
counts = flumeStreams.map(lambda x:x[1])
.flatMap(lambda line:line.split(","))
.map(lambda word:(word,1))
.reduceByKey(lambda a,b:a+b)

counts.pprint()

ssc.start()
ssc.awaitTermination()

因爲我們採用的數據讀取方式是push,所以需要先啓動pyspark,將上述代碼複製到命令行,然後啓動flume:
./flume-ng agent
–name simple-agent
–conf $FLUME_HOME/conf
–conf-file $FLUME_HOME/conf/flume-push-streaming.conf
-Dflume.root.logger=INFO,console &

使用telnet,發送數據
在這裏插入圖片描述
查看詞頻統計如下:
在這裏插入圖片描述
程序能夠運行,實現我們想要的功能。

注:如果程序報如下錯誤:
在這裏插入圖片描述
需要去maven倉庫下載相應的jar包依賴,鏈接:
https://search.maven.org/
搜索自己需要的jar包版本,wget到spark的安裝目錄jars下即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章