首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    超越大数据分析:流处理系统迎来黄金时期

    流处理作为一个一直很活跃的研究领域已有 20 多年的历史,但由于学术界和全球众多开源社区最近共同且成功的努力,它当前正处于黄金时期。本文的内容包含三个方面。首先,我们将回顾和指出过去的一些值得关注的但却很大程度上被忽略了的研究发现。其次,我们试图去着重强调一下早期(00-10)和现代(11-18)流系统之间的差异,以及这些系统多年来的发展历程。最重要的是,我们希望将数据库社区的注意力转向到最新的趋势:流系统不再仅用于处理经典的流处理工作负载,即窗口聚合和联接。取而代之的是,现代流处理系统正越来越多地用于以可伸缩的方式部署通用事件驱动的应用程序,从而挑战了现有流处理系统的设计决策,体系结构和预期用途。

    02

    Structured Streaming | Apache Spark中处理实时数据的声明式API

    随着实时数据的日渐普及,企业需要流式计算系统满足可扩展、易用以及易整合进业务系统。Structured Streaming是一个高度抽象的API基于Spark Streaming的经验。Structured Streaming在两点上不同于其他的Streaming API比如Google DataFlow。 第一,不同于要求用户构造物理执行计划的API,Structured Streaming是一个基于静态关系查询(使用SQL或DataFrames表示)的完全自动递增的声明性API。 第二,Structured Streaming旨在支持端到端实时的应用,将流处理与批处理以及交互式分析结合起来。 我们发现,在实践中这种结合通常是关键的挑战。Structured Streaming的性能是Apache Flink的2倍,是Apacha Kafka 的90倍,这源于它使用的是Spark SQL的代码生成引擎。它也提供了丰富的操作特性,如回滚、代码更新、混合流\批处理执行。 我们通过实际数据库上百个生产部署的案例来描述系统的设计和使用,其中最大的每个月处理超过1PB的数据。

    02

    由Dataflow模型聊Flink和Spark

    Dataflow模型(或者说Beam模型)旨在建立一套准确可靠的关于流处理的解决方案。在Dataflow模型提出以前,流处理常被认为是一种不可靠但低延迟的处理方式,需要配合类似于MapReduce的准确但高延迟的批处理框架才能得到一个可靠的结果,这就是著名的Lambda架构。这种架构给应用带来了很多的麻烦,例如引入多套组件导致系统的复杂性、可维护性提高。因此Lambda架构遭到很多开发者的炮轰,并试图设计一套统一批流的架构减少这种复杂性。Spark 1.X的Mirco-Batch模型就尝试从批处理的角度处理流数据,将不间断的流数据切分为一个个微小的批处理块,从而可以使用批处理的transform操作处理数据。还有Jay提出的Kappa架构,使用类似于Kafka的日志型消息存储作为中间件,从流处理的角度处理批处理。在工程师的不断努力和尝试下,Dataflow模型孕育而生。

    02

    分布式定时任务Elastic-Job框架在SpringBoot工程中的应用实践(一)

    摘要:如何构建具备作业分片和弹性扩缩容的定时任务系统是每个大型业务系统在设计时需要考虑的重要问题? 对于构建一般的业务系统来说,使用Quartz或者Spring Task即可基本满足我们的单体服用应用需要。然而随着线上业务量的不断发展,这两种定时任务已经日渐无法满足我们的需求。一般,使用这两种定时任务框架都会遇到如下的两个痛点问题: (1)如果业务工程采用集群化的部署,可能会多次重复执行定时任务而导致系统的业务逻辑错误,并产生系统故障。 (2)Quartz的集群方案具备HA功能,可以实现定时任务的分发,但是通过增加机器节点数量的方式并不能提高每次定时任务的执行效率,无法实现任务的弹性分片。 一线互联网大厂都有他们自己为其业务定制化研发的分布式定时任务系统,业务研发工程师可以通过在其Web Console的界面上进行简单的任务配置即可使得大型业务系统实现定时任务的调度、分发、分片、监控和扩缩容等功能。那么,业界是否有开源的组件框架同样具备这些功能呢?答案是肯定的!本文将向大家介绍一款开源的分布式定时任务调度框架—Elastic-Job的功能和原理,同时通过一个简单的案例阐述如何在Spring Boot工程完成Elastic-Job的集成。

    02
    领券