前言
Structured Streaming 的文章參考這里: Spark 2.0 Structured Streaming 分析。2.0的時候只是把架子搭建起來了宿接,當時也只支持FileSource(監(jiān)控目錄增量文件)赘淮,到2.0.2后支持Kafka了辕录,也就進入實用階段了,目前只支持0.10的Kafka梢卸。Structured Streaming 采用dataframe API,并且對流式計算重新進行了抽象走诞,個人認為Spark streaming 更靈活,Structured Streaming 在某些場景則更方便低剔,但是在StreamingPro中他們之間則沒太大區(qū)別速梗,唯一能夠體現(xiàn)出來的是,Structured Streaming 使得checkpoint真的進入實用階段襟齿。
下載
假設(shè)我們都放在/tmp目錄下
寫邏輯
新建一個文件,/tmp/ss-test.json,內(nèi)容如下:
{
"scalamaptojson": {
"desc": "測試",
"strategy": "spark",
"algorithm": [],
"ref": [
],
"compositor": [
{
"name": "ss.source.mock",
"params": [{"duration1":["1","2","3"]}]
},
{
"name": "ss.table",
"params": [{"tableName": "test"}]
},
{
"name": "ss.sql",
"params": [
{
"sql": "select value + 100 from test",
"outputTableName": "test2"
}
]
},
{
"name": "ss.output",
"params": [
{
"mode": "append",
"format": "console"
}
]
}
],
"configParams": {
}
}
}
StreamingPro 現(xiàn)在支持短名稱了姻锁,不用寫那么冗長的package名。
- ss 開頭指的是structrued streaming猜欺。
- batch 則是spark 批處理
- stream 則是 spark streaming
邏輯:
- 配置模擬數(shù)據(jù)
- 映射為表
- 使用SQL查詢
- 輸出(console)
如果是接的kafka,則配置如下即可:
{
"name": "ss.source",
"params": [{
"format":"kafka"
"kaka.bootstrap.servers":"host1:port1,host2:port2",
"subscribe":"topic1,topic2"
}]
}
運行
./bin/spark-submit --class streaming.core.StreamingApp \
--master local[2] \
--name test \
/tmp/streamingpro-0.4.7-SNAPSHOT-online-2.0.2.jar \
-streaming.name test \
-streaming.platform ss \
-streaming.checkpoint file:///tmp/ss \
-streaming.job.file.path file:///tmp/ss-test.json