当前位置: 首页 > news >正文

Flink Maven 依赖

Apache Flink

Flink基础maven pom.xml文件引入

  • Scala API: 为了使用 Scala API,将 flink-java 的 artifact id 替换为 flink-scala_2.12 ,同时将 flink-streaming-java 替换为 flink-streaming-scala_2.12。
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.20.0</version>
</dependency>
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>1.20.0</version>
</dependency>
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients</artifactId><version>1.20.0</version>
</dependency>

Apache Flink Stateful Functions

Apache Flink Stateful Functions是Apache Flink的一个重要库,它简化了构建分布式有状态应用程序的过程。Stateful Functions:是一种基于Apache Flink的API,它基于具有持久状态的函数,能够动态交互,并保证强一致性。这些函数可以看作是具有独立状态的实体,通过消息进行交互,从而构建出复杂的事件驱动应用程序

<dependency><groupId>org.apache.flink</groupId><artifactId>statefun-sdk</artifactId><version>3.3.0</version>
</dependency>
<dependency><groupId>org.apache.flink</groupId><artifactId>statefun-flink-harness</artifactId><version>3.3.0</version>
</dependency>

本地开发程序仅需要依赖 statefun-sdk。statefun-flink-harness 提供了在 IDE 中测试用户开发的程序的本地执行环境。

特性

  1. 有状态性:每个函数实例都维护自己的状态,这些状态是持久的,并且可以在函数被重新激活时恢复。这使得Stateful Functions能够处理需要持续状态管理的复杂场景。
  2. 动态交互:函数之间可以动态地发送和接收消息,这些消息可以是事件、命令或其他类型的数据。这种交互方式使得Stateful Functions能够灵活地构建出复杂的事件处理流程。
  3. 强一致性:Stateful Functions通过Flink的分布式快照机制保证状态的一致性。这意味着在发生故障或需要进行状态迁移时,可以确保状态的一致性和完整性。
  4. 语言独立性:Stateful Functions的调用可以使用HTTP或gRPC等标准协议,因此可以用不同的编程语言实现函数逻辑,提高了开发的灵活性和可维护性。
  5. 无缝集成:Stateful Functions可以与Kubernetes、AWS Lambda等无服务平台集成,使得函数可以在这些平台上运行,并充分利用它们的弹性伸缩和自动化运维能力。

应用场景

Stateful Functions非常适合用于构建事件驱动的应用程序,如欺诈检测、实时推荐系统、物联网数据处理等。这些应用程序需要处理大量的实时事件,并根据事件进行状态更新和决策。Stateful Functions的强一致性和动态交互特性使得它们能够很好地满足这些需求。

Apache Flink Stateful Functions是一个强大的工具,它简化了构建分布式有状态应用程序的过程,并提供了高性能、可伸缩性和一致性的保证。随着无服务器计算和事件驱动架构的兴起,Stateful Functions将在越来越多的应用场景中发挥重要作用。

Apache Flink ML

Apache Flink ML是Apache Flink的一个子项目,专注于提供基于Apache Flink的机器学习库。

一、基本概述

  • 定义:Apache Flink ML是Apache Flink的扩展库,提供了一套全面的机器学习(ML)API和基础设施,旨在简化机器学习管道的构建过程。
  • 开发者:Apache软件基金会
  • 编程语言:支持Python和Java,方便不同编程背景的开发者使用。

二、核心特性

  1. 流式和批处理统一:Flink ML将流处理和批处理视作同一计算模型的不同实例,确保了从批量数据到连续数据流的无缝转换。
  2. 分布式训练:利用Flink的并行处理能力,Flink ML可以在集群上进行大规模的分布式训练,提高模型训练效率。
  3. 高效资源管理:Flink ML利用Flink的内存管理和容错机制,保证了在处理大规模数据时的稳定性和性能。
  4. 易用性:提供简单直观的Python和Java API,降低了ML应用程序的开发门槛。
  5. 灵活性:支持自定义算法和模型,方便集成第三方库或研究新的ML方法。
  6. 高性能:借助Flink的低延迟、高吞吐量特性,Flink ML能在大量数据中快速找到模式和洞察。

三、应用场景

  • 实时预测:在金融交易、物联网传感器数据分析等领域,可实时处理数据并提供预测结果。
  • 广告定向:通过用户行为流数据,实时更新用户画像,优化广告推送策略。
  • 社交网络分析:实时监测用户动态,快速识别热点话题,助力社交媒体运营决策。
  • 欺诈检测:对海量交易数据进行实时分析,及时发现潜在的欺诈行为。

四、技术架构

  • 基于Apache Flink:Flink ML是Apache Flink的扩展库,继承了Flink的强大流处理能力。
  • 支持多种算法:Flink ML提供了多种机器学习算法的实现,如分类、回归、聚类等。
  • 集成第三方库:支持集成TensorFlow、PyTorch等第三方机器学习库,方便用户利用现有资源进行模型训练和推理。

Apache Flink ML是一个基于Apache Flink开发的强大机器学习库,具有流式和批处理统一、分布式训练、高效资源管理、易用性、灵活性和高性能等核心特性。它广泛应用于实时预测、广告定向、社交网络分析和欺诈检测等领域,为开发者提供了便捷的机器学习解决方案。

<dependency><groupId>org.apache.flink</groupId><artifactId>flink-ml-core</artifactId><version>2.3.0</version>
</dependency>
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-ml-iteration</artifactId><version>2.3.0</version>
</dependency>
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-ml-lib</artifactId><version>2.3.0</version>
</dependency>

高级用户可以根据使用场景来只包含最小集合的依赖:

  • 依赖组件 flink-ml-core 来开发不使用迭代的自定义机器学习算法。
  • 依赖组件 flink-ml-core 与 flink-ml-iteration 来开发使用迭代的自定义机器学习算法。
  • 依赖组件 flink-ml-lib 来使用 Flink ML 提供的机器学习算法。

Apache Flink Kubernetes Operator

Apache Flink Kubernetes Operator是一个用于在Kubernetes上管理Apache Flink应用的工具,它提供了部署、监控、升级等功能,旨在将Flink的强大流处理能力与Kubernetes的容器编排能力相结合,从而简化Flink在Kubernetes环境下的运维过程。

<dependency><groupId>org.apache.flink</groupId><artifactId>flink-kubernetes-operator</artifactId><version>1.9.0</version>
</dependency>

Apache Flink Kubernetes Operator的优势在于其将Flink与Kubernetes的优势相结合,提供了强大的流处理能力和灵活的容器编排能力。随着云原生技术的不断发展,Apache Flink Kubernetes Operator有望在更多场景中得到应用,并不断完善其功能和性能。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • gorm入门——如何实现分页查询
  • LVS(Linux virual server)详解
  • 密码学基础-为什么使用真随机数(True Random Number Generators)
  • 【Git】Git安装_配置
  • VisionPro二次开发学习笔记4-使用C#创建绘图图形
  • React(三):PDF文件在线预览(简易版)
  • Qt ts文件详解
  • 没有mac电脑ios上架截屏截图的最新方法
  • 如何在亚马逊云科技AWS上利用LoRA高效微调AI大模型减少预测偏差
  • C到C++——C++基础
  • 字段经常变,用什么数据库, mysql
  • 最新CSS3伪类和伪元素详解
  • CSS 多按钮根据半圆弧度排列
  • Vue - 关于v-wave 波浪动画组件
  • 【Dash】使用 dash_mantine_components 创建图表
  • [nginx文档翻译系列] 控制nginx
  • __proto__ 和 prototype的关系
  • canvas绘制圆角头像
  • DataBase in Android
  • ES6 ...操作符
  • HTML5新特性总结
  • HTTP那些事
  • Java 23种设计模式 之单例模式 7种实现方式
  • js如何打印object对象
  • React的组件模式
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 通过调用文摘列表API获取文摘
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # Java NIO(一)FileChannel
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #java学习笔记(面向对象)----(未完结)
  • #mysql 8.0 踩坑日记
  • (03)光刻——半导体电路的绘制
  • (pytorch进阶之路)扩散概率模型
  • (SpringBoot)第二章:Spring创建和使用
  • (第一天)包装对象、作用域、创建对象
  • (二)c52学习之旅-简单了解单片机
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (强烈推荐)移动端音视频从零到上手(上)
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net IE10 _doPostBack 未定义
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .Net多线程总结
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /proc/stat文件详解(翻译)
  • [ C++ ] STL_vector -- 迭代器失效问题