Flink入门

简介: Flink入门

文章目录

前言

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

2add5804e5b844119e281fad955328af.png

Flink的优点:

  • 批流一体化.
  • 同时支持高吞吐、低延迟、高性能.
  • 支持事件时间(Event Time).
  • 支持有状态计算.
  • 支持高度灵活的窗口(Window)操作.

1.wordcount案例

1.1 java版本

public static void main( String[] args ) throws Exception {

     

       ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

       DataSource<String> ds = env.readTextFile("./data/data.txt");

       //切割单词

       FlatMapOperator<String, String> words = ds.flatMap((String lines, Collector<String> collection) -> {

           String[] arr = lines.split(" ");

           for (String s : arr) {

               collection.collect(s);

           }

       }).returns(Types.STRING);

       //统计单词

       MapOperator<String, Tuple2<String, Long>> WordsDS =

               words.map(word -> new Tuple2<>(word, 1L)).returns(Types.TUPLE(Types.STRING, Types.LONG));

       WordsDS.groupBy(0).sum(1).print();

   }

输出:

(flink1,1)

(flink,1)

(hello,3)

(spark,1)

1.2 流式处理

   public static void main( String[] args ) throws Exception {

       //1.创建流式处理环境

       StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

       //读取文件数据

       DataStreamSource<String> ds = env.readTextFile("./data/data.txt");

      //切分单词

       SingleOutputStreamOperator<Tuple2<String, Long>> wordDs=

               ds.flatMap((String line, Collector<Tuple2<String, Long>> collector) -> {

                   String[] words = line.split(" ");

                   for (String word : words) {

                       collector.collect(Tuple2.of(word, 1L));

                   }

               }).returns(Types.TUPLE(Types.STRING, Types.LONG));

       wordDs.keyBy(tp->tp.f0).sum(1).print();

       env.execute();

   }

输出

1> (spark,1)

5> (hello,1)

13> (flink,1)

9> (flink1,1)

5> (hello,2)

5> (hello,3)

1.3 scala版本

 

//

val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment

//导入隐式转换

import org.apache.flink.api.scala._

//加载文件

val linesDS: DataSet[String] = env.readTextFile("./data/data.txt")

//输出

linesDS.flatMap(line => {

 line.split(" ")

}).map((_, 1)).groupBy(0).sum(1).print()

1.4 scala流式处理

//创建环境

val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment

//2导入隐式转换

import org.apache.flink.streaming.api.scala._

//读取文件

val ds: DataStream[String] = env.readTextFile("./data/data.txt")

//统计

ds.flatMap(line=>{line.split(" ")})

 .map((_,1))

 .keyBy(_._1)

 .sum(1)

 .print()

//执行

env.execute()


相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
Java 流计算
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
923 3
|
Java Linux API
flink入门-流处理
flink入门-流处理
1259 0
|
存储 Java Linux
10分钟入门Flink--安装
本文介绍Flink的安装步骤,主要是Flink的独立部署模式,它不依赖其他平台。文中内容分为4块:前置准备、Flink本地模式搭建、Flink Standalone搭建、Flink Standalong HA搭建。
10分钟入门Flink--安装
|
数据处理 Apache 流计算
实时计算引擎 Flink:从入门到深入理解
本篇详细介绍了Apache Flink实时计算引擎的基本概念和核心功能。从入门到深入,逐步介绍了Flink的数据源与接收、数据转换与计算、窗口操作以及状态管理等方面的内容,并附带代码示例进行实际操作演示。通过阅读本文,读者可以建立起对Flink实时计算引擎的全面理解,为实际项目中的实时数据处理提供了有力的指导和实践基础。
5753 2
|
分布式计算 Java API
Flink教程(04)- Flink入门案例
Flink教程(04)- Flink入门案例
549 0
|
分布式计算 监控 API
flink 入门编程day02
flink 入门编程day02
289 5
|
分布式计算 大数据 Hadoop
终于学完了阿里云大数据架构师推荐的Flink入门与实战PDF
Flink项目是大数据计算领域冉冉升起的一颗新星。大数据计算引擎的发展经历了几个过程,从第1代的MapReduce,到第2代基于有向无环图的Tez,第3代基于内存计算的Spark,再到第4代的Flink。因为Flink可以基于Hadoop进行开发和使用,所以Flink并不会取代Hadoop,而是和Hadoop紧密结合。
终于学完了阿里云大数据架构师推荐的Flink入门与实战PDF
|
SQL 关系型数据库 Apache
Apache Doris 整合 FLINK CDC 、Paimon 构建实时湖仓一体的联邦查询入门
Apache Doris 整合 FLINK CDC 、Paimon 构建实时湖仓一体的联邦查询入门
3161 3
|
资源调度 Kubernetes Java
10分钟入门Flink--架构和原理
相信你读完上一节的[《10分钟入门Flink--了解Flink》](https://mp.weixin.qq.com/s?__biz=MzI3OTA2MDQyOQ==&mid=2247483800&idx=1&sn=bcba92c8bc5081ec481f0ec01926ce26&chksm=eb4ccb3adc3b422cbae3bc577525f8611bcbb76b5ac4e5d395d5ee85f26897e27846b68bc4b8&token=2145213332&lang=zh_CN#rd)对Flink已经有初步了解了。这是继第一节之后的Flink入门系列的第二篇,本篇主要内容是
10分钟入门Flink--架构和原理
|
存储 API 调度
10分钟入门Flink--了解Flink
Flink入门系列文章主要是为了给想学习Flink的你建立一个大体上的框架,助力快速上手Flink。学习Flink最有效的方式是先入门了解框架和概念,然后边写代码边实践,然后再把官网看一遍。
10分钟入门Flink--了解Flink

热门文章

最新文章