Apache Flink

实战 | MySQL Binlog通过Canal同步HDFS

[亡魂溺海] 提交于 2021-02-19 04:02:42
大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 之前 《MySQL Binlog同步HDFS的方案》 介绍性的文章简单介绍了实时同步mysql到hdfs的几种方案,本篇主要记录下利用canal同步mysql到hdfs的具体方案。 本文来自:http://bigdatadecode.club/MysqlToHDFSWithCanal.html canal server 部署 在canal中一个mysql实例对应一个配置文件,配置文件放在conf目录下的一个文件夹中,该文件夹的名字就代表了mysql实例。结构如下 -rwxr-xr-x 1 dc user 2645 Jul 18 14:25 canal.properties -rwxr-xr-x 1 dc user 2521 Jul 17 18:31 canal.properties.bak -rwxr-xr-x 1 dc user 3045 Jul 17 18:31 logback.xml drwxr-xr-x 2 dc user 4096 Jul 17 18:38 spring drwxr-xr-x 2 dc user 4096 Jul 19 11:55 trans1 trans1代表一个mysql实例,该文件夹中有个instance.properties文件

flink-training-course

亡梦爱人 提交于 2021-02-16 23:40:53
flink-training-course [toc] 转载自 https://github.com/flink-china/flink-training-course 大数据领域顶级盛会 Flink Forward Asia 2019 详情🔎 https://dwz.cn/ioH4FiMZ 直击 Flink Forward Berlin 2019 现场回放!精彩 https://www.bilibili.com/video/av71517088/ 课程简介:本系列课程由 Apache Flink Community China 官方出品。旨在为具备一定大数据基础、对Apache Flink感兴趣的同学提供系统性的入门教程,课程路径为“基础篇>>进阶篇>>运维篇>>实战篇>>源码篇”。 「彩蛋」 Apache Flink 中文邮件列表使用方式 视频 S3 实战&运维篇(进行中) 备注:S1 S2 基础篇+进阶篇本页下滑可见 3.1 Flink 反压/延时监控和调参控制 PPT 视频回放 讲师:Rong Rong(Apache Flink Committer,Software Engineer at Uber) 3.2 Metric 指标、监控、报警 PPT 视频回放 讲师:孙梦瑶(美团点评研发工程师) 3.3 如何利用 Flink 和深度学习模型实现垃圾图片分类(Apache

程序员能纯靠技术渡过中年危机吗?

谁都会走 提交于 2021-02-15 06:52:34
震惊!小编今年也29了 今天刷脉脉,有个程序员写道:“今年29了,距离三十岁不到一年,最近经常听到中年危机这个词,难道程序员不能纯靠技术度过中年危机吗?” 一个女程序员前来凑热闹,暴击 今年25,因为是女孩子,做开发,已经感受到了强烈的中年危机 感觉学习的速度永远跟不上技术的发展,看着同龄的其他行业朋友还处于刚刚毕业没几年的职场新人的样子,不禁感叹开发这个职业,经验年限远不如学习能力和创新能力。 但是既然入了这一行,为了不被淘汰,只有不断跳出舒适区,比别人付出更多更多的努力,变得更加优秀才行呢! 其实挺害怕被淘汰的,只能一直这样鼓励自己啦! 啊,当然话是这么说,偶尔也会想什么都不干就静静地躺尸呢(叹气) ——蚂蚁金服高级开发工程师( 女程序员 ) 搞点大厂的大佬评论,大家一起学习一下 --阿里巴巴技术专家 赵某 发言💬 这么说吧,35岁你的技术沉淀比25岁的多多少,你深度很够,但是90%的公司不需要你这么深的技术。 25的要15k就能干活,还能没日没夜的加班,请问你35了想要多少钱,能加班到几点。 当然,10%的职位还是需要资深技术的,只能努力,挤破头进到这10%的职位。 加油… 咪咕实习生(女大佬比较少,挑个实习生) 李女士 发言💬 20岁拼学历,30岁拼经历/阅历,40岁拼人脉。 人到中年的时候,不仅想象力/创造力/学习能力都在下降,更无法和年轻人比勤奋,所以这个问题无关行业

Ambari 2.7.3.0安装新组件

两盒软妹~` 提交于 2021-02-12 06:48:50
Ambari 2.7.3.0安装新组件和之前版本略有不同,本文将简述安装新组件的简单过程。 前提是大家已经安装好Ambari 2.7.3.0 这时候由于有一些组件没有添加,就需要安装新的组件。 首先我们登录到Ambari中。 然后选择左下角 Stack and Versions 在这个页面可以看到我们安装过的服务,我们选择superset Add Service添加服务 这里会显示之前安装的服务,之前安装的是修改不了的,我们选择next进行下一步 这里选择安装在哪台机器,可以根据机器的具体情况进行分配 这一步也是不用修改的: 设置一些属性,主要是密码,密码是必须设置的,设置完才能通过,其他的一些设置可以稍后修改 选择部署,开始进行安装部署 耐心等待安装: 可以点进去查看日志,分为正常的log和错误log,如果报错注意查看错误原因 等待安装成功,如果失败查看log进行解决 完成,提示重启组件 可以看到已经安装并启动成功了,可以进入查看 更多实时计算,Flink,Kafka等相关技术博文,欢迎关注实时流式计算 本文分享自微信公众号 - 实时流式计算(RealtimeBigdata)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina

Superset 0.37 发布——颜值最高的数据可视化平台

痴心易碎 提交于 2021-02-12 03:38:37
Superset 0.37,增加可视化插件,行级权限控制 使用Superset已经有一段时间,其良好的体验与丰富的图表功能节省了大量的时间。但是对于权限,自定义图表,图表下载,报警邮件一直没有很好的支持,大部分公司对于这些功能的实现还是需要大量的二次开发,费时费力。 近日Superset 0.37 正式发布,令人惊喜的是,新功能几乎都是大家期待已久的,而对于Superset的未来也更加的期待了。 下面简单介绍本次的一些主要的更新~ 距离Superset 0.36 的发布已经过了四个多月的时间,但superset的活跃程度一点没有减弱,GitHub的Star已经突破了30k,Superset已经成为数据可视化平台的不二选择。 可视化插件 0.37对Superset可视化代码进行了重构,开发人员现在可以引用图表API来构建自己的可视化插件,无需再去二次开发代码。 除了对现有图表类型(如数据透视表,饼图和过滤器框)进行的其他小改进和错误修复之外,此新体系结构还 使用户能够对数据进行更多处理 。 现在,可以使用任何可用的基于JavaScript的数据可视化库在Superset上创建自定义可视化插件,例如ECharts,AntV,HighCharts,VX,D3。 行级权限控制 构建新的可视化插件显然是很酷,但是对于要成为企业级的任何数据可视化应用程序,它在安全性上都必须坚如磐石。此次的0

一文读懂Flink容错数据流

放肆的年华 提交于 2021-02-11 21:02:59
Flink容错数 据流概念 有状态的函数和操作需要存储计算相关的数据,这使得状态成为复杂计算的关键。在 Flink 中的每一种函数和操作都可以成为有状态的。为了达到很好的容错,Flink 的容错机制持续的记录分布式的数据流的快照。这些快照是非常轻量化的,因此高频的记录快照并不会影响性能。当进程由于机器,网络甚至是软件异常而失败的时候,Flink 会停止数据流。系统重启操作同时将他们恢复到最近的快照点。输入流也会被设置到记录快照点那个时间点,通俗点说就是一条记录不会存在于快照中同时还在数据流中等待被处理。 问题1:哪些函数是有状态的? 问题2:为什快照是非常轻量化的? 问题3:快照如何设置异步的? 问题4:如何在配置中设置多个快照 问题5:快照支持哪几种方式,如何配置 问题6:Checkpoint和Snapshots如何使用 Checkpointing Flink 容错机制的核心就是,记录分布式的数据流和状态的一致性快照。通过这些快照,系统可以从失败中恢复回来 屏障Barriers Flink分布式快照的一个核心元素是流屏障。这些屏障被注入到数据流中,并将记录作为数据流的一部分。障碍永远不会超过记录,它们严格按照顺序流动。一个屏障将数据流中的记录分隔为进入当前快照的记录集和进入下一个快照的记录集。每个屏障都携带快照的ID,快照将快照的记录推到它前面。屏障不会中断流,因此非常轻

Apache Flink

梦想与她 提交于 2021-02-11 20:55:22
Apache Flink提供了一种容错机制,可以持续恢复数据流应用程序的状态。该机制确保即使出现故障,程序的状态最终也会反映来自数据流的每条记录(只有一次)。 从容错和消息处理的语义上(at least once, exactly once),Flink引入了state和checkpoint。 state 一般指一个具体的task/operator的状态。而 checkpoint 则表示了一个Flink Job,在一个特定时刻的一份全局状态快照,即包含了所有task/operator的状态。 Flink通过定期地做checkpoint来实现容错和恢复,容错机制连续绘制了分布式流数据流的快照。对于小状态的流应用程序,这些快照非常轻量级并且可以经常绘制,而不会对性能产生太大的影响。流应用程序的状态存储在一个可配置的地方(例如主节点或HDFS)。 如果出现程序故障(由于机器、网络或软件故障),Flink将停止分布式流数据流。然后系统重新启动操作符并将其重新设置为最新成功的检查点。输入流被重置到状态快照的点。默认情况下,检查点是禁用的。 要使此机制实现其全部的保证,数据流源(如消息队列或代理)需要能够将流倒回到其定义的最近点。Apache Kafka可以做到,而Flink的Kafka连接器可以利用这些。 因为Flink通过分布式检查点实现快照,我们使用快照和检查点互换。

Flink 消息聚合处理方案

风格不统一 提交于 2021-02-06 07:51:50
Flink 消息聚合处理方案 曹富强 / 张颖 Flink 中文社区 微博机器学习平台使用 Flink 实时处理用户行为日志和生成标签,并且在生成标签后写入存储系统。为了降低存储系统的 IO 负载,有批量写入的需求,同时对数据延迟也需要进行一定的控制,因此需要一种有效的消息聚合处理方案。 在本篇文章中我们将详细介绍 Flink 中对消息进行聚合处理的方案,描述不同方案中可能遇到的问题和解决方法,并进行对比。 基于 flatMap 的解决方案 这是我们能够想到最直观的解决方案,即在自定义的 flatMap 方法中对消息进行聚合,伪代码如下: 对应的作业拓扑和运行状态如下: 该方案的优点如下: 逻辑简单直观,各并发间负载均匀。 flatMap 可以和上游算子 chain 到一起,减少网络传输开销。 使用 operator state 完成 checkpoint,支持正常和改并发恢复。 与此同时,由于使用 operator state,因此所有数据都保存在 JVM 堆上,当数据量较大时有 GC/OOM 风险。 使用 Count Window 的解决方案 对于大规模 state 数据,Flink 推荐使用 RocksDB backend,并且只支持在 KeyedStream 上使用。与此同时,KeyedStream 支持通过 Count Window 来实现消息聚合,因此 Count

Flink 系例 之 Connectors 连接 Redis

不羁岁月 提交于 2021-02-06 00:53:17
通过使用Flink DataStream Connectors 数据流连接器连接到Redis缓存数据库,并提供数据流输入与输出操作; 示例环境 java .version : 1 .8 .x flink .version : 1 .11 .1 redis :3.2 示例数据源 (项目码云下载) Flink 系例 之 搭建开发环境与数据 示例模块 (pom.xml) Flink 系例 之 DataStream Connectors 与 示例模块 数据流输入 DataStreamSource.java package com.flink.examples.redis; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.RichSourceFunction; import redis.clients.jedis.Jedis; import redis

Flink实战:写入Kafka自定义序列化类和自定义分区器

落花浮王杯 提交于 2021-02-04 07:35:25
概述: flink kafka实时流计算时都是用默认的序列化和分区器,这篇文章主要介绍如何向Kafka发送消息,并自定义消息的key,value,自定义消息分区类,这里选择最新的Flink1.9.1进行讲解。 自定义序列化类KeyedSerializationSchema: 通常我们都是用默认的序列化类来发送一条消息,有时候我们需要执行发送消息的key,value值,或者解析消息体后,在消息的key或者value加一个固定的前缀,这时候我们就需要自定义他的序列化类,Flink提供了可自定的的序列化基类KeyedSerializationSchema,这里先看下他的源码,: package org .apache .flink .streaming .util .serialization ; import java .io .Serializable ; import org .apache .flink .annotation .PublicEvolving ; /** @deprecated */ @ Deprecated @PublicEvolving public interface KeyedSerializationSchema<T> extends Serializable { byte [] serializeKey ( T var1 ); byte []