Apache Flink

实时计算 pv/uv Demo

不羁的心 提交于 2021-01-22 14:13:10
本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。内容将从以下几部分进行: App 计算 pv/uv 场景 实现方案(From Flink-1.11) DDL DML 实操 首先为大家展示一个比较简单的pv/uv场景。以下图所示的APP为例,整个业务构架需要几个入口,包括用户访问入口、作者入口和运营人员入口。在运营人员入口进去可以查看系统的一些指标,比如app 的pv/uv。 在开始介绍如何计算实时pv/uv之前,可以先了解下上图的10个字段和它们对应的含义。通过这些字段可以了解到,用户在APP上的任何一次操作都会在数据库中留下一条对应的记录,所有记录就是该用户在APP上的操作流水。 那么如何实时计算pv/uv呢? 有两种方案。 方案一,MySQL的变更数据同步到Kafka后进行实时计算。由于 Flink在设计之初是具有流表二象性的,所以在 Flink 1.1版本之后,就可以实现 Flink 对 Kafka变更数据的处理了,包括处理一些修改、删除等操作。处理后的结果会放到阿里云Hologress里,方便用户进行大数据查询和分析。 方案二,从上图可以看到方案一比方案二只多了一个Kafka,在 Flink 1.11 版本之后,可以直接通过Debezium连接MySQL,然后经过Flink 实时计算

【源码解读】Flink-Kafka连接器自定义序列器和分区器

不打扰是莪最后的温柔 提交于 2021-01-22 12:10:38
目录 开篇导语 序列化器 分区器 Flink中的Kafka序列化器 源码解读 自定义序列化器示例 Flink中的Kafka分区器 源码解读 自定义分区器示例 结束语 开篇导语 Flink将数据sink至Kafka的过程中,在初始化生产者对象FlinkKafkaProducer时通常会采用默认的分区器和序列化器,这样数据只会发送至指定Topic的某一个分区中。对于存在多分区的Topic我们一般要自定义分区器和序列化器,指定数据发送至不同分区的逻辑。 此篇博客所涉及的组件版本 Flink:1.10.0 Kafka:2.3.0 序列化器 在Kafka生产者将数据写入至Kafka集群中时,为了能够在网络中传输数据对象,需要先将数据进行序列化处理,对于初学者来说,在初始化生产者对象时,一般都会采用默认的序列化器。 默认的序列化器不会对数据进行任何操作,也不会生成key。如果我们需要指定数据的key或者在数据发送前进行一些定制化的操作,那么我们就需要自定义序列化器,并且在初始化生产者对象时指定我们自己的序列化器。 分区器 对于Kakfa中一个topic存在多个分区的情况下,我们怎么知道发送的数据会被分配到哪个分区呢,这时候就要通过分区器来进行区分。 在Kafka中,主要有以下四种数据分区策略 第一种分区策略:给定了分区号,直接将数据发送到指定的分区里面去 第二种分区策略:没有给定分区号

如何将实时计算 Flink 与自身环境打通

若如初见. 提交于 2021-01-21 12:44:56
简介: 如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 客训练营产品、技术专家齐上阵,从 Flink的发展、 Flink 的技术原理、应用场景及行业案例,到开源Flink功能介绍和实时计算 Flink 优势详解,现场实操,9天即可上手! 本篇内容将介绍如何实时计算 Flink 与自身环境打通。 一、运行作业的Jar如何存储在OSS上 在VVP平台有两种方法可以上传作业的jar。 方法一 ,借助VVP提供的资源上传功能,可以直接使用这个功能对Jar进行上传目前该功能支持200兆以内的Jar包上传。使用时,直接在创建作业的时候选择上传的jar包就可以了,演示如下: ● 进入到VVP平台,点击左侧资源上传功能,然后在打开页面点击右上角的上传资源,选择要上传的Jar包,完成上传; ● 上传成功后,点击左侧创建作业,完善作业名等信息。在Jar URI栏,下拉选择刚刚上传的Jar包,点击确定完成创建作业,然后启动即可使用。 方法二 ,直接在OSS的控制台上面,将要使用的Jar上传上去,然后使用OSS是提供的Jar链接来行使用。使用的时候也比较简单,直接使用OSS提供的Jar链接,演示如下: ● 打开OSS控制台,选择在创建VVP时候使用的Bucket,再选择目录,点击上传文件,上传时可以将它的权限设置为公共读,点击上传文件即完成; ● 使用时

如何迁移 Flink 任务到实时计算

杀马特。学长 韩版系。学妹 提交于 2021-01-21 11:20:05
本文由阿里巴巴技术专家景丽宁(砚田)分享,主要介绍如何迁移Flink任务到实时计算 Flink 中来。内容主要分为以下几部分: 如何迁移 多 jar 配置文件 state 复用 通常用户在线下主要使用 Flink run,这会造成一些问题,比如:同一个配置因版本而变化;无法快速切换不同版本;无法从之前的作业恢复。 那么如何从线下迁移到线上呢?本文将通过下面四部分来向大家介绍。 一、如何迁移:从 Flink run 到流计算平台 如下图的线下命令如何迁移到线上。首先打开 VVP UI,添加基础配置,主要包括:作业名称、Jar URI、一些主要参数和并行度。还可以点击高级配置,配置更多信息。 比如高级配置里的行为配置,分为三部分:升级策略、初始状态和恢复策略。升级策略一般选择Stateless,初始状态选择Running,恢复策略选择Latest State。 升级策略选择Stateless,表示针对已经在运行的作业,编辑并保存配置后,会直接把原作业停掉,然后重新启动一个更新的作业;选择Stateble,针对正在运行的作业做配置编辑并保存的话,作业会先做一次Savepoint,然后加载新的配置并使用该 Savepoint启动新的作业。 恢复策略选择LatestSavepoint,是指作业在暂停情况下,如果再启动,将使用最新的Savepoint启动。 上面介绍的是 Flink

Kafka底层原理剖析(近万字建议收藏)

走远了吗. 提交于 2021-01-18 23:32:07
Kafka 简介 Apache Kafka 是一个分布式发布-订阅消息系统。是大数据领域消息队列中唯一的王者。最初由 linkedin 公司使用 scala 语言开发,在2010年贡献给了Apache基金会并成为顶级开源项目。至今已有十余年,仍然是大数据领域不可或缺的并且是越来越重要的一个组件。 Kafka 适合离线和在线消息,消息保留在磁盘上,并在集群内复制以防止数据丢失。kafka构建在zookeeper同步服务之上。它与 Flink 和 Spark 有非常好的集成,应用于实时流式数据分析。 Kafka特点: 可靠性:具有副本及容错机制。 可扩展性:kafka无需停机即可扩展节点及节点上线。 持久性:数据存储到磁盘上,持久性保存。 性能:kafka具有高吞吐量。达到TB级的数据,也有非常稳定的性能。 速度快:顺序写入和零拷贝技术使得kafka延迟控制在毫秒级。 Kafka 底层原理 先看下 Kafka 系统的架构 Kafka 架构 kafka支持消息持久化,消费端是主动拉取数据,消费状态和订阅关系由客户端负责维护, 消息消费完后,不会立即删除,会保留历史消息 。因此支持多订阅时,消息只会存储一份就可以。 broker :kafka集群中包含一个或者多个服务实例(节点),这种服务实例被称为broker(一个broker就是一个节点/一个服务器); topic

Recap | TGIP-001: Pulsar Basics

♀尐吖头ヾ 提交于 2021-01-15 06:55:08
🎙️阅读本文需 8 分钟 上周日(2 月 9 日),Pulsar 开启了 2020 年度第一次直播,也是小 Pu 成长路上的第一次线上直播,我们在 zoom 和 B 站同时进行了直播,也有很多朋友发弹幕和留言给我们,感谢各位的捧场! Pulsar 的第一场线上直播,请来了 StreamNative 的 CEO 郭斯杰大佬,为我们带来了一场关于 「Pulsar Basics」 的分享。 在正式进入内容前,郭斯杰也为大家介绍了什么是 TGIP (Thank God It's Pulsar), 类似可以参考 👇🏻Thank God It's Friday。 https://en.wikipedia.org/wiki/Thank_God_It%27s_Friday 同时更新了 Pulsar 的近况,主要是以下两个: Namespace level offloader https://github.com/apache/pulsar/pull/6183 Supports evenly distribute topics count when splits bundle https://github.com/apache/pulsar/pull/6241 后续大家还想了解关于 Pulsar 的任何问题,都可以去下边这个 repo 下提 issue,没准哪天你的提问就扩展为一期专门的直播啦! 🙋

Apache Flink 零基础入门(二十)Flink connector

£可爱£侵袭症+ 提交于 2021-01-14 03:55:05
内置source和sink 内置source包括从文件读取,从文件夹读取,从socket中读取、从集合或者迭代器中读取。内置的sink包括写文件、控制台输出、socket 内置connectors Apache Kafka (source/sink) Apache Cassandra (sink) Amazon Kinesis Streams (source/sink) Elasticsearch (sink) Hadoop FileSystem (sink) RabbitMQ (source/sink) Apache NiFi (source/sink) Twitter Streaming API (source) HDFS Connector 这个connector提供了一个sink,可以写分区到任何一个文件系统(只要支持hadoop filesystem就可以)。 来源: oschina 链接: https://my.oschina.net/u/946962/blog/3106670

小红书推荐大数据在阿里云上的实践

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-13 07:53:29
简介: 本篇内容主要分三个部分,在第一部分讲一下实时计算在推荐业务中的使用场景。第二部分讲一下小红书是怎么使用Flink的一些新的功能。第三部分主要是讲一些OLAP的实时分析的场景,以及和阿里云MC-Hologres的合作。 作者:小红书推荐工程负责人 郭一 小红书推荐业务架构 首先这个图上画了一些比较典型的推荐业务,使用大数据的主要模块,其中最左边是线上推荐引擎,一般推荐引擎会分成召回、排序、后排等几步,在这里就不细说了。主要是从大数据的角度来说,推荐引擎主要是运用预测模型来预估用户对每个候选笔记的喜欢程度。根据一定的策略来决定给用户推荐哪些笔记。推荐模型在运用时需要抓取笔记特征,这些特征又会回流到我们的训练数据中,来训练新的模型。推荐引擎返回笔记之后,用户对笔记的消费行为,包括展示、点击、点赞等行为,会形成用户的行为流。这些用户行为流结合了特征流,从而产生了模型训练的数据来迭代模型。结合用户和笔记的信息之后,就会产生用户和笔记画像和推荐业务所用到的一些分析报表。 经过一年多的改造,小红书在推荐场景中,除了从分析数据到策略这一块,需要人为参与迭代策略之外,其他的模块的更新基本上是做到了实时或近实时的进行。 推荐业务的实时计算应用 这里稍微展开讲一下特征和用户行为的数据回流之后的实时计算,以及我们怎么使用他们产生的数据。在推荐引擎产生特征流的时候,特征流因为量特别大

每日一笑,短腿的痛谁能懂

别等时光非礼了梦想. 提交于 2021-01-12 20:05:09
欢迎分享到朋友圈 原来这就是腿短的痛吗? “我再也不要和腿长的小朋友一起玩了,呜呜…” 超凶小奶狗在线挑衅 “要不是够不着你,你压根不是我对手!” 电视里播放足球比赛 狗子:球呢?明明看到往那边飞了? 同样都是狗,二哈总是格外“优秀” 想知道录像这位现在还好吗? 医院wifi挺快吧? 橘猫:有个 鸡腿?还有这等好事? 怎么就是舔不到,气死本喵啦! 熊猫这放荡不羁的坐姿是怎么回事? “我可是国宝,你们可要好好伺候我” 小主人看到狗狗够不着,主动伸手帮忙 这样有爱心的小朋友太棒啦 柯基“老司机”给大家表演一个倒车入库 前方发现一只萌萌哒的小跟屁虫! 黏人小猫咪太可爱啦 卡娃什么时候才能拥有一只呢? 主人:是谁犯的错?指认“罪犯”奖励火腿肠 “是他是他!” 这就是传说中的猪队友吗? 咦,你这就走了吗! 你确定不点个“ 在看 ”再走吗! ↓ 版权说明:感谢每一位作者的辛苦付出与创作,《数据私房菜》均在文章开头备注了原标题和来源。如转载涉及版权等问题,请发送消息至公号后台与我们联系,我们将在第一时间处理,非常感谢! 推荐阅读: 互联网金融做大数据风控的九种维度 。 网易大数据平台架构实践分享! 什么是网络爬虫?有什么用?怎么爬?终于有人讲明白了 。 什么是理想的数据中台架构,本文告诉你! !! 流计算框架 Flink 与 Storm 的性能对比 。 数据治理怎么做?这篇万字长文终于讲清楚了

Flink实战,APP推广情况分析

拈花ヽ惹草 提交于 2021-01-12 14:42:28
接着 https://blog.51cto.com/mapengfei/2581240 这里用Flink来实现对APP在每个渠道的推广情况包括下载、查看、卸载等等行为的分析 因为之前的文章都是用scala写的,这篇用纯java来实现一波, 分别演示下用aggregate 聚合方式和process 方式的实现和效果 整体思路 1、准备好数据源: 这里用SimulatedSource 来自己随机造一批数据 2、准备数据输入样例 `MarketUserBehavior` 和输出样例`MarketViewCountResult` 3、准备环境并设置watermark时间,和指定事件时间字段为timestamp 4、进行过滤:uninstall 的行为过滤掉(根据实际情况来改) 5、根据行为和渠道进行KeyBy统计 6、设置滑动窗口1小时,每10s输出一次 7、进行聚合输出 /** * @author mafei * @date 2021/1/9 */ package com.mafei.market; import cn.hutool.core.util.RandomUtil; import org.apache.flink.api.common.functions.AggregateFunction; import org.apache.flink.api.common