为了账号安全,请及时绑定邮箱和手机立即绑定

StreamingPro 再次支持 Structured Streaming

标签:
大数据

前言

之前已经写过一篇文章,不过当时只是玩票性质的,因为对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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消