flink

Flink的流连接器(Streaming Connectors)

☆樱花仙子☆ 提交于 2020-03-01 13:17:28
预定义的Sources 和 Sinks 一些基本的数据sources 和 sinks 作为Flink的一部分,总是可用。预定义的数据源包括从文件中读取、从目录中读取、从套接字中读取以及从集合和迭代中获取,预定义的数据sink支持写到文件中,作为标准输出或者标准错误输出以及写到套接字中。 捆绑的连接器(Boundled Connectors) 这些连接器提供与第三方系统接口的代码,目前这些连接器包括: Apache Kafka (Source/Sink) Apache Cassandra (Source/Sink) Amazon Kinesis Streams (Source/Sink) Elasticsearch (Sink) Hadoop FileSystem (Sink) RabbitMQ (Source/Sink) Apache NiFi (Source/Sink) Twitter Streaming API (Source) 请记住,要在应用程序中使用这些连接器之一,通常需要额外的第三方组件,例如数据存储服务或者消息队列。还需要注意本节中所列出的流连接器是Flink项目的一部分,包括在发布的源码包中,但是并不包括在二进制发布包中,进一步的说明在相应的章节中。 Apache Bahir中的连接器 另外的Flink 流连接器通过Apache Bahir来发布,包括:

Kafka + Flink 出现异常 java.lang.NoClassDefFoundError: org/apache/flink/streaming/util/serialization/DeserializationSchema

大兔子大兔子 提交于 2020-03-01 01:09:08
我在 IDEA 环境中调试 Kafka+Flink 自己编写的例子时 代码编译都是通过的,但是进行Debug调试时,出现如下异常; java.lang.NoClassDefFoundError: org/apache/flink/streaming/util/serialization/DeserializationSchema at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java

如何构建批流一体数据融合平台的一致性语义保证?

不羁岁月 提交于 2020-02-29 10:17:52
作者:陈肃 整理:周奇,Apache Flink 社区志愿者 本文根据陈肃老师在 Apache Kafka x Flink Meetup 深圳站的分享整理而成,文章首先将从数据融合角度,谈一下 DataPipeline 对批流一体架构的看法,以及如何设计和使用一个基础框架。其次,数据的一致性是进行数据融合时最基础的问题。如果数据无法实现一致,即使同步再快,支持的功能再丰富,都没有意义。 另外,DataPipeline 目前使用的基础框架为 Kafka Connect。为实现一致性的语义保证,我们做了一些额外工作,希望对大家有一定的参考意义。 最后,会提一些我们在应用 Kafka Connect 框架时,遇到的一些现实的工程问题,以及应对方法。尽管大家的场景、环境和数据量级不同,但也有可能会遇到这些问题。希望对大家的工作有所帮助。 一、批流一体架构 批和流是数据融合的两种应用形态 下图来自 Flink 官网。传统的数据融合通常基于批模式。在批的模式下,我们会通过一些周期性运行的 ETL JOB,将数据从关系型数据库、文件存储向下游的目标数据库进行同步,中间可能有各种类型的转换。 另一种是 Data Pipeline 模式。与批模式相比相比, 其最核心的区别是将批量变为实时:输入的数据不再是周期性的去获取,而是源源不断的来自于数据库的日志、消息队列的消息。进而通过一个实时计算引擎

Demo:基于 Flink SQL 构建流式应用

て烟熏妆下的殇ゞ 提交于 2020-02-28 16:12:08
Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性。尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构建流式应用。 本文将基于 Kafka, MySQL, Elasticsearch, Kibana,使用 Flink SQL 构建一个电商用户行为的实时分析应用。本文所有的实战演练都将在 Flink SQL CLI 上执行,全程只涉及 SQL 纯文本,无需一行 Java/Scala 代码,无需安装 IDE。本实战演练的最终效果图: 准备 一台装有 Docker 和 Java8 的 Linux 或 MacOS 计算机。 使用 Docker Compose 启动容器 本实战演示所依赖的组件全都编排到了容器中,因此可以通过 docker-compose 一键启动。你可以通过 wget 命令自动下载该 docker-compose.yml 文件,也可以手动下载。 mkdir flink-demo; cd flink-demo; wget https://raw.githubusercontent.com/wuchong/flink-sql-demo/master/docker-compose.yml 该 Docker Compose 中包含的容器有: DataGen: 数据生成器

比较有前景和新的开源大数据技术分享给你

大憨熊 提交于 2020-02-28 05:21:02
在实现企业背景调查平台的过程中,除了Spark,我们使用了很多开源组件:Flume、canal、HBase、Neo4j等。这些优秀的开源组件使得工程师拥有了更多可能。在大数据领域,开源软件更是最主要的力量。本节将介绍一些比较有前景和新的开源大数据技术。 16.3.1 Apache Flink 不同于大多数起源于硅谷的大数据开源项目,Flink起源于2010年几个德国柏林的大学和研究机构的研究项目,最初项目名是StratoSphere,2014年5月加入Apache软件基金会,改名Flink,并于当年年底从孵化器毕业成为Apache顶级项目。自从加入了Apache,Flink发展速度非常迅猛,截至目前已经有500余名贡献者。如今,每年4月,Flink的技术盛会Flink Summit也会在旧金山如期举行。 与Spark不同,Flink诞生较晚,但具有很强的后发优势,尤其是在流处理方面。另外,Flink也用Table API统一了流和批的处理方式,这点与Spark的DataFrame API类似,但是比Structured Streaming要早。图16-6是Flink的架构图,FlinkML是Flink的机器学习库,Gelly是图处理框架。 图16-6 Flink架构 如图16-6所示,可以看到在Flink中流处理和批处理底层处理引擎是通用的。总的来说

Flink1.9重大改进和新功能

回眸只為那壹抹淺笑 提交于 2020-02-28 00:25:01
Flink1.9重大改进和新功能 二、重构 Flink WebUI Flink社区讨论了现代化 Flink WebUI 的提案,决定采用 Angular 的最新稳定版来重构这个组件。从Angular 1.x 跃升到了 7.x 。重新设计的 UI 是 1.9.0 的默认UI,不过有一个按钮可以切换到旧版的WebUI。 点击上图所示按钮可切换至旧版Web UI: 新版更加漂亮,性能方面也表现更好。 注意:未来,新版UI不保证跟旧版 WebUI 的功能是对齐的,且待新版本稳定后将会完全移除旧版WebUI。 三、架构改动 F link老架构 及存在的问题 Flink设计理念与当前架构 Flink的设计理念如下图: 存在的问题 (1)从 Flink用户角度 1)开发的时候需要在两个底层API中进行选择 2)不同的语义、不同的connector支持、不同的错误恢复策略… 3)Table API也会受不同的底层API、不同的connector等问题的影响 (2)从 Flink开发者角度 1)不同的翻译流程,不同的算子实现、不同的Task执行… 2)代码难以复用 3)两条独立的技术栈需要更多人力功能开发变慢、性能提升变难,bug变多 F link 新架构 既然批是流的一个特例,是否可以。。。?一个大胆的想法(流批统一): Blink本身就在做去DataSet的工作,在 Blink 捐赠给

如何分析及处理 Flink 反压?

雨燕双飞 提交于 2020-02-27 18:23:54
如何分析及处理 Flink 反压? 反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题。反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速。由于实时计算应用通常使用消息队列来进行生产端和消费端的解耦,消费端数据源是 pull-based 的,所以反压通常是从某个节点传导至数据源并降低数据源(比如 Kafka consumer)的摄入速率。 关于 Flink 的反压机制,网上已经有不少博客介绍,中文博客推荐这两篇1。简单来说,Flink 拓扑中每个节点(Task)间的数据都以阻塞队列的方式传输,下游来不及消费导致队列被占满后,上游的生产也会被阻塞,最终导致数据源的摄入被阻塞。而本文将着重结合官方的博客[4]分享笔者在实践中分析和处理 Flink 反压的经验。 反压的影响 反压并不会直接影响作业的可用性,它表明作业处于亚健康的状态,有潜在的性能瓶颈并可能导致更大的数据处理延迟。通常来说,对于一些对延迟要求不太高或者数据量比较小的应用来说,反压的影响可能并不明显,然而对于规模比较大的 Flink 作业来说反压可能会导致严重的问题。 这是因为 Flink 的 checkpoint 机制,反压还会影响到两项指标: checkpoint 时长和 state 大小。 前者是因为 checkpoint barrier

使用Docker搭建Flink集群

你说的曾经没有我的故事 提交于 2020-02-27 15:12:55
文章目录 前言 方式一:使用docker命令进行构建 方式二:使用docker-compose进行构建 如何查看Flink集群和日志 通过web查看集群 查看日志命令 答疑解惑 前言 最近接触了一下docker,想搭个Flink集群玩一玩,在网上搜了一下,发现挺多都是从Dockerfile开始构建的,然后我在官网上看了一下,发现有使用Docker进行搭建的教程。我参考官网的方式,在 Linux环境 下进行构建,顺便记录一下我踩过的坑。 主要有两种方式进行构建,分别是 使用docker命令进行构建 和 使用docker-compose进行构建 ,在进行操作之前,我已经安装好了docker, 安装docker并且给docker换国内源 的教程这里就不在赘述了,可以在网上搜索 方式一:使用docker命令进行构建 创建网络 docker network create app-tier --bridge 创建jobmanager容器 docker run -t -d --name jmr \ --network app-tier \ -e JOB_MANAGER_RPC_ADDRESS = jmr \ -p 8081:8081 \ flink:1.9.2-scala_2.12 jobmanager 创建taskmanager容器 docker run -t -d --name tmr \

如果你在准备面试,就好好看看这130道题

我的未来我决定 提交于 2020-02-27 05:01:02
这些题目是一个知识星球的球友发给我的,其中有几个题帮着解答了一下。希望对大家有帮助。 如果你不知道如何准备面试,那么看看这个。 年假马上来临,我相信有不少读者都在准备或者考虑面试,无论如何不妨收藏一下。 如果你某个题目不知道答案,那么就去搜一下,如果搜不到,在公众号回复【加群】,可以加到群里寻求小伙伴们的求助。或者扫最下面的二维码加小助手好友并留言,有时间后我会回复你。 顺便多提一句, 计算机基础和语言基础 请大家务必重视,如果你不是计算机专业,那么这些东西都要平时多看看。 这130个题暂时没有答案,很多题目《大数据技术与架构》都发过文章讲解过,需要你自己去准备,去看,去思考,真正理解。不要妄想别人喂给你,毕竟我们是人不是鸭子。 1、HashMap 和 Hashtable 区别 2、Java 垃圾回收机制和生命周期 3、怎么解决 Kafka 数据丢失的问题 4、zookeeper 是如何保证数据一致性的 5、hadoop 和 spark 在处理数据时,处理出现内存溢出的方法有哪些? 6、java 实现快速排序 7、设计微信群发红包数据库表结构(包含表名称、字段名称、类型) 8、如何选型:业务场景、性能要求、维护和扩展性、成本、开源活跃度 9、Spark如何调优 10、Flink和spark的通信框架有什么异同 11、Java的代理 12、Java的内存溢出和内存泄漏 13

Flink

一个人想着一个人 提交于 2020-02-26 14:32:49
Flink运行jar包是报错 查看Flinkweb 日志 造成的原因是 jar里面的flink版本和虚拟机里面的版本不一致造成,把代码里面的Flink版本改成与Flink一直就可以了执行 查看flink版本的命令 flink -v 因为我的flink版本是1.7是老版本 安装包理会自带 相应的hadoop jar包 如果是1.9版本的flink 还需要自己下载hadoop jar包 从 flink官网下载关于hadoop依赖的jar包,hadoop的版本要与集群中hadoop的版本保持一致 成功: 访问flink web localhost:8081 执行脚本: 第二种是在jar包父目录下 希望可以帮到大家!!!一起学习 来源: CSDN 作者: chw65897 链接: https://blog.csdn.net/chw65897/article/details/104515056