大数据 Flink部落2


(刚入大数据的大门,让每一篇文章陪伴我的成长,希望看了文章的同学能够共同进步,相互交流,也希望发现错误能够指正,也希望能和大家一同交流讨论QQ:1793655668)

Flink官方定义

Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。

Flink有多火热

给大家放一张图,大家就清楚了,这些大公司都是使用Flink处理框架。
而且据我的了解,Flink主流还在国外的一些大公司,只是近几年逐渐引入到国内。
所以,未来可期!
在这里插入图片描述
其中, 他们用 Flink 做了什么?

  • Alibaba 使用 Flink 的分支版本 Blink 来优化实时搜索排名。eg:当商品商家一个商品之后,实时计算引擎(Flink)在秒级别 build 商品索引,优化商品搜索。
  • 腾讯利用 Apache Flink 构建了一个内部平台(Oceanus),以提高开发和操作实时应用程序的效率。 快手使用了 Apache Flink 搭建了一个实时监控平台,监控短视频和直播的质量。
  • 利用 Apache Flink 构建了实时数据仓库,用于即时分析运营活动效果及用户短期兴趣。 华为云提供基于 Flink 的云服务。
  • 滴滴使用 Apache Flink支持了实时监控、实时特征抽取、实时ETL等业务。
  • Ebay 的监控平台由 Flink 提供支持,可在指标和日志流上计算上千条自定义报警规则。
  • 爱立信使用 Flink 构建了一个实时异常检测器,通过大型基础设施进行机器学习。
  • Uber 在 Apache Flink 上构建了基于 SQL 的开源流媒体分析平台 AthenaX。
  • Yelp 利用 Flink 为其数据连接器生态系统和流处理基础架构提供支持。
  • 财富 500 强金融服务公司 Capital One 使用 Flink 进行实时活动监控和报警。

引自:https://blog.youkuaiyun.com/qq_31975963/article/details/100088884

Flink为什么那么火

  • 事件驱动型(Event-driven)——事件驱动的应用程序是有状态的应用程序,它从一个或多个事件中提取事件,并通过触发计算,状态更新或外部操作来对传入的事件做出反应。
  • 流与批的世界观——前面给大家介绍了批处理和流处理的定义,Flink的优势也在于它既可以进行批处理也能进行流处理。
  • 分层api——从最底层的数据流API到最顶层的SQL
    在这里插入图片描述
  • 支持有状态计算——所谓状态管理就是在流式计算过程中将算子的中间结果保存在内存或者文件系统中,等下一个事件进入算子后可以让当前事件的值与历史值进行汇总累计。
  • 支持exactly-once语义
  • 支持事件时间(EventTime)——简单说就是能够支持事件的时间,比如日志文件中的发生时间。因为很多其他的框架只能支持系统时间,就不是很方便了。
### 大数据 Flink 使用教程及案例 Flink 是一种分布式流处理框架,支持高性能、可扩展的大规模数据处理。以下是关于 Flink 的使用教程及其实际应用场景的详细介绍。 #### 一、Flink 基础概念 Flink 提供了一个统一的计算引擎,能够同时支持批处理和流处理模式[^2]。其主要特点包括低延迟、高吞吐量以及精确一次的状态一致性保障。Flink 的核心组件由运行时架构组成,该架构定义了任务调度、资源管理等功能模块[^4]。 #### 二、DataStream API 编程指南 Flink DataStream API 是用于开发实时流应用程序的主要接口之一。它允许开发者通过声明式的编程方式来操作无限的数据集。常见的操作包括过滤(filter)、映射(map) 和窗口(window)[^3]。 下面是一个简单的 WordCount 示例程序: ```java import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.util.Collector; public class WordCountExample { public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStream<String> text = env.fromElements( "To be or not to be", "That is the question" ); text.flatMap(new Tokenizer()) .keyBy(value -> value.f0) .sum(1) .print(); env.execute("Word Count Example"); } public static final class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { String[] tokens = value.toLowerCase().split("\\W+"); for (String token : tokens) { if (token.length() > 0) { out.collect(new Tuple2<>(token, 1)); } } } } } ``` 此代码片段展示了如何利用 `flatMap` 方法将输入字符串拆分为单词并计数它们出现次数[^1]。 #### 三、部署与配置 为了使 Flink 应用能够在生产环境中稳定运行,需要合理规划集群节点数量、内存分配以及其他性能调优参数。通常情况下,可以通过修改 flink-conf.yaml 文件完成这些设置。 #### 四、高级特性探索 除了基本功能外,Flink 还提供了许增强型工具和服务,比如 CEP(复杂事件处理)、Table & SQL 接口等。借助于这些附加能力,可以更轻松地实现复杂的业务逻辑需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值