Apache Flink

Flink on Yarn运行机制

霸气de小男生 提交于 2019-11-27 06:54:36
Flink on Yarn运行机制 从图中可以看出,Yarn的客户端需要获取hadoop的配置信息,连接Yarn的ResourceManager。所以要有设置有 YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_CONF_PATH,只要设置了其中一个环境变量,就会被读取。如果读取上述的变量失败了,那么将会选择hadoop_home的环境变量,都区成功将会尝试加载$HADOOP_HOME/etc/hadoop的配置文件。 1、当启动一个Flink Yarn会话时,客户端首先会检查本次请求的资源是否足够。资源足够将会上传包含HDFS配置信息和Flink的jar包到HDFS。 2、随后客户端会向Yarn发起请求,启动applicationMaster,随后NodeManager将会加载有配置信息和jar包,一旦完成,ApplicationMaster(AM)便启动。 3、当JobManager and AM 成功启动时,他们都属于同一个container,从而AM就能检索到JobManager的地址。此时会生成新的Flink配置信息以便TaskManagers能够连接到JobManager。同时,AM也提供Flink的WEB接口。用户可并行执行多个Flink会话。 4、随后

《从0到1学习Flink》—— 如何自定义 Data Sink ?

余生颓废 提交于 2019-11-27 04:32:26
前言 前篇文章 《从0到1学习Flink》—— Data Sink 介绍 介绍了 Flink Data Sink,也介绍了 Flink 自带的 Sink,那么如何自定义自己的 Sink 呢?这篇文章将写一个 demo 教大家将从 Kafka Source 的数据 Sink 到 MySQL 中去。 准备工作 我们先来看下 Flink 从 Kafka topic 中获取数据的 demo,首先你需要安装好了 FLink 和 Kafka 。 运行启动 Flink、Zookepeer、Kafka, 好了,都启动了! 数据库建表 1 2 3 4 5 6 7 8 DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(25) COLLATE utf8_bin DEFAULT NULL, `password` varchar(25) COLLATE utf8_bin DEFAULT NULL, `age` int(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8

Flink 源码解析 —— 如何获取 StreamGraph?

守給你的承諾、 提交于 2019-11-27 04:32:13
StreamGraph <!--more--> https://t.zsxq.com/qRFIm6I 博客 1、 Flink 从0到1学习 —— Apache Flink 介绍 2、 Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门 3、 Flink 从0到1学习 —— Flink 配置文件详解 4、 Flink 从0到1学习 —— Data Source 介绍 5、 Flink 从0到1学习 —— 如何自定义 Data Source ? 6、 Flink 从0到1学习 —— Data Sink 介绍 7、 Flink 从0到1学习 —— 如何自定义 Data Sink ? 8、 Flink 从0到1学习 —— Flink Data transformation(转换) 9、 Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows 10、 Flink 从0到1学习 —— Flink 中的几种 Time 详解 11、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch 12、 Flink 从0到1学习 —— Flink 项目如何运行? 13、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka 14、 Flink

Flink 源码解析 —— 深度解析 Flink 是如何管理好内存的?

拈花ヽ惹草 提交于 2019-11-27 01:35:03
前言 如今,许多用于分析大型数据集的开源系统都是用 Java 或者是基于 JVM 的编程语言实现的。最着名的例子是 Apache Hadoop,还有较新的框架,如 Apache Spark、Apache Drill、Apache Flink。基于 JVM 的数据分析引擎面临的一个常见挑战就是如何在内存中存储大量的数据(包括缓存和高效处理)。合理的管理好 JVM 内存可以将 难以配置且不可预测的系统 与 少量配置且稳定运行的系统区分开来。 在这篇文章中,我们将讨论 Apache Flink 如何管理内存,讨论其自定义序列化与反序列化机制,以及它是如何操作二进制数据的。 数据对象直接放在堆内存中 在 JVM 中处理大量数据最直接的方式就是将这些数据做为对象存储在堆内存中,然后直接在内存中操作这些数据,如果想进行排序则就是对对象列表进行排序。然而这种方法有一些明显的缺点,首先,在频繁的创建和销毁大量对象的时候,监视和控制堆内存的使用并不是一件很简单的事情。如果对象分配过多的话,那么会导致内存过度使用,从而触发 OutOfMemoryError,导致 JVM 进程直接被杀死。另一个方面就是因为这些对象大都是生存在新生代,当 JVM 进行垃圾回收时,垃圾收集的开销很容易达到 50% 甚至更多。最后就是 Java 对象具有一定的空间开销(具体取决于 JVM 和平台)。对于具有许多小对象的数据集

Apache Flink 零基础入门(十一)Flink transformation

拟墨画扇 提交于 2019-11-27 00:24:59
前面讲了常用的DataSource的用法,DataSource其实是把数据加载进来,加载进来之后就需要做Transformation操作了。 Data transformations transform one or more DataSets into a new DataSet. Programs can combine multiple transformations into sophisticated assemblies. 数据转化可以将一个或多个DataSets转化到一个新的DataSet。就是一个算法的综合使用。 Map Function Scala 新建一个Object object DataSetTransformationApp { def main(args: Array[String]): Unit = { val environment = ExecutionEnvironment.getExecutionEnvironment } def mapFunction(env: ExecutionEnvironment): Unit = { val data = env.fromCollection(List(1,2,3,4,5,6,7,8,9,10)) } } 这里的数据源是一个1到10的list集合。Map的原理是:假设data数据集中有N个元素

从Storm到Flink,有赞五年实时计算效率提升实践

邮差的信 提交于 2019-11-26 20:10:59
作者:贺飞 导读:有赞是一个商家服务公司,提供全行业全场景的电商解决方案。在有赞,大量的业务场景依赖对实时数据的处理,作为一类基础技术组件,服务着有赞内部几十个业务产品,几百个实时计算任务,其中包括交易数据大屏,商品实时统计分析,日志平台,调用链,风控等多个业务场景,本文将介绍有赞实时计算当前的发展历程和当前的实时计算技术架构。 实时计算在有赞发展 从技术栈的角度,我们的选择和大多数互联网公司一致,从早期的 Storm,到 JStorm, Spark Streaming 和最近兴起的 Flink。从发展阶段来说,主要经历了两个阶段,起步阶段和平台化阶段;下面将按照下图中的时间线,介绍实时计算在有赞的发展历程。 2.1 起步阶段 这里的的起步阶段的基本特征是,缺少整体的实时计算规划,缺乏平台化任务管理,监控,报警工具,用户提交任务直接通过登录 AG 服务器使用命令行命令提交任务到线上集群,很难满足用户对可用性的要求。但是,在起步阶段里积累了内部大量的实时计算场景。 2.1.1 Storm 登场 2014 年初,第一个 Storm 应用在有赞内部开始使用,最初的场景是把实时事件的统计从业务逻辑中解耦出来,Storm 应用通过监听 MySQL 的 binlog 更新事件做实时计算,然后将结果更新到 MySQL 或者 Redis 缓存上,供在线系统使用。类似的场景得到了业务开发的认可

「漏洞预警」Apache Flink 任意 Jar 包上传导致远程代码执行漏洞复现

夙愿已清 提交于 2019-11-26 18:55:14
漏洞描述 Apache Flink是一个用于分布式流和批处理数据的开放源码平台。Flink的核心是一个流数据流引擎,它为数据流上的分布式计算提供数据分发、通信和容错功能。Flink在流引擎之上构建批处理,覆盖本地迭代支持、托管内存和程序优化。近日有安全研究人员发现apache flink允许上传任意的jar包从而导致远程代码执行。 漏洞级别 高危 影响范围 Apache Flink <=1.9.1 漏洞复现 首先下载Apache Flink 1.9.1安装包并进行解压,之后进入bin文件夹内运行./start-cluster.sh启动环境,浏览器访问 http://ip:8081验证是否成功,如下图所示: 接着使用生成jar的木马文件并进行上传,如下图所示: 开启msf进行监听并点击提交,可看到成功返回一个shell。如下图所示: 修复建议 建议用户关注Apache Flink官网,及时获取该漏洞最新补丁。 临时解决建议 设置IP白名单只允许信任的IP访问控制台并添加访问认证。 漏洞检测方法 目前github已有相应公开的检测poc,如下图所示: 链接: https://github.com/LandGrey/flink-unauth-rce ​ 更多Flink相关博文欢迎关注实时流式计算 本文由博客一文多发平台 OpenWrite 发布! 来源: oschina 链接:

Flink 源码解析 —— 项目结构一览

二次信任 提交于 2019-11-26 17:04:56
Flink 源码项目结构一览 <!--more--> https://t.zsxq.com/MNfAYne 博客 1、 Flink 从0到1学习 —— Apache Flink 介绍 2、 Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门 3、 Flink 从0到1学习 —— Flink 配置文件详解 4、 Flink 从0到1学习 —— Data Source 介绍 5、 Flink 从0到1学习 —— 如何自定义 Data Source ? 6、 Flink 从0到1学习 —— Data Sink 介绍 7、 Flink 从0到1学习 —— 如何自定义 Data Sink ? 8、 Flink 从0到1学习 —— Flink Data transformation(转换) 9、 Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows 10、 Flink 从0到1学习 —— Flink 中的几种 Time 详解 11、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch 12、 Flink 从0到1学习 —— Flink 项目如何运行? 13、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka 14、 Flink

Flink 源码解析 —— Flink TaskManager 有什么作用?

半城伤御伤魂 提交于 2019-11-26 17:04:44
TaskManager 有什么作用 <!--more--> https://t.zsxq.com/RZbu7yN 博客 1、 Flink 从0到1学习 —— Apache Flink 介绍 2、 Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门 3、 Flink 从0到1学习 —— Flink 配置文件详解 4、 Flink 从0到1学习 —— Data Source 介绍 5、 Flink 从0到1学习 —— 如何自定义 Data Source ? 6、 Flink 从0到1学习 —— Data Sink 介绍 7、 Flink 从0到1学习 —— 如何自定义 Data Sink ? 8、 Flink 从0到1学习 —— Flink Data transformation(转换) 9、 Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows 10、 Flink 从0到1学习 —— Flink 中的几种 Time 详解 11、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch 12、 Flink 从0到1学习 —— Flink 项目如何运行? 13、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka 14、

Flink 源码解析 —— 分析 Streaming WordCount 程序的执行过程

為{幸葍}努か 提交于 2019-11-26 17:04:30
流处理 WordCount 程序 <!--more--> https://t.zsxq.com/qnMFEUJ 博客 1、 Flink 从0到1学习 —— Apache Flink 介绍 2、 Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门 3、 Flink 从0到1学习 —— Flink 配置文件详解 4、 Flink 从0到1学习 —— Data Source 介绍 5、 Flink 从0到1学习 —— 如何自定义 Data Source ? 6、 Flink 从0到1学习 —— Data Sink 介绍 7、 Flink 从0到1学习 —— 如何自定义 Data Sink ? 8、 Flink 从0到1学习 —— Flink Data transformation(转换) 9、 Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows 10、 Flink 从0到1学习 —— Flink 中的几种 Time 详解 11、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch 12、 Flink 从0到1学习 —— Flink 项目如何运行? 13、 Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka 14、 Flink