Flink
文章平均质量分 95
張萠飛
运营商行业,大数据集群一线运维工程师
展开
-
基于Flink以及Pulsar的StreamSQL的技术实践
Table of Contents什么是StreamSQL需求最初的基于kafka的解决方案无限期地存储每个域事件从批处理数据引导物化视图回填从Kafka更新传入事件多租户、回滚和重播、错误处理等。为什么用Pulsar分层存储到S3独立的计算和存储扩展内装式多租户积极回应的社区Pulsar-Based解决方案无限期地存储每个域事件从批...翻译 2020-04-07 14:24:33 · 1119 阅读 · 1 评论 -
Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
执行 hdfs 命令查看目录时,控制台上有这么一句警告JVM 报错:共享内存文件空间不足df -h以可读性较高的方式来显示磁盘使用信息可以看到主盘以使用100%暴力解决办法:找到对应占用磁盘的文件,然后 rm -f,再重启造成大日志文件的程序...原创 2020-02-28 14:36:12 · 2462 阅读 · 0 评论 -
Flink Debugging & Monitoring - Monitoring Checkpointing(Checkpointing)
原文地址:https://ci.apache.org/projects/flink/flink-docs-release-1.9/monitoring/checkpoint_monitoring.html翻译 2020-02-28 20:58:13 · 835 阅读 · 0 评论 -
3.4、Flink 集群部署(Deployment & Operations)- State & Fault Tolerance(Flink状态和容错)之 调优检查点和大状态
要使 Flink 应用程序大规模可靠地运行,必须满足两个条件:应用程序需要能够可靠地接受检查点 在失败之后,资源需要充分跟上输入数据流第一部分讨论如何在大规模上很好地执行检查点。最后一节解释了一些关于计划使用多少资源的最佳实践。监控State and Checkpoints监视检查点行为的最简单方法是通过 UI 的检查点部分。检查点监视的文档显示了如何访问可用的检查点指标。Fl...翻译 2020-02-28 17:12:18 · 1116 阅读 · 0 评论 -
1、Flink Managing Execution - Task Failure Recovery(Flink Task 故障恢复)
当任务失败时,Flink 需要重新启动失败的任务和其他受影响的任务,将作业恢复到正常状态。重新启动策略和故障转移策略用于控制任务重新启动。重新启动策略决定是否以及何时可以重新启动失败/受影响的任务。故障转移策略决定应该重新启动哪些任务以恢复作业。重启策略可以使用默认的重启策略来启动集群,在没有定义特定于作业的重启策略时,总是使用默认的重启策略。如果提交的作业带有重启策略,该策略将覆盖集...翻译 2020-01-10 17:28:09 · 595 阅读 · 0 评论 -
Flink Internals - Data Streaming Fault Tolerance(数据流容错)
简介Apache Flink 提供了一种容错机制来一致地恢复数据流应用程序的状态。该机制确保即使存在故障,程序的状态最终将精确地反映数据流中的每条记录一次。注意,这里有一个开关,将担保降级到至少一次(如下所述)。容错机制连续绘制分布式流数据流的快照。对于状态小的流应用程序,这些快照非常轻量级,可以频繁地绘制,不会对性能造成很大影响。流应用程序的状态存储在一个可配置的位置(如主节点或HDFS...翻译 2020-01-10 11:38:45 · 308 阅读 · 0 评论 -
5.7、Flink流处理(Stream API)- Connectors(外部连接器)之 Hadoop FileSystem Connector
自 Flink 1.9 起,BucketingSink 已经被弃用,并将在后续版本中移除。请使用 StreamingFileSink。这个连接器提供了一个接收器,可以将分区的文件写到Hadoop文件系统支持的任何文件系统中。要使用此连接器,请在项目中添加以下依赖项:<dependency> <groupId>org.apache.flink</gro...翻译 2019-12-26 17:03:19 · 669 阅读 · 0 评论 -
部署flink集群遇到的问题(记录)
1、flink jdk 版本的问题org/apache/flink/yarn/entrypoint/YarnSessionClusterEntrypoint : Unsupported major.minor version 52.0org/apache/flink/runtime/entrypoint/StandaloneSessionClusterEntrypoint : Unsupp...原创 2020-01-03 09:25:15 · 2149 阅读 · 0 评论 -
Flink 集群部署 之 设置谷歌计算引擎(Google Compute Engine Setup)
目录环境准备安装谷歌云SDK安装 bdutil部署 Flink 到 Google 计算引擎Set up a bucket调整bdutil配置调整Flink配置用Flink生成一个集群Run a Flink example job:Shut down your cluster本文档提供了关于如何在谷歌计算引擎集群上使用 Hadoop1 或 Hadoop2 ...翻译 2019-10-24 21:18:08 · 346 阅读 · 0 评论 -
3.8、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)之 Custom Serialization for Managed
目录使用自定义状态序列化器状态序列化器和模式演化TypeSerializerSnapshot 抽象Flink 如何与 TypeSerializer 和 typeseriizersnapshot 抽象交互堆外状态后端(例如rocksdbstateback后端)堆状态后端(例如 memorystateback、fsstateback )预定义的方便的TypeSeriali...翻译 2019-10-24 21:13:50 · 687 阅读 · 0 评论 -
3.7、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)之 State Schema Evolution(状态模式演化)
目录进化状态模式支持模式演化的数据类型POJO typesAvro typesApache Flink 流应用程序通常被设计为无限期或长时间运行。与所有长时间运行的服务一样,需要更新应用程序以适应不断变化的需求。应用程序所针对的数据模式也是如此;它们随着应用程序的发展而发展。这个页面提供了如何演进状态类型的数据模式的概述。当前的限制因不同类型和状态结构( ValueSta...翻译 2019-10-23 21:08:07 · 406 阅读 · 0 评论 -
3.3、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)之 The Broadcast State Pattern(广播状态模式)
目录提供的APIsBroadcastProcessFunction and KeyedBroadcastProcessFunction重要内容使用状态描述算子状态,该状态在恢复时均匀地分布在算子的并行任务中,或者统一使用整个状态来初始化恢复后的并行任务。第三种受支持的操作符状态是广播状态。广播状态被引入以支持这样的用例:来自一个流的一些数据需要广播到所有下游任务,在那里它被本地...翻译 2019-10-23 21:08:51 · 586 阅读 · 0 评论 -
2.1、Flink流处理(Stream API)- Event Time(事件时间)之 基础概览
Table of ContentsEvent Time / Processing Time / Ingestion Time设定时间特性Event Time and WatermarksWatermarks in Parallel Streams(平行流中的水印)Late Elements(末元素)Idling sources(闲置资源)调试水印算子如何处理水印...翻译 2019-10-22 21:04:15 · 1156 阅读 · 0 评论 -
3.4、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)之 Checkpointing
Flink中的每个函数和操作符都可以是有状态的(有关详细信息,请参阅//TODO使用状态)。有状态函数在各个元素/事件的处理过程中存储数据,使状态成为任何类型的更精细操作的关键构建块。为了使状态容错,Flink需要对状态进行检查点。检查点允许Flink恢复流中的状态和位置,从而为应用程序提供与无故障执行相同的语义。数据流容错详细介绍容错机制背后的技术//TODO基础概念Flink的...翻译 2019-08-21 09:02:54 · 498 阅读 · 0 评论 -
Flink基础 之 分布式运行环境(Runtime Environment)
任务和算子链对于分布式执行,Flink 将每个算子的子任务链接成一个任务。一个线程相当于一个任务。将算子链接成为一个任务减少了线程间的切换和缓冲的开销,增加了总体的吞吐量,降低了延迟。算子链可配置,详情请查阅:Flink流处理(Stream API)- Operators(操作数据流)下图中的示例数据流使用5并行线程执行5个子任务。JM、TM、客户端Flink Runtime ...翻译 2019-09-18 13:11:26 · 982 阅读 · 0 评论 -
1、Flink批处理(DataSet API)- 基础概览和 DataSet API 编程指南
Flink 中的 DataSet 程序是在数据集上实现转换的常规程序(例如,filtering, mapping, joining, grouping)。数据集最初是从某些源创建的(例如,通过读取文件或从本地集合)。结果通过 sink 返回,例如,sink 可以将数据写入(分布式)文件,或者写入标准输出(例如命令行终端)。Flink 程序在各种上下文中运行,独立运行或嵌入到其他程序中。执行可以在本...翻译 2020-01-07 11:56:52 · 1011 阅读 · 0 评论 -
1、Flink Table API & SQL - 开发基础代码样例和maven依赖
目录MAVEN依赖结构Table 程序依赖扩展依赖导览Apache Flink 的 Table API 和 SQL,用于统一的流和批处理。Table API 是一个用于 Scala 和 Java 语言集成查询API,它允许以一种非常直观的方式组合来自关系算子(如选择、筛选和连接)的查询。Flink SQL 基于 Apache Calcite 实现 SQL 标准。无论输入是批输...翻译 2019-10-23 21:22:38 · 7931 阅读 · 0 评论 -
2、Flink Table API & SQL - 概念和通用API
Table API 和 SQL 集成在一个 API 中。这个 API 用作查询、输入和输出的表。本文档展示了带有 Table API 和 SQL 查询的程序的公共结构、如何注册表、如何查询表以及如何写入表。目录两个Planner之间的主要区别Table API and SQL的结构创建一个TableEnvironment在 Calalog 中注册表注册 Table注册 ...翻译 2019-09-23 19:21:17 · 3231 阅读 · 0 评论 -
Flink 的库(Libraries) 之 FlinkCEP - Flink的复杂事件处理
目录入门指南Pattern API单个模式Quantifiers条件组合模式循环模式中的连续性模式组匹配后跳过策略检测模式从模式选择处理超时的部分模式简单的APICEP library 中的时间Event Time处理迟到的数据时间ContextExamples从较老的Flink版本迁移(1.3之前)迁移到1.4 +...翻译 2019-10-10 16:43:12 · 1802 阅读 · 0 评论 -
Flink基础 之 单节点集群搭建(Standalone Cluster)
前提软件前提Flink 运行在所有类 unix 环境上,例如 Linux、Mac OS X 和 Cygwin(适用于Windows),并期望集群由一个主节点和一个或多个工作节点组成。在开始安装系统前,请先在每个节点安装以下软件:Java1.8或更高版本 ssh在所有集群节点上使用 ssh 免密登录和相同的目录结构将使用脚本控制一切。JAVA_HOME配置Flink 要求在主...翻译 2019-09-18 08:47:54 · 2221 阅读 · 0 评论 -
Flink基础 之 本地搭建教程
下载启动FlinkFlink 运行在 Linux、Mac OS X 和 Windows 上。要能够运行 Flink,唯一的要求是拥有一个可以工作的 Java 8.x 安装。Windows 用户,请看Flink on Windows 指南,它描述了如何在 Windows 上运行 Flink 进行本地设置。使用 java -version 查看 java 版本。下载并解压从下载页面下...翻译 2019-09-13 18:19:10 · 353 阅读 · 0 评论 -
5.3、Flink流处理(Stream API)- Connector(连接器) 之 Apache Kafka Connector
目录安装KafkaKafka 1.0.0+ Connector兼容性从0.11迁移到通用的 Kafka Connector上用法Kafka Consumer反序列化类DeserializationSchema消费者开始消费位置配置Kafka 消费和容错Kafka消费者主题及Partition DiscoveryPartition discovery...翻译 2019-09-08 21:54:55 · 2891 阅读 · 0 评论 -
13.1、Flink Table API & SQL - Hive之hive概览
Apache Hive已经成为数据仓库生态系统的焦点。它不仅是一个用于大数据分析和ETL的SQL引擎,也是一个数据管理平台,在这里数据被发现、定义和发展。Flink提供了与Hive的双重集成。第一种方法是利用Hive的Metastore作为一个持久目录,在会话之间存储Flink特定的元数据。第二个是提供Flink作为读取和写入Hive表的替代引擎。hive目录被设计为与现有hive安装兼容...翻译 2019-08-25 18:13:58 · 3401 阅读 · 0 评论 -
4、Flink 集群部署(Deployment & Operations)- Configuration(Flink配置项)
对于单节点设置,Flink已经准备好开箱即用,不需要更改默认配置即可启动。本文针对于Flink集群和与其他组件的配置项。在conf/flink-conf.yaml配置里可以通过修改env.java.home来更改jdk。此页面列出了设置性能良好(分布式)安装通常需要的最常见选项。所有配置项都在conf/flink-conf.yaml这个配置温江当中。系统和运行脚本在启动时解析配置。...翻译 2019-08-23 09:10:43 · 3582 阅读 · 0 评论 -
Flink基础之API,DataSet、DataStream、批、流
目录DataSet 和DataStreamAnatomy of a Flink Program(剖析Flink程序)Lazy Evaluation(延迟计算)Specifying Keys(指定的键)Specifying Transformation Functions(指定转换功能)Supported Data Types(支持的数据类型)Java Tuples an...翻译 2019-08-19 16:08:37 · 2019 阅读 · 0 评论 -
Flink基础之配置Maven依赖、连接、库
目录核心依赖和应用程序依赖项目配置基础Maven依赖添加Connector和库 依赖Scala版本Hadoop依赖附录:用于构建具有依赖项的Jar的模板使用Flink所需要的基础maven依赖包,还有一些数据来源的驱动,如Kafka Connector,还有保证Flink应用程序运行的Flink运行库。核心依赖和应用程序依赖Flink Core Dependen...翻译 2019-08-15 15:01:29 · 12887 阅读 · 1 评论 -
4.1、Flink流处理(Stream API)- Operators(操作数据流)
目录DataStream Transformations(流数据转换)物理分区任务链接和资源组Operators将一个或多个数据流转换为一个新的数据流。程序可以将多个转换组合成复杂的数据流拓扑。描述基本转换、应用这些转换之后的有效物理分区以及对Flink操作符链接的理解。DataStream Transformations(流数据转换) 转换方法 ...翻译 2019-08-21 09:02:37 · 1595 阅读 · 0 评论 -
1、Flink流处理(DataStream API)概览(Data Source、Data Sink)
Flink中的DataStream程序是在数据流上实现转换的常规程序(例如,filtering, updating state, defining windows, aggregating)。数据流最初是由不同的源创建的(例如,message queues, socket streams, files)。结果通过接收器返回,例如,接收器可以将数据写入文件或标准输出(例如the command li...翻译 2019-08-20 09:11:03 · 1374 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: org/apache/flink/api/java/io/XXX
缺少maven依赖包,以下给出一个通用的导包方法:缺哪个类,就在这搜哪个类,点击add自动添加maven依赖如果还不行的话,就要考虑maven依赖的编译范围了,如下...原创 2019-08-04 20:05:03 · 9910 阅读 · 0 评论 -
阿里云实时计算沙龙参后感,全程都很认真的在听,还是有一部分没太理解,哈哈哈~~
6月30号下午,恒通国际C8(798北边的一个创新园),迟到了十几分钟,大太阳有点晒 阿里云有关实时计算的沙龙,也就是阿里云产品的介绍和宣传(理解的有点露骨,虽然目前我还没有用到阿里的云产品,但是光是看着就觉得很好,至少对于我这样的实时计算小白来说)这个活动有4个Topic:《Flink在人脸识别实时业务中的应用》 人脸识别相关技术在工作中我还没有...原创 2019-06-30 20:01:44 · 445 阅读 · 0 评论 -
13.2、Flink Table API & SQL - Hive 之 读写Hive表
使用HiveCatalog和Flink到Hive的连接器,Flink可以读写Hive数据,作为Hive批处理引擎的替代。一定要按照说明在应用程序中包含正确的依赖项(见Flink Table API & SQL - Hive之hive概览)。读表假设Hive在其默认数据库中包含一个表,名为people,其中包含几行。hive> show databases;OKdef...翻译 2019-08-26 12:51:30 · 2804 阅读 · 0 评论 -
3.1、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)
有状态函数和操作符在各个元素/事件的处理过程中存储数据,使得状态成为任何类型的更复杂操作的关键构建块。使用案例:当应用程序搜索某些事件模式时,状态将存储到目前为止遇到的事件序列。 当以每分钟/小时/天的速度聚合事件时,状态将保存挂起的聚合。 当在数据流上训练机器学习模型时,状态保存模型参数的当前版本。 当需要管理历史数据时,状态允许有效地访问过去发生的事件。Flink需要了解状态,...翻译 2019-10-23 21:09:29 · 209 阅读 · 0 评论 -
Flink 集群部署 之 YARN配置(YARN Setup)
目录快速开始在YARN上启用一个长连接Flink集群在YARN上运行一个Flink任务Flink YARN Session启动Flink Session提交Job到Flink提交一个Flink job到YARNUser jars & ClasspathYARN上Flink任务的恢复行为Debugging一个失败的YARN session日志文件...翻译 2019-09-11 20:11:15 · 8212 阅读 · 0 评论 -
3.5、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错) 之 Queryable State Beta(可查询状态)
目录状态结构Activating Queryable State(激活可查询状态)Making State Queryable(配置状态查询)Queryable State StreamManaged Keyed StateQuerying StateExampleConfigurationState ServerProxy局限性Note:用于 q...翻译 2019-09-20 17:05:17 · 725 阅读 · 0 评论 -
3.2、Flink流处理(Stream API)- State & Fault Tolerance(状态和容错)之 State的工作原理
目录Keyed State and Operator State(两种基本State)Raw and Managed State(两个基本状态的存在形式)Using Managed Keyed State(如何使用)状态有效期(TTL)使用Managed Operator StateStateful Source Functions(带状态的Source Functions...翻译 2019-08-29 19:44:00 · 962 阅读 · 0 评论 -
Flink部署和操作 之 Scala解释器(Scala Shell)
Flink附带了一个集成的交互式Scala Shell。它既可以用于本地设置,也可以用于集群设置。使用shell操作,只需要执行:bin/start-scala-shell.sh local在二进制Flink目录的根目录中。要在集群上运行Shell,请参阅下面的安装部分。用法shell支持DataSet、DataStream、Table API和SQL。启动后,四个不同的环境...翻译 2019-08-26 18:42:00 · 682 阅读 · 0 评论 -
13.4、Flink Table API & SQL - Hive 之 在scala shell中使用Hive连接器
Flink Scala Shell是尝试Flink的一种方便快捷的方法。您也可以在scala shell中使用hive,而不是在pom文件中指定hive依赖项,而是打包您的程序并通过flink run命令提交它。为了在scala shell中使用hive连接器,您需要将以下hive连接器依赖项放在flink dist的lib文件夹下。flink-connector-hive_{scala_ve...翻译 2019-08-26 18:41:46 · 639 阅读 · 0 评论 -
13.3、Flink Table API & SQL - Hive 之 Hive函数
用户自定义函数用户可以在Flink中使用他们现有的Hive用户定义函数。支持的UDF函数包括以下:UDF GenericUDF GenericUDTF UDAF GenericUDAFResolver2通过查询计划和执行,Hive的UDF和GenericUDF被自动转换为Flink的ScalarFunction, Hive的GenericUDTF被自动转换为Flink的Tab...翻译 2019-08-26 13:27:11 · 717 阅读 · 0 评论 -
11、Flink Table API & SQL - Catalogs(使用概览和样例)
Catalogs提供了元数据,例如数据库、表、分区、视图、函数和访问存储在数据库或其他外部系统中的数据所需的信息。数据处理最重要的方面之一是管理元数据。它可以是临时表之类的临时元数据,也可以是针对表环境注册的UDF函数。或者永久的元数据,比如Hive中的元数据。Catalogs提供了一个统一的API来管理元数据,并可以通过表API和SQL查询。Catalog TypesGenericI...翻译 2019-08-26 12:50:23 · 6441 阅读 · 0 评论 -
Flink内部架构(Internals)- Component Stack(基础组件架构)
作为一个流批一体架构,Flink是一个分层的系统。堆栈的不同层相互构建,并提高它们接受的程序表示的抽象级别:runtime 以 JobGraph 的形式接收处理程序。JobGraph 是一个公用的数据流载体,有生产和消费数据流的任务。 DataStream API 和 DataSet API 都通过单独的编译生成JobGraphs,DataSet API 使用优化器来确定程序的最佳计划,而...翻译 2019-10-15 09:01:43 · 252 阅读 · 0 评论
分享