Flink 教程

  • Apache Flink教程

    Apache Flink是Apache Hadoop的开源本机分析数据库。它由Cloudera,MapR,Oracle和Amazon等供应商提供。本教程中提供的示例使用Cloudera Apache Flink开发。
  • 发展背景

    在过去的十年中,数据的发展是巨大的。这产生了一个术语“大数据”。没有固定大小的数据,您可以将其称为大数据。传统系统(RDBMS)无法处理的任何数据都是大数据。大数据可以采用结构化,半结构化或非结构化格式。最初,数据具有三个维度-体积,速度,多样性。尺寸现在已经超出了三个V。现在,我们添加了其他Vs-准确性,有效性,漏洞,价值,可变性等。大数据导致出现了许多有助于存储和处理数据的工具和框架。有一些流行的大数据框架,例如Hadoop,Spark,Hive,Pig,Storm和Zookeeper。它还提供了在多个领域(例如医疗保健,金融,零售,电子商务等)创建下一代产品的机会。无论是跨国公司还是新兴企业,每个人都在利用大数据来存储和处理大数据并做出更明智的决策。
  • 什么是Flink?

    Apache Flink是可以处理流数据的实时处理框架。它是一个开源流处理框架,用于高性能,可伸缩和准确的实时应用程序。它具有真正的流模型,并且不会将输入数据作为批处理或微批处理。Apache Flink由Data Artisans公司创建,现在由Apache Flink社区根据Apache许可进行开发。到目前为止,这个社区有479位贡献者和15500多个提交。
  • Apache Flink上的生态系统

    下图显示了Apache Flink生态系统的不同层-
    flink
    STORAGE(存储)
    Apache Flink具有多个可以读取/写入数据的选项。以下是基本存储列表-
    • HDFS (Hadoop Distributed File System)
    • Local File System
    • S3
    • RDBMS (MySQL, Oracle, MS SQL etc.)
    • MongoDB
    • HBase
    • Apache Kafka
    • Apache Flume
    DEPLOY(部署)
    您可以在本地模式,群集模式或云上部署Apache Fink。群集模式可以是单机模式,YARN,MESOS。 在云上,Flink可以部署在AWS或GCP上。
    KERNEL(内核)
    这是运行时层,可提供分布式处理,容错能力,可靠性,本地迭代处理能力等。
    API's & LIBRARIES(API和库)
    这是Apache Flink的顶层,也是最重要的一层。它具有负责批处理的Dataset API和负责流处理的Datastream API。还有其他库,例如Flink ML(用于机器学习),Gelly(用于图形处理),Tables(用于SQL)。该层为Apache Flink提供了多种功能。
  • 处理方式

    在大数据方面,有两种处理类型-
    • 批量处理
    • 实时处理
    基于一段时间内收集到的数据进行的处理称为批处理。例如,一家银行经理想要处理过去一个月的数据(随着时间的推移而收集),以了解过去1个月中被取消的支票数量。基于即时数据的即时结果处理称为实时处理。例如,银行经理在发生欺诈交易(即时结果)后立即收到欺诈警报。下表列出了批处理和实时处理之间的区别-
    批量处理 实时处理
    静态文件 事件流
    按分钟,小时,天等定期处理 立即处理,纳秒
    磁盘存储中的过去数据 在内存中
    示例-账单生成 示例-ATM交易警报
    如今,每个组织中都在大量使用实时处理。欺诈检测,医疗保健中的实时警报和网络攻击警报等用例需要实时处理即时数据;即使是几毫秒的延迟也会产生巨大的影响。此类实时用例的理想工具是可以输入数据流而不是批处理的工具。Apache Flink是该实时处理工具。
  • 听众

    本教程适用于那些想学习Apache Flink的人。Apache Flink用于使用传统SQL知识以闪电般的速度处理大量数据。
  • 先决条件

    要充分利用本教程,您应该对Hadoop和HDFS命令的基础知识有很好的了解。另外,建议您在学习本教程之前具有基本的SQL知识。