云小课|MRS基础原理之Flink组件介绍

mrs,基础,原理,flink,组件,介绍 · 浏览次数 : 61

小编点评

## Flink技术介绍 **Flink**是一个 **批处理和流处理结合的统一计算框架**,它可以处理来自多个数据源的数据并进行复杂计算。Flink的核心是 **流数据处理引擎**,它可以处理高吞吐、高性能、低时延的实时数据。 **Flink的优势:** * **流处理:**业界最顶级的开源流处理引擎,提供ms级时延处理能力。 * **状态管理:**丰富的状态管理机制确保数据完整性和处理效率。 * **容错机制:**提供任务级别的容错机制,确保任务在异常发生时不会丢失用户数据。 * **可扩展性:**支持多个节点的集群运行,以处理大规模的数据集。 **Flink 的主要组件:** * **ClientFlink:**给用户提供向 Flink 系统提交用户任务的能力。 * **TaskManagerFlink:**执行用户任务的业务执行节点。 * **JobManagerFlink:**管理所有的 TaskManager,并决策用户任务在哪些 TaskManager 执行。 **Flink 的核心概念:** * **数据流:**由一系列事件构成的一个数据流。 * **窗口:**基于时间或计数的聚合操作,将数据分组到相同时间或数量的窗口中。 * **cep:**复杂事件处理,允许对流中的事件进行模式匹配。 **Flink 的使用场景:** * **数据处理:**高并发pipeline处理数据,时延毫秒级。 * **流处理:**实时数据处理,例如日志分析、监控。 * **数据仓库:**构建实时数据仓库,通过数据流从各种数据源同步到数据仓库中。 * **机器学习:**训练和评估机器学习模型。 **参考资料:** * **Flink 官方网站:**flink.apache.org/ * **Flink 快速入门指南:**docs.flink.apache.org/release-1.12/ * **Flink 文档:**flink.apache.org/docs/

正文

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。

摘要:Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。

本文分享自华为云社区《【云小课】EI第44课 MRS基础原理之Flink组件介绍》,作者:阅识风云。

Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。

Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。

本课程为您介绍华为云MapReduce服务中Flink服务的基本原理介绍并展示如何通过MRS集群客户端提交Flink作业。

图1 Flink技术栈

Flink重点构建如下特性:

  • DataStream
  • Checkpoint
  • 窗口
  • Job Pipeline
  • 配置表

Flink结构

Flink结构如下图所示。

图2 Flink结构

Flink整个系统包含三个部分:

  • Client

Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。

  • TaskManager

Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。

  • JobManager

Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些Taskmanager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。

MRS Flink关键特性

  • 流式处理
    高吞吐、高性能、低时延的实时流处理引擎,能够提供ms级时延处理能力。
  • 丰富的状态管理
    流处理应用需要在一定时间内存储所接收到的事件或中间结果,以供后续某个时间点访问并进行后续处理。Flink提供了丰富的状态管理相关的特性支持,其中包括
    • 多种基础状态类型:Flink提供了多种不同数据结构的状态支持,如ValueState、ListState、MapState等。用户可以基于业务模型选择最高效、合适状态类型。
    • 丰富的State Backend:State Backend负责管理应用程序的状态,并根据需要进行Checkpoint。Flink提供了不同State Backend,State可以存储在内存上或RocksDB等上,并支持异步以及增量的Checkpoint机制。
    • 精确一次语义:Flink的Checkpoint和故障恢复能力保证了任务在故障发生前后的应用状态一致性,为某些特定的存储支持了事务型输出的功能,即使在发生故障的情况下,也能够保证精确一次的输出。
  • 丰富的时间语义支持
    时间是流处理应用的重要组成部分,对于实时流处理应用来说,基于时间语义的窗口聚合、检测、匹配等运算是非常常见的。Flink提供了丰富的时间语义支持。
    • Event-time:使用事件本身自带的时间戳进行计算,使乱序到达或延迟到达的事件处理变得更加简单。
    • Watermark支持:Flink引入Watermark概念,用以衡量事件时间的发展。Watermark也为平衡处理时延和数据完整性提供了灵活的保障。当处理带有Watermark的事件流时,在计算完成之后仍然有相关数据到达时,Flink提供了多种处理选项,如将数据重定向(side output)或更新之前完成的计算结果。
    • Processing-time和Ingestion-time支持。
    • 高度灵活的流式窗口支持:Flink能够支持时间窗口、计数窗口、会话窗口,以及数据驱动的自定义窗口,可以通过灵活的触发条件定制,实现复杂的流式计算模式。
  • 容错机制
    分布式系统,单个task或节点的崩溃或故障,往往会导致整个任务的失败。Flink提供了任务级别的容错机制,保证任务在异常发生时不会丢失用户数据,并且能够自动恢复。
    • Checkpoint:Flink基于Checkpoint实现容错,用户可以自定义对整个任务的Checkpoint策略,当任务出现失败时,可以将任务恢复到最近一次Checkpoint的状态,从数据源重发快照之后的数据。
    • Savepoint:一个Savepoint就是应用状态的一致性快照,Savepoint与Checkpoint机制相似,但Savepoint需要手动触发,Savepoint保证了任务在升级或迁移时,不丢失掉当前流应用的状态信息,便于任何时间点的任务暂停和恢复。
  • Flink SQL

Table API和SQL借助了Apache Calcite来进行查询的解析,校验以及优化,可以与DataStream和DataSet API无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。简化数据分析、ETL等应用的定义。下面代码实例展示了如何使用Flink SQL语句定义一个会话点击量的计数应用。

SELECT userId, COUNT(*)  
FROM clicks  
GROUP BY SESSION(clicktime, INTERVAL '30' MINUTE), userId
  • CEP in SQL

Flink允许用户在SQL中表示CEP(Complex Event Processing)查询结果以用于模式匹配,并在Flink上对事件流进行评估。

CEP SQL 通过MATCH_RECOGNIZE的SQL语法实现。MATCH_RECOGNIZE子句自Oracle Database 12c起由Oracle SQL支持,用于在SQL中表示事件模式匹配。CEP SQL使用举例如下:

SELECT T.aid, T.bid, T.cid 
FROM MyTable 
    MATCH_RECOGNIZE ( 
      PARTITION BY userid 
      ORDER BY proctime 
      MEASURES 
        A.id AS aid, 
        B.id AS bid, 
        C.id AS cid 
      PATTERN (A B C) 
      DEFINE 
        A AS name = 'a', 
        B AS name = 'b', 
        C AS name = 'c' 
    ) AS T

如何使用Flink客户端

购买一个包含Flink组件的MRS集群,MRS集群的创建可参考MRS快速入门的“创建集群”章节,例如购买一个MRS 3.1.0集群,未开启了Kerberos认证。

1.集群正常运行后,安装集群客户端,例如安装目录为“/opt/hadoopclient”。Flink客户端的安装可以参考MRS用户指南的“安装客户端”章节。

2.以客户端安装用户,登录安装客户端的节点。

3.执行以下命令,切换到客户端安装目录。

cd /opt/hadoopclient
source bigdata_env

4.运行wordcount作业。

方式1:执行如下命令启动session,并在session中提交作业。

yarn-session.sh -nm "session-name"
flink run /opt/hadoopclient/Flink/flink/examples/streaming/WordCount.jar

方式2:执行如下命令在Yarn上提交单个作业。

flink run -m yarn-cluster /opt/hadoopclient/Flink/flink/examples/streaming/WordCount.jar

5.作业提交成功后,客户端界面显示如下。

图3 在Yarn上提交作业成功

图4 启动session成功

图5 在session中提交作业成功

6.使用运行用户登录MRS集群的FusionInsight Manager界面,单击“集群 > 服务 > Yarn”,单击“ResourceManager WebUI”后的链接,进入Yarn服务的原生页面,找到对应作业的application,单击application名称,进入到作业详情页面。

  • 若作业尚未结束,可单击“Tracking URL”链接进入到Flink的原生页面,查看作业的运行信息。
  • 若作业已运行结束,对于在session中提交的作业,可以单击“Tracking URL”链接登录Flink原生页面查看作业信息。

图6 application

好了,本期云小课就介绍到这里,快去体验MapReduce(MRS)更多功能吧!猛戳这里

 

点击关注,第一时间了解华为云新鲜技术~

与云小课|MRS基础原理之Flink组件介绍相似的内容:

云小课|MRS基础原理之Flink组件介绍

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮

云小课|MRS基础原理之Hudi介绍

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Hudi是数据湖的文件组织层,对Parquet格式文件进行管理提供数据湖能力,支持多种计算引擎。 本文分享自华为云社区

云小课|MRS基础原理之CarbonData入门

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提

云小课|MRS基础原理之Oozie任务调度

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Oozie是一个基于工作流引擎的开源框架,它能够提供对Hadoop作业的任务调度与协调。Oozie是一个工作流引擎服务

云小课|MRS基础原理之MapReduce介绍

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:MapReduce是Hadoop的核心,是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概

云小课|MRS基础原理之Hue组件介绍

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Hue是一组WEB应用,用于和MRS大数据组件进行交互,能够帮助用户浏览HDFS,进行Hive查询,启动MapRedu

云小课|MRS基础操作之集群健康检查

MapReduce服务为用户提供海量数据的管理及分析功能,快速从结构化和非结构化的海量数据中挖掘您所需要的价值数据。集群中的FusionInsight Manager将提供企业级的集群的统一管理平台。

云小课|MRS基础操作之配置DataNode容量均衡

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:当HDFS集群出现DataNode节点间磁盘利用率不平衡时,会导致MapReduce应用程序无法很好地利用本地计算的优

云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Spark Streaming是一种构建在Spark上的实时计算框架,扩展了Spark处理大规模流式数据的能力。本文介

云小课|手把手教您在PyCharm中连接云端资源进行代码调试

摘要:让我们看看如何在PyCharm中连接云端资源进行代码调试吧! 本文分享自华为云社区《【云小课】EI第54课 手把手教您在PyCharm中连接云端资源进行代码调试》,作者:Hello EI 。 ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成代码上传