0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Spark结构化流中的加水位线方法

汽车玩家 来源:今日头条 作者:闻数起舞 2020-05-03 17:28 次阅读

对于流处理引擎来说,处理延迟到达的事件是至关重要的功能。 解决这个问题的方法是加水位线的概念。 从Spark 2.1开始,结构化流API就支持它。

什么是水位线?

加水位线是一种有用的方法,可帮助流处理引擎处理延迟。 基本上,水印是一个阈值,用于指定系统等待延迟事件的时间。 如果到达事件位于水位线之内,它将用于更新查询。 否则,如果它早于水位线,它将被丢弃,并且流引擎不会对其进行进一步处理。

> Flooding watermarks

如何使用它?

自Spark 2.1起,水位线被引入到结构化流API中。 您可以通过将withWatermark-Operator添加到查询中来启用它:

withWatermark(eventTime:String,delayThreshold:String):数据集[T]

它需要两个参数,a)一个事件时间列(必须与聚合正在处理的列相同)和b)一个阈值,用于指定应处理多长时间的延迟数据(以事件时间为单位)。 然后,Spark将维持聚合状态,直到max eventTime — delayThreshold> T,其中max eventTime是引擎看到的最新事件时间,T是窗口的开始时间。 如果后期数据落入此阈值之内,则查询将最终得到更新(下图中的右图)。 否则,它将被丢弃,并且不会触发任何重新处理(下图中的左图)。

Spark结构化流中的加水位线方法

Spark结构化流中的加水位线方法

> Late donkey in structured word count: event dropped (left), event within watermark updates Window

值得一提的是,查询的输出模式必须设置为"追加"(默认)或"更新"。完全模式不能与设计中的水印结合使用,因为它需要所有 要保存的数据,用于将整个结果表输出到接收器

可以在这里找到如何在简单的Spark结构化流应用程序中使用该概念的快速演示-它是字数统计(对NLP进行了一些小的增强),还有其他:D

但是,为什么我要关心?

在分布式和联网的系统中,总会有中断的机会-节点故障,传感器丢失连接等等。 因此,不能保证数据将按创建顺序到达流处理引擎。 为了容错,因此有必要处理此类乱序数据。

为了解决此问题,必须保留聚合状态。 如果发生延迟事件,则可以重新处理查询。 但这意味着所有聚合的状态必须无限期地保持,这也导致内存使用量也无限期地增长。 除非系统具有无限的资源(即无限的预算),否则在现实世界中这是不切实际的。 因此,加水位线是一个有用的概念,可以通过设计约束系统并防止其在运行时爆炸。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1484

    浏览量

    61802
  • SPARK
    +关注

    关注

    1

    文章

    105

    浏览量

    19873
收藏 人收藏

    评论

    相关推荐

    结构化布线在AI数据中心的关键作用

    AI 正在不断颠覆各行各业,推动从电影制作到金融行业等各个领域的创新。而在 AI 系统的背后,隐藏着这样一位无名英雄:结构化布线。
    的头像 发表于 11-21 16:51 170次阅读

    基于分布式对象存储WDS的信托非结构化数据整合平台

    基于分布式对象存储WDS的信托非结构化数据整合平台
    的头像 发表于 08-28 09:56 269次阅读
    基于分布式对象存储WDS的信托非<b class='flag-5'>结构化</b>数据整合平台

    spark运行的基本流程

    前言: 由于最近对spark的运行流程非常感兴趣,所以阅读了《Spark大数据处理:技术、应用与性能优化》一书。通过这本书的学习,了解了spark的核心技术、实际应用场景以及性能优化的方法
    的头像 发表于 07-02 10:31 359次阅读
    <b class='flag-5'>spark</b>运行的基本流程

    Spark基于DPU的Native引擎算子卸载方案

    1.背景介绍 Apache Spark(以下简称Spark)是一个开源的分布式计算框架,由UC Berkeley AMP Lab开发,可用于批处理、交互式查询(Spark SQL)、实时
    的头像 发表于 06-28 17:12 500次阅读
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸载方案

    定期维护结构化布线对于办公室得重要性

    最大限度地减少网络停机时间,确保最佳性能,并延长基础设施的使用寿命。忽视维护可能会导致连接问题、数据传输速度变慢,甚至整个系统故障。 投入时间和资源进行结构化布线维护是一种积极主动的方法,从长远来看,可以节省
    的头像 发表于 06-14 10:44 217次阅读

    什么是结构化网络布线?结构化网络布线有哪些好处?

    在电缆领域,结构化网络布线这个术语经常被提及。人们将其用作流行语,但它的真正含义是什么?结构化布线到底是什么? 为了了解真正的含义,让我们看它的一些相关定义。 根据光纤协会的说法,结构化布线是由
    的头像 发表于 04-11 11:54 485次阅读

    结构化布线的好处多吗

    结构化布线是网络系统的重要组成部分,因为它为数据传输提供了强大、可扩展且可靠的基础。通过遵守全球公认的标准,结构化布线可促进高速连接、简化故障排除并确保未来的可扩展性。考虑到这些优势,企业应优先
    的头像 发表于 04-07 11:15 405次阅读

    什么是网络系统结构化布线?

    。 什么是结构化布线? 结构化布线是指旨在支持网络性能和可靠性的建筑基础设施。它包含许多标准的较小元件(结构化)和各种组件,包括电缆、连接器、机架和接线板,所有这些都安装在预定义的分
    的头像 发表于 04-07 10:58 348次阅读

    Spark基于DPU Snappy压缩算法的异构加速方案

    Spark 在某些工作负载方面表现得更加优越。换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark SQL是Spark的计算模块
    的头像 发表于 03-26 17:06 734次阅读
    <b class='flag-5'>Spark</b>基于DPU Snappy压缩算法的异构加速方案

    RDMA技术在Apache Spark的应用

    背景介绍 在当今数据驱动的时代,Apache Spark已经成为了处理大规模数据集的首选框架。作为一个开源的分布式计算系统,Spark因其高效的大数据处理能力而在各行各业中广受欢迎。无论是金融服务
    的头像 发表于 03-25 18:13 1462次阅读
    RDMA技术在Apache <b class='flag-5'>Spark</b><b class='flag-5'>中</b>的应用

    基于DPU和HADOS-RACE加速Spark 3.x

    、Python、Java、Scala、R)等特性在大数据计算领域被广泛使用。其中,Spark SQL 是 Spark 生态系统的一个重要组件,它允许用户以结构化数据的方式进行数据处理
    的头像 发表于 03-25 18:12 1276次阅读
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    科通技术推出基于FPGA的应用设计结构化技术

    随着汽车技术的飞速发展,汽车功能的复杂性对处理芯片的算力及IO端口数量提出了更高的要求。作为一家正在进行IPO排队的公司,深圳市科通技术股份有限公司(以下简称:科通技术)积极应对市场挑战,针对新一代汽车辅助驾驶的需求,研发了一系列基于FPGA的应用设计结构化技术。
    的头像 发表于 02-02 09:34 503次阅读

    从记录的传感器数据获取驾驶场景

    此工作使用 MATLAB 和 RoadRunner 产品完成,它提供了一种结构化方法来创建虚拟场景,使安波福的工程师能够通过仿真严格验证 ADAS/AD 闭环算法。
    的头像 发表于 01-18 11:05 437次阅读
    从记录的传感器数据<b class='flag-5'>中</b>获取驾驶场景

    CFD 设计利器:结构化和非结构化网格的组合使用

    在CFD的发展历史结构化网格出现最早,至今仍在使用。结构化网格有几个主要优点,如精度高、生成速度快、单元分布均匀。有些工具擅长绘制这类网格,例如CadenceFidelityAutomesh
    的头像 发表于 12-23 08:12 1690次阅读
    CFD 设计利器:<b class='flag-5'>结构化</b>和非<b class='flag-5'>结构化</b>网格的组合使用

    使用关系数据库的半结构化数据

    NoSQL革命已经进入了关系世界。您可能正在使用关系数据库,但仍必须查询和理解隐藏在文本列、JSON或 XML文档的半结构化数据。
    的头像 发表于 12-20 10:46 622次阅读
    使用关系数据库<b class='flag-5'>中</b>的半<b class='flag-5'>结构化</b>数据