• 大数据Flink简介与架构剖析并搭建基础运行环境


    前言

    前面我们分别介绍了大数据计算框架Hadoop与Spark,虽然他们有的有着良好的分布式文件系统和分布式计算引擎,有的有着分布式数据集和基于内存的分布式计算引擎,但是却不能对无边界数据流进行有效处理,今天我们就分享一个第四代大数据分布式计算框架Flink简介与架构剖析并搭建基础运行环境

    Flink 简介

    Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

    有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟。Flink 通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确一次的状态一致性。
    在这里插入图片描述

    Flink 集群剖析

    Flink 运行时由两种类型的进程组成:一个 JobManager 和一个或者多个 TaskManager。
    在这里插入图片描述

    Client 不是运行时和程序执行的一部分,而是用于准备数据流并将其发送给 JobManager。之后,客户端可以断开连接(分离模式),或保持连接来接收进程报告(附加模式)。客户端可以作为触发执行 Java/Scala 程序的一部分运行,也可以在命令行进程./bin/flink run …中运行。
    可以通过多种方式启动 JobManager 和 TaskManager:直接在机器上作为standalone 集群启动、在容器中启动、或者通过YARN或Mesos等资源框架管理并启动。TaskManager 连接到 JobManagers,宣布自己可用,并被分配工作。

    Flink应用场景

    1、驱动型应用
    事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。
    典型的事件驱动型应用实例 #
    反欺诈
    异常检测
    基于规则的报警
    业务流程监控
    (社交网络)Web 应用
    2、数据分析应用
    数据分析任务需要从原始数据中提取有价值的信息和指标,为了得到最新数据的分析结果,必须先将它们加入分析数据集并重新执行查询或运行应用,随后将结果写入存储系统或生成报告。
    典型的数据分析应用实例 #
    电信网络质量监控
    移动应用中的产品更新及实验评估分析
    消费者技术中的实时数据即席分析
    大规模图分析
    3、数据管道应用
    提取-转换-加载(ETL)是一种在存储系统之间进行数据转换和迁移的常用方法。ETL 作业通常会周期性地触发,将数据从事务型数据库拷贝到分析型数据库或数据仓库。
    电子商务中的实时查询索引构建
    电子商务中的持续 ETL

    Flink基础运行环境搭建

    Docker安装

    安装docker和docker-compose并赋予权限

    docker与docker-compose安装
    #安装docker社区版
    yum install docker-ce
    #版本查看
    docker version
    #docker-compose插件安装
    curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    #可执行权限
    chmod +x /usr/local/bin/docker-compose
    #版本查看
    docker-compose version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    docker-compose文件编写

    vim docker-compose-flink.yaml

    version: "3.3"
    services:
      jobmanager:
        image: registry.cn-hangzhou.aliyuncs.com/senfel/flink:1.9.2-scala_2.12
        expose:
          - "6123"
        ports:
          - "8081:8081"
        command: jobmanager
        environment:
          - JOB_MANAGER_RPC_ADDRESS=jobmanager
    
      taskmanager:
        image: registry.cn-hangzhou.aliyuncs.com/senfel/flink:1.9.2-scala_2.12
        expose:
          - "6121"
          - "6122"
        depends_on:
          - jobmanager
        command: taskmanager
        links:
          - "jobmanager:jobmanager"
        environment:
          - JOB_MANAGER_RPC_ADDRESS=jobmanager
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    创建并运行容器

    docker-compose -f docker-compose-flink.yaml up -d
    
    • 1

    在这里插入图片描述

    访问Flink web界面

    ip:8081
    在这里插入图片描述

  • 相关阅读:
    快速排序--QuickSort()--递归版本
    告别单调的列表页,探索JVS低代码列表页设计的新思路
    国际版阿里云腾讯云免费开户:服务器怎样转移
    FunAudioLLM SenseVoice语音转录(ASR)与CosyVoice语音合成(TTS)及语音克隆使用案例;webui可视化页面操作使用
    财税行业如何获客
    核方法总结(三)———核主成分(kernel PCA)学习笔记
    问题 - 谷歌浏览器 network 看不到接口请求解决方案
    解析 DAO 效率低下的原因及待考虑因素
    【Spring高级】Aware与InitializingBean接口
    本地GPT-window平台 搭建ChatGLM3-6B
  • 原文地址:https://blog.csdn.net/weixin_39970883/article/details/132577053