当前位置: 首页 > news >正文

StreamingPro 支持Spark Structured Streaming

前言

Structured Streaming 的文章参考这里: Spark 2.0 Structured Streaming 分析。2.0的时候只是把架子搭建起来了,当时也只支持FileSource(监控目录增量文件),到2.0.2后支持Kafka了,也就进入实用阶段了,目前只支持0.10的Kafka。Structured Streaming 采用dataframe API,并且对流式计算重新进行了抽象,个人认为Spark streaming 更灵活,Structured Streaming 在某些场景则更方便,但是在StreamingPro中他们之间则没太大区别,唯一能够体现出来的是,Structured Streaming 使得checkpoint真的进入实用阶段。


下载
  • Spark 2.0.2 based on scala-2.10
  • StreamingPro 预编译版本

假设我们都放在/tmp目录下


写逻辑

新建一个文件,/tmp/ss-test.json,内容如下:

{
  "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 现在支持短名称了,不用写那么冗长的package名。

  • ss 开头指的是structrued streaming。
  • batch 则是spark 批处理
  • stream 则是 spark streaming

逻辑:

  1. 配置模拟数据
  2. 映射为表
  3. 使用SQL查询
  4. 输出(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

相关文章:

  • 提交PR的git 流程
  • OAuth快速入门
  • 树莓派的kodi设置遥控器的方法
  • C# - 委托中的协变
  • Python学习笔记 字符串拼接
  • CentOS6.4下Docker应用环境的部署配置
  • HDU5701 中位数计数【中位数】
  • Android Activity
  • Markdown 语法简单说明
  • iOS数据存储到本地的几种方法
  • linux awk(9)命令详解
  • 色情病毒“魅影杀手”的恶意行为及黑产利益链分析
  • 初学UML之-------用例图
  • Django接受ajax传过来的数组
  • 服务端构架干货:快节奏多人游戏的技术实现
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • ➹使用webpack配置多页面应用(MPA)
  • C学习-枚举(九)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • ES6核心特性
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Git初体验
  • Java 最常见的 200+ 面试题:面试必备
  • Java程序员幽默爆笑锦集
  • LeetCode29.两数相除 JavaScript
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • MySQL主从复制读写分离及奇怪的问题
  • overflow: hidden IE7无效
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Redis 中的布隆过滤器
  • Spring核心 Bean的高级装配
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 服务器之间,相同帐号,实现免密钥登录
  • 聚类分析——Kmeans
  • 前端js -- this指向总结。
  • 一些css基础学习笔记
  • 终端用户监控:真实用户监控还是模拟监控?
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 函数计算新功能-----支持C#函数
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (bean配置类的注解开发)学习Spring的第十三天
  • (c语言)strcpy函数用法
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (十)c52学习之旅-定时器实验
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)一些感悟
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版