206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现

这篇具有很好参考价值的文章主要介绍了206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Flink概述

1.基本描述

Flink官网地址:Apache Flink® — Stateful Computations over Data Streams | Apache Flink

Flink是一个框架分布式处理引擎,用于对无界有界数据流进行有状态计算

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

 2.有界流和无界流

  • 无界流(流):
    • 有定义流的开始,没有定义结束。会无休止产生数据
    • 无界流数据必须持续处理
  • 有界流(批):
    • 有定义流的开始,也有定义流的结束
    • 可以拿到所有数据后再进行处理,并且做排序
    • 有界流通常被称为批处理

3.有状态

flink中除了流之外还会有额外的数据,用来对这些流做一些状态统计。

比如流是路上的汽车,我们是路边的人,数过去了多少车。过去一辆我们可以记一个,再过去就2个。也可以通过画正字的方式记录,最后通过统计正字来得到过去多少车。这里的数字以及正字,就是车以外的额外数据,用作统计。我们每来一个车统计一下,统计完之后可以对外输出。同时,每过一段时间会持久化一下,以防丢失。 

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

4.flink的特点

低延迟、高吞吐、结果准确、良好的容错

  • 高吞吐、低延迟:每秒可以处理数百万个事件,毫秒级延迟
  • 结果准确:flink提供事件事件(event_time)和处理时间(processing_time)语义。对于乱序事件流,事件事件语序仍然能提供一致且精确的结果
  • 精确一次(exactly-once)的状态一致性保证
  • 可以连接到常见的存储系统:kafka,hive,jdbc,hdfs,redis等
  • 高可用:本身就是高可用,配合k8s,yarn和mesos的紧密集成,再加上从故障中快速恢复和动态扩展的能力,可以以极少的停机时间实现7*24小时运行

5.flink和spark的区别

  • spark以批处理为根本
    • spark采用rdd模型,所谓rdd就是每3秒看做的一个批次,spark引擎处理这三秒的数据。spark streaming的Dstream实际上就是一组组rdd的集合
    • spark是批计算,将DAG划分为不同的stage,一个完成才计算下一个
  • Flink以流处理为根本
    • flink基本模型是数据流,以及事件序列
    • flink是标准的流执行模式,一个事件在一个节点处理完之后可以直接下发下一个节点处理

spark:

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

flink:

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

flink spark
计算模型 流计算 微批计算
时间语序 事件事件、处理时间 处理时间
窗口 多、灵活 少、不灵活
窗口必须是批次的整数倍
状态        没有
流式sql 没有

6.flink应用场景

电商、市场营销

物联网(IOT)

物流配送,服务业

银行,金融

7.flink分层api

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

  • 有状态流处理:通过底层api (处理函数),对最原始的数据加工处理。与DataStream api集成,可以处理复杂计算
  • DataStream(流处理)/DataSet(批处理) api:封装了底层api,提供转换、连接、聚合、窗口等通用模块。在flink1.12之后,DataSet被合到DataStream里面去了,即DataStream是批流都可以处理的api
  • Table api:以表为中心的声明式编程。可以与DataStream无缝切换
  • sql:以sql查询表达式的形式表现程序,可以在table api的表上执行

简单来说,就是flink的一层层封装。

二、Flink快速上手

1.创建项目

新建一个maven项目:

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

2.导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigu</groupId>
    <artifactId>FlinkTutorial-1.17</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <flink.version>1.17.0</flink.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients</artifactId>
            <version>${flink.version}</version>
        </dependency>
    </dependencies>
</project>

3.创建文件夹

新建一个input文件夹,里面一个txt,随便输入一些单词

206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现,flink,大数据

4.批处理形式的word count编写(已过时)

注:此种方式使用的是DataSet API。我们新的版本已经将批和流都统一到DataStream API中了,因此这种方式的代码编写看一看就好,已过时。文章来源地址https://www.toymoban.com/news/detail-675546.html

package com.atguigu.wc;

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.AggregateOperator;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.operators.FlatMapOperator;
import org.apache.flink.api.java.operators.UnsortedGrouping;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;

/**
 * TODO DataSet API 实现 wordcount(不推荐)
 */
public class BatchWordCount {
	public static void main(String[] args) throws Exception {
		// TODO 1. 创建执行环境
		ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

		// TODO 2.读取数据:从文件中读取
		DataSource<String> lineDS = env.readTextFile("input/word.txt");

		// TODO 3.切分、转换 (word,1)
		FlatMapOperator<String, Tuple2<String, Integer>> wordAndOne = lineDS.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() {
			@Override
			public void flatMap(String value, Collector<Tuple2<String, Integer>> out) throws Exception {
				// TODO 3.1 按照 空格 切分单词
				String[] wo

到了这里,关于206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flink执行任务运行10h以后挂掉并且报错

    问题描述 flink运行jar包任务,运行几个小时或者1天以后,任务就会挂掉!!! 第一个错误是 2023-02-01 23:43:08,083 INFO org.apache.flink.runtime.executiongraph.ExecutionGraph [] - Window(TumblingEventTimeWindows(60000), EventTimeTrigger, getHvcDownLine) - Sink: Unnamed (1/1) (8672ad64cfc4ddce37756e60242432be) switched from RUN

    2024年02月10日
    浏览(39)
  • Flink的API分层、架构与组件原理、并行度、任务执行计划

            Apache Flink的API分为四个层次,每个层次都提供不同的抽象和功能,以满足不同场景下的数据处理需求。下面是这四个层次的具体介绍: CEP API: Flink API 最底层的抽象为有状态实时流处理。其抽象实现是Process Function,并且Process Function被  框架集成到了DataStream API中

    2024年02月05日
    浏览(39)
  • Flink高手之路2-Flink集群的搭建

    1.本地local模式 本地单机模式,一般用于测试环境是否搭建成功,很少使用 2.独立集群模式standalone Flink自带集群,开发测试使用 3.高可用的独立集群模式standalone HA Flink自带集群,用于开发测试 4.基于yarn模式Flink on yarn 计算资源统一交给hadoop的yarn进行管理,用于生产环境 虚拟

    2024年02月05日
    浏览(40)
  • 【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 运行模式

    集群规划: 具体安装部署步骤如下: 1、下载并解压安装包 (1)下载安装包 flink-1.17.0-bin-scala_2.12.tgz,将该 jar 包上传到 hadoop102 节点服务器的 /opt/software 路径上。 (2)在 /opt/software 路径上解压 flink-1.17.0-bin-scala_2.12.tgz 到 /opt/module 路径上。 2、修改集群配置 (1)进入 conf 路

    2024年01月18日
    浏览(56)
  • Flink(三)flink重要概念(api分层、角色、执行流程、执行图和编程模型)及dataset、datastream详细示例入门和提交任务至on yarn运行

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月16日
    浏览(41)
  • Flink集群搭建

    ⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3696字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿 个人网站:https://jerry-jy.co/ 掌握Flink集群搭建的过程。 掌握Flink集群的启动、停

    2024年02月08日
    浏览(31)
  • 20、Flink SQL之SQL Client: 不用编写代码就可以尝试 Flink SQL,可以直接提交 SQL 任务到集群上

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月11日
    浏览(41)
  • 【大数据工具】Flink集群搭建

    1. 单机版 Flink 安装与使用 1、下载 Flink 安装包并上传至服务器 下载 flink-1.10.1-bin-scala_2.11.tgz 并上传至 Hadoop0 /software 下 2、解压 3、创建快捷方式 4、配置环境变量 5、启动 6、页面查看: hadoop0:8081 2. Standalone 模式安装 1、集群规划 主机名 JobManager TaskManager hadoop1 是 是 hadoop2 是

    2024年02月08日
    浏览(34)
  • Flink 1.17.0集群搭建

    集群角色分配 Hostname IP Role hadoop01 192.168.126.132 JobManager TaskManager hadoop02 192.168.126.133 TaskManager hadoop03 192.168.126.134 TaskManager 下载flink安装包 https://archive.apache.org/dist/flink/flink-1.17.0/  上传至hadoop01并解压:  修改conf/flink-conf.yaml(从flink1.16版本开始,需要修改以下配置) 修改conf/

    2024年02月12日
    浏览(32)
  • Flink 本地单机/Standalone集群/YARN模式集群搭建

    本文简述 Flink 在 Linux 中安装步骤,和示例程序的运行。需要安装 JDK1.8 及以上版本。 下载地址:下载 Flink 的二进制包 点进去后,选择如下链接: 解压 flink-1.10.1-bin-scala_2.12.tgz ,我这里解压到 soft 目录 解压后进入 Flink 的 bin 目录执行如下脚本即可 进入 Flink 页面看看,如果

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包