Apache Flink

Apache Flink 是什么?

↘锁芯ラ 提交于 2020-08-13 07:01:56
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 接下来,我们来介绍一下 Flink 架构中的重要方面。 处理无界和有界数据 任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。 数据可以被作为 无界 或者 有界 流来处理。 1. 无界流 有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。 2. 有界流 有定义流的开始, 来源: oschina 链接: https://my.oschina.net/u/4287583/blog/4332206

JAVA各种OOM代码样例及解决方法

∥☆過路亽.° 提交于 2020-08-13 03:18:47
  周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法。   我们把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法。   1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。   2. 栈溢出-java.lang.OutOfMemorryError。   3. 栈溢出-java.lang.StackOverFlowError。   4. 元信息溢出-java.lang.OutOfMemoryError: Metaspace。   5. 直接内存溢出-java.lang.OutOfMemoryError: Direct buffer memory。   6. GC超限-java.lang.OutOfMemoryError: GC overhead limit exceeded。   第一种,堆溢出异常,相信大家很常见。即堆内对象不能进行回收了,堆内存持续增大,这样达到了堆内存的最大值,数据满了,所以就出来了。我们直接放溢出的代码样例。我们需要设置好idea的VM Options: -Xmx100m,这样我们设置为最大堆内存,这样运行起来就很快就出来错误了。 package oom; import java.util.ArrayList; import

终于要跟大家见面了,Flink 面试指南

假如想象 提交于 2020-08-13 02:17:29
面试,一个令人大多数同学头疼的问题,要么成功进入心仪公司,要么沮丧与其失之交臂。但是,如果能在面试前就能知道面试官将会问的问题,然后可以好好提前准备,这种感觉是不是特别棒? 之前社区帮大家汇总了目前 15 家重量级公司的招聘需求更新在社区招聘帖,也收到了很多同学的反馈: “ 投了一堆简历,但是都没面试机会 ” “ 面试官说是想招高阶人才 ” “**哎,感觉像我这种毕业年限短, 公司又是小公司,本科也不太好的,找工作太难了**” 最后只能总结: “ 我不优秀,我连面试机会都没有 ” 也太南南南了! 那么究竟怎么积累技术实力,成为 Flink 高级开发,拿下心仪公司的 offer 呢?小松鼠征集了 Flink 用人主管的核心诉求并提供一份超级清晰、实用的学习路径。虽然我们都不会读心术,但破解面试难题也有思路可寻! Tips: 2020 Flink 最新招聘信息查看请见下方链接,内推或有招聘需求的公司可联系小松鼠(微信ID:Ververica2019)投递 JD~ 2020 最新 Flink 招聘岗位汇总: https://juejin.im/post/5df9e25fe51d4557f5450274 01 了解用人主管的需求 在收集招聘信息时小松鼠了解到用人主管的核心需求以及面试了部分同学之后的感受,总结下来主要分为以下方面: 经验都偏少,缺乏 复杂场景的历练 在用 Flink

Java字节码的一段旅行经历——提升硬实力1

拈花ヽ惹草 提交于 2020-08-12 18:09:55
字节码指令 1.1 什么是字节码 字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。 字节 是电脑里的数据量单位。 1.2 javap 工具 自己分析类文件(字节码)太麻烦了,Oracle提供了javap工具来反编译class文件 javap -v HelloWorld.class /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/bin/javap -v com.jvm.t07_bytecode.T01_HelloWorld Classfile /Users/lei/IdeaProjects/JvmLearn/target/classes/com/jvm/t07_bytecode/T01_HelloWorld.class Last modified 2020-8-10; size 586 bytes MD5 checksum 916c3ebdbfef6b6fab63cac6a085aaa1 Compiled from "T01_HelloWorld.java" public class com.jvm.t07_bytecode.T01_HelloWorld minor version: 0 major version: 52 flags:

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现

断了今生、忘了曾经 提交于 2020-08-12 15:37:47
0x00简介 Apache Flink是近几年大火的数据处理引擎。受到各大厂商的推崇并且已经应用与实际的业务场景中。很多公司在进行选型的时候都会选择Apache Flink作为选型的对象。 Apache Flink能用来做什么? l 实时推荐系统 l 实时报表 l 实时数仓与ETL l 复杂事件处理 l 实时欺诈与实时信用评估 l 大数据安全监测 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。 0x01漏洞介绍 ***者可直接在Apache Flink Dashboard页面中上传任意jar包,从而达到远程代码执行的目的 0x02影响范围 至目前Apache Flink 1.9.1版本 0x03环境搭建 ***机kali:192.168.10.147 受害机Ubuntu:192.168.10.176 测试环境:Flink 1.9.1 java8+ Apache Flink 1.9.1安装包下载: <a href=" https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz">https://www.apache.org/dyn

扎心!天天写代码,方向真的对吗?

谁都会走 提交于 2020-08-12 14:05:58
“每个人的时间都是有限的,在有限的时间里选择一项值得投入的技术会变得尤为重要。” 笔者从 2008 年开始工作到现在也有 12 个年头了,一路走来都在和数据打交道,做过很多大数据底层框架内核的开发(Hadoop,Pig,Hive,Tez,Spark),也做过多年上层数据计算框架(Livy, Zeppelin)以及数据应用开发,包括数据处理,数据分析以及机器学习。现在是 Apache Member 以及多个 Apache 项目的 PMC 。2018 年加入阿里巴巴实时计算团队专注在 Flink 的研发。 今天我想结合自己过去的职业经历来聊聊如何评估一项技术是否值得学习。我一直在大数据这个圈子,从最初的 Hadoop 到后来的 Hadoop 生态项目 Pig,Hive,Tez,然后又到新一代的计算引擎 Spark ,再到最近在做的 Flink ,大数据计算引擎贯穿我的整个职业生涯。我个人来说是比较幸运的,在每个阶段都在做比较火的技术,当时更多的是凭着自己的兴趣和直觉在选择技术类型。现在回过头来看我觉得需要从下面 3 个大的纬度来评估一项技术是否值得学习。 1、技术深度 2、生态广度 3、进化能力 01 技术深度 技术深度是指这项技术的根基是否扎实,护城河是否够宽够深,是否很容易被其他技术所替代。通俗的来说就是这项技术是否解决了其他技术所不能解决的有重要价值的问题。这里有两个要点: 1

Flink docker 容器运行环境下不能够从Web UI 查看 Logs 以及Stdout的解决办法

流过昼夜 提交于 2020-08-12 10:15:47
背景 最近业务需要使用Flink, 于是把之前Flink的相关技术拿出来重新回顾一下, 于是想起这个之前一直没有去解决的问题. 本文主要讲解如何解决这一问题以及发生这个问题的根本原因. 运行Flink 官方docker image 此处不多说,访问docker hub flink官方的Image . 选择自己需要版本的flink官方镜像(此处我选的是flink:scala_2.11 因为要使用到scala shell所以选的scala版本不是最新的) 然后按照官方给的docker-compose 文件简单改动一下启动即可 version : "3" services : jobmanager : image : flink : scala_2.11 expose : - "6123" ports : - "8081:8081" command : jobmanager environment : - "JOB_MANAGER_RPC_ADDRESS=jobmanager" taskmanager : image : flink : scala_2.11 expose : - "6121" - "6122" depends_on : - jobmanager command : taskmanager links : - "jobmanager:jobmanager"

Flink Native Kubernetes实战

*爱你&永不变心* 提交于 2020-08-12 02:46:12
回顾Flink Kubernetes Flink Kubernetes与Flink Native Kubernetes是不同的概览,先回顾一下Flink Kubernetes: 如下图,从1.2版本到目前最新的1.10,Flink官方都给出了Kubernetes上部署和运行Flink的方案: 在kubernetes上有两种方式运行flink:session cluster和job cluster,其中session cluster是一套服务可以提交多个任务,而job cluster则是一套服务只对应一个任务; 下图是典型的session cluster部署操作,可见关键是准备好service、deployment等资源的yaml文件,再用kubectl命令创建: 关于Flink Native Kubernetes 先对比官方的1.9和1.10版本文档,如下图和红框和蓝框所示,可见Flink Native Kubernetes是1.10版本才有的新功能: 看看Native Kubernetes是如何运行的,如下图,创建session cluster的命令来自Flink安装包: 更有趣的是,提交任务的命令也来自Flink安装包,就是我们平时提交任务用到flink run命令,如下图: 结合官方给出的提交和部署流程图就更清晰了:kubernetes上部署了Flink Master

借助Docker学习大数据:Flink

假如想象 提交于 2020-08-11 23:40:40
借助Docker学习大数据:Flink 注意:本博文基于WSL2 & Docker,如无法达到实验效果,请注意环境差异。如果你使用的是Ubuntu、虚拟机等方式,注意下文提到的 hostname 。 WSL2安装Docker: https://zhuanlan.zhihu.com/p/163763066 本文注重实验,原理可参考: https://blog.csdn.net/oTengYue/article/details/102689538 一、Flink集群搭建 1.1 镜像下载 首先下载Flink镜像 docker pull flink # 获取镜像 docker images # 查看下载的镜像 1.2 集群搭建 我们可以直接运行 JobManager or TaskManager 方式分别如下: docker run --name flink_jobmanager -d -t flink jobmanager # JobManager docker run --name flink_taskmanager -d -t flink taskmanager # TaskManager 我们这里直接通过 Docker Compose 的方式运行一个集群: docker compose 介绍 首先新建一个文件夹用于存放yml文件。这里我在WSL2的home路径新建一个

CDH6.3.2 集成flink的部署配置

梦想的初衷 提交于 2020-08-11 22:26:48
CDH6.3.2 集成flink的部署配置 标签(空格分隔): 大数据平台构建 一:flink的简介 二:cdh6.3.2 集成flink 一:flink的简介 Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行 在 2019 年 10 月于柏林举行的 Flink Forward 活动上,Cloudera 的工程主管 Marton Balassi 和 Field CTO Andrew Psaltis 在大会上宣布,Cloudera 承诺将通过 CSA 产品不断给 Apache Flink 社区做出贡献。 相信 Cloudera 对 Apache Flink 的集成将会为社区带来更多创新、为企业及开发者提供更便捷的操作与更友好的使用体验 二:CDH6.3.2 集成flink 介绍如何在CDH6.3中安装Flink1.9以及运行你的第一个Flink例子,以下是测试环境信息: 1.CM和CDH版本为6.3.2 2.CentOS7.5x64 3.JDK1.8.0_181 4.集群启用Kerberos 5.root用户安装 flink 的parcels