前言
之前已经写过一篇文章,不过当时只是玩票性质的,因为对Spark 2.0+ 版本其实也只是尝试性质的,重点还是放在了spark 1.6 系列的。不过时间在推移,Spark 2.0+ 版本还是大势所趋。所以这一版对底层做了很大的重构,StreamingPro目前支持Flink,Spark 1.6+, Spark 2.0+ 三个引擎了。
准备工作
下载streamingpro for spark 2.0的包,然后下载spark 2.1 的安装包。
你也可以在 streamingpro目录 找到spark 1.6+ 或者 flink的版本。最新的大体会按如下格式统一格式了:
streamingpro-spark-0.4.14-SNAPSHOT.jar 适配 spark 1.6+,scala 2.10streamingpro-spark-2.0-0.4.14-SNAPSHOT.jar 适配 spark 2.0+,scala 2.11streamingpro.flink-0.4.14-SNAPSHOT-online-1.2.0.jar 适配 flink 1.2.0, scala 2.10
测试例子
写一个json文件ss.json,内容如下:
{ "scalamaptojson": { "desc": "测试", "strategy": "spark", "algorithm": [], "ref": [ ], "compositor": [ { "name": "ss.sources", "params": [ { "format": "socket", "outputTable": "test", "port":"9999", "host":"localhost", "path": "-" }, { "format": "com.databricks.spark.csv", "outputTable": "sample", "header":"true", "path": "/Users/allwefantasy/streamingpro/sample.csv" } ] }, { "name": "ss.sql", "params": [ { "sql": "select city from test left join sample on test.value == sample.name", "outputTableName": "test3" } ] }, { "name": "ss.outputs", "params": [ { "mode": "append", "format": "console", "inputTableName": "test3", "path": "-" } ] } ], "configParams": { } } }
大体是一个socket源,一个sample文件。socket源是流式的,sample文件则是批处理的。sample.csv内容如下:
id,name,city,age1,david,shenzhen,312,eason,shenzhen,273,jarry,wuhan,35
然后你在终端执行 nc -lk 9999 就好了。
然后运行spark程序:
SHome=/Users/allwefantasy/streamingpro ./bin/spark-submit --class streaming.core.StreamingApp \ --master local[2] \ --name test \$SHome/streamingpro-spark-2.0-0.4.14-SNAPSHOT.jar \ -streaming.name test \ -streaming.platform spark_structrued_streaming \ -streaming.job.file.path file://$SHome/ss.json
在nc 那个终端输入比如eason ,然后回车,马上就可以看到spark终端接受到了数据。
作者:祝威廉
链接:https://www.jianshu.com/p/efedc3251c91
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦