文档章节

Spark Streaming 及相关算子

d
 dreamness
发布于 08/16 12:06
字数 370
阅读 2
收藏 0

外部数据源


如果使用了基于receiver的数据源, 则receiver会占用一个进程来接受数据, 如果运行的环境上只有一个cpu核心, 那么SparkStreaming程序无法正常运行。

相关transformation算子


transform


将DStream中的rdd与其他rdd互操作。 例:wordcount中的黑名单, 黑名单上的单词不会被统计

    val lines = ssc.socketTextStream("localhost", 23333)
    val result = lines.flatMap(_.split(",")).map((_,1)).reduceByKey(_ + _)
    val blackListRdd= sc.parallelize(Array("a", "b")).map((_, 1))

    result.transform(rdd =>{
      rdd.leftOuterJoin(blackListRdd).filter(x =>x._2._2.getOrElse(false) == false)
          .map(x => (x._1, x._2._1))
    }).print()

updateStateByKey


该算子可以统计从最开始到现在, 是有状态的,但是需要配置checkpoint, 会产生小文件问题。
不建议使用, 可以将每个时间段的统计插入数据库中, 再用聚合sql查询。

    ssc.checkpoint(".")
    val lines = ssc.socketTextStream("localhost", 23333)
    val result = lines.flatMap(_.split(",")).map((_,1)).reduceByKey(_ + _)

    def updateFunction(newValues: Seq[Int], runningCount: Option[Int]): Option[Int] = {
      val newCount = newValues.sum
      Some(newCount + runningCount.getOrElse(0))
    }
    result.updateStateByKey(updateFunction).print

相关action算子


foreachRDD


对DStream中的每个Rdd进行操作, 这是一个Driver操作。
在其中嵌套foreach/foreachPartition算子才是Executor操作。
须注意序列化问题。
详情参见我的另一篇博客
Spark中map、mapPartitions、foreach、foreachPartitions算子

© 著作权归作者所有

d

dreamness

粉丝 2
博文 48
码字总数 17330
作品 0
沈阳
私信 提问
Spark cluster 部署

Spark 框架 Spark与Storm的对比 对于Storm来说: 1、建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析 2、此外,如果对于实时计算的...

meteor_hy
2018/06/27
0
0
干货 | Spark Streaming 和 Flink 详细对比

本文从编程模型、任务调度、时间机制、Kafka 动态分区的感知、容错及处理语义、背压等几个方面对比 Spark Stream 与 Flink,希望对有实时处理需求业务的企业端用户在框架选型有所启发。本文篇...

xiaomin0322
05/29
82
0
Spark比拼Flink:下一代大数据计算引擎之争,谁主沉浮?

AI 前线导读: 做大数据绝对躲不过的一个热门话题就是实时流计算,而提到实时流计算,就不得不提 Spark 和 Flink。Spark 从 2014 年左右开始迅速流行,刚推出时除了在某些场景比 Hadoop Map...

AI前线
2018/07/23
0
0
说几个flink好做spark却不好做的场景

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/rlnLo2pNEfx9c/article/details/100088733...

Spark高级玩法
08/26
0
0
Spark 比拼 Flink:下一代大数据计算引擎之争,谁主沉浮?

下一代大数据计算引擎 自从数据处理需求超过了传统数据库能有效处理的数据量之后,Hadoop 等各种基于 MapReduce 的海量数据处理系统应运而生。从 2004 年 Google 发表 MapReduce 论文开始,经...

xiaomin0322
05/29
6
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot初探---spring-boot-starter-web究竟干了啥

上一篇已经简单介绍了启动类的部分,这一篇主要讨论一下springboot引入的哪些依赖 我们都知道想用springboot做一个web应用,首先要做的是引入相关依赖,两步操作: 1、添加spring-boot-start...

计算机狼
47分钟前
6
0
基于Rocket.chat搭建内网聊天系统(使用docker,本机不需要安装meteor)

您可能不希望使用标准的Docker命令,而是希望对部署进行更多的自动化管理。这就是使用Docker-compose可能会派上用场的地方。 确保您已安装Docker和Docker-compose并且可以正常运行。 docker...

吴伟祥
49分钟前
6
0
conda 更新源

更新conda 源为阿里源 conda config --add channels http://mirrors.aliyun.com/pypi/simple conda config --set show_channel_urls yes 阿里云: http://mirrors.aliyun.com/pypi/simple/ 豆......

Mr_Tea伯奕
50分钟前
4
0
java 泛型使用

每次写泛型方法都翻下百度,还是自己记录下把。 1、定义一个泛型方法,使用传入参数类型来传递泛型。这种用法在封装json序列化工具类应该会用到。 List<xxx> aa = getList(xxx.class);pr...

朝如青丝暮成雪
53分钟前
6
0
深入了解Java模板引擎Freemarker

前言 常用的Java模板引擎包括:JSP、Freemarker、Thymeleaf、Velocity,从Github上查阅到这几款主流的模板引擎的性能的对比,总体上看,JSP、Freemarker、Thymeleaf、Velocity在性能上差别不...

code-ortaerc
55分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部