热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JeffBean谈Flink与流式处理的5大新发现

AI前线导读:在大数据领域工作了近8年后,今年秋天,作为dataArtisans的技术布道师,我在ApacheFlink社

AI前线导读:

在大数据领域工作了近8年后,今年秋天,作为data Artisans的技术布道师,我在Apache Flink社区变得越来越活跃。在十月份举行的湾区Flink座谈会上,我从技术从业者的角度讨论了我对Flink的看法。虽然我是一名Flink新手,但我已经在大数据领域工作了很长时间。正如我在座谈会上所说的,我对人们这个领域的关注、投入和好奇心感到震惊。回想起来,这符合我对Apache Flink和Apache Flink社区的总体印象。下面我想介绍有关Apache Flink的5个早期印象,以及为什么企业应该在他们的流式处理架构中尽早尝试Flink。

更多干货内容请关注微信公众号“AI前线”(ID:ai-front)

流式处理一直是大数据项目的必经之路。

我在2010年进入大数据领域,当时最先进的是分布式文件系统,MapReduce、Hive、Pig、Flume和HBase。然而,低延迟数据处理长期以来一直是一个巨大的挑战。例如,在我进入该领域工作的头几个月,一位客户问我如何在Hive中对一个不断增长的表基于五分钟滚动窗口产生最新的聚合。这是一个非常困难的查询,客户和我都没有想出来该怎么做。MapReduce、Hive、Pig和后来的Spark使用越来越小的批处理操作来处理大量不同数据,获得接近低延迟的结果。一些框架如Flume和后来的Kafka让数据摄取、封装和传输变得更容易。其他查询系统(如HBase、Cassandra、Presto和Impala)可以近似实时地对新近摄取的数据进行交互式访问。但是,所有这些项目都忽略了客户和业务用户真正的需求:将数据表示为流,并基于流进行复杂有状态的分析。客户和最终用户通过各种有趣且昂贵的方式与延迟做斗争。

Apache Flink在2018年的增长非常惊人。

最近Qubole的一份调查报告显示,Apache Flink是2018年大数据和Hadoop生态系统中发展最快的引擎,与2017年的类似调查相比,采用量增长了125%。这种采用率的提升给人造成了一种很强烈的印象,Datanami网站的两篇与Flink不相关的文章中都提到了它。其中一篇感叹大数据生态系统变得日益复杂,涉及的项目呈爆发式的增长,以及在应用场景中采用了错误技术所涉及的风险,但又不遗余力地说明了Flink在采用方面的惊人增长。另一篇有关Cloudera Mike Olson的文章讨论了这个领域从“动物园动物争吵”到解决企业问题的演变,但它仍然给Flink的采用量增长点了一个赞。有时候,动物园里最好的动物不一定是你所期望的那个。

\

值得注意的是,虽然data Artisans支持Flink,销售Flink相关的产品,并聘请了很多原始作者和提交者,但现今Flink的大部分采用都发生在data Artisans公司之外,比如Netflix、阿里巴巴、Uber和Lyft,等等。

Flink的分层抽象非常具有表现力,让你能够自然地概念化你的数据。

在使用Hadoop项目(如MapReduce)多年之后,将流、状态、时间和快照的构造作为事件处理的构建块而不是键、值和执行阶段这些不完整的概念,这令人耳目一新。我的印象是Flink在接口以及这些接口如何与底层平台的功能相关联方面是最具表现力的。例如,SQL接口支持滚动窗口和复杂事件处理。如下图的滚动时间窗口示例所示——几年前我们还很那做到这些——但现在却可以使用简单的SQL来表示。图中还显示了流式API和processFunction抽象级别的相似表现力。

\

我们看到了包装最佳实践的出现。

供应商可以为活跃的开源项目带来价值的一个地方是在精心构建的产品中包装专业知识和最佳实践。采用率较高的开源项目在选择性和可配置性方面变得更加广泛,因为它们运行在特定的生产环境中。

data Artisans根据他们自己的经验以及Flink用户社区已经建立起的最佳实践包装了一些观点。例如,在部署方面,Apache Flink支持YARN、Mesos、Kubernetes和独立部署。同样,Flink的最终用户倾向于运行基于Flink的应用程序而不是Flink作业,这是Flink中可用的最高执行抽象。data Artisans为Flink引入了应用程序的概念,可在Kubernetes上部署Flink,包装了一个非常有用又可扩展的一集群一作业对应一个应用程序的最佳实践。这些简单的决策和包装的最佳实践有助于更早从Flink的采用中获得价值,从而让用户无需一次又一次地解决同类问题。因为包装了最佳实践,data Artisans Platform Application Manager不仅适用于生产部署:它也适用于开始应用Flink。

在其他项目做不到的地方,Flink却取得了成功。

Flink的流式处理有很多很好的生产应用场景。你可以从阿里巴巴、Netflix、Lyft、Uber、DriveTribe等公司那里了解更多有关它们通过采用Flink来满足它们的业务对流式处理的需求。我注意到,在在采用Flink之前,总是先尝试一下其他的项目。

阿里巴巴在参考另一个项目的微批处理范式时,“第一种方法是使用批处理作为起点,然后尝试在批处理之上进行流式处理。但是,这可能无法满足他们对延迟的严格要求,因为模拟流的微批处理需要一些固定的开销——所以当你尝试减少延迟时,开销的比例会增加。

在Flink Forward演讲中,来自Netflix的Shriya Arora说道:“从历史上看,我们已经通过批量的方式连接了大量数据集。然而,我们会问自己,数据是否是实时生成的,为什么不能在下游进行实时处理?”

同样,在讨论他们基于Flink的平台AthenaX时,Uber写道,他们在采用Flink之前尝试了Apache Storm和Apache Samza,“然而,这些解决方案还不够理想。用户要么被迫实现、管理和监控他们自己的流式分析应用程序,要么只能为预先定义的一组问题获取答案。”

在我看来,乍一看,微批次处理、lambda架构、辅助流式处理技术和替代流式处理项目等架构似乎都可以……直到有人从痛苦的经历中发现,低延迟处理和复杂分析无法通过廉价、可扩展和容错的方式来实现。

因此,我的建议是不要让自己在一开始就被困在错误的技术采用的痛苦中,而是尽早尝试使用Flink来解决你的流式处理问题。从Flink的采用模式来看,很多人走了弯路。

英文原文:
https://data-artisans.com/blog/early-observations-apache-flink

会议推荐:



12月20-21,
AICon将于北京开幕,在这里可以学习来自Google、微软、BAT、360、京东、美团等40+AI落地案例,与国内外一线技术大咖面对面交流。





推荐阅读
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 无服务器_云原生数据湖架构中的无服务器 Kafka
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了云原生数据湖架构中的无服务器Kafka相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 开发笔记:数据分析工具篇——pyspark应用详解
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了数据分析工具篇——pyspark应用详解相关的知识,希望对你有一定的参考价值。前面 ... [详细]
  • 目录摘要SQL的现在NoSQL,NotOnlySQL要分布式,也要SQL总结引用摘要毫不夸张的说,关系数据库是企业软件系统的核心,企业形形色色信息行为的背后,都有关系数据库的支撑。 ... [详细]
  • 实时数据处理框架调研
    产品模型API保证次数容错机制状态管理延时吞吐量成熟度StormNativeCompositionalAtleastonceRecordACKsNotbuilt-in ... [详细]
  • Spark学习之路(一)Spark概述
    一,什么是spark定义:Spark一种基于内存的快速,通用,可扩展的大数据分析引擎.官网地址:http:spark.apache.org历史:2009年诞生于加州伯 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 探索MLlib机器学习
    公众号后台回复关键词:pyspark,获取本项目github地址。MLlib是Spark的机器学习库,包括以下主要功能。实用工具ÿ ... [详细]
  • 数据库异常智能分析与诊断
    数据库,异常, ... [详细]
  • 在计算机领域,数据仓库(DW或DWH),是一个用于报告和数据分析的零碎,被认为是商业智能的一个外围组成部分。它将以后和历史数据存储在一个中央,为整个企 ... [详细]
  • 实时计算既有Flink,为何又推出个StreamPark?
    StreamPark2.0.0版本于2023年2月21日正式发布,有流处理需求的开发者可以通过StreamPark官网以及GitHub去下载apache配置 ... [详细]
  • 基于Kafka的实时计算引擎如何选择Flink
    1.前言目前实时计算的业务场景越来越多,实时计算引擎技术及生态也越来越成熟。以Flink和Spark为首的实时计算引擎,成为实时计算场景的重点考虑对象。那么,今天就来聊一聊基于Ka ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
author-avatar
Toby_魚5902
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有