自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mischen520的博客

技术成就梦想

  • 博客(77)
  • 资源 (17)
  • 收藏
  • 关注

原创 FlinkCEP开发实战

1.导入pom依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach

2021-06-30 11:04:10 211

原创 Flink CEP应用场景

风险控制对用户异常行为模式进行实时检测,当一个用户发生了不该发生的行为,判定这个用户是不是有违规操作的嫌疑。策略营销用预先定义好的规则对用户的行为轨迹进行实时跟踪,对行为轨迹匹配预定义规则的用户实时发送相应策略的推广。运维监控灵活配置多指标、多依赖来实现更复杂的监控模式。...

2021-06-30 10:39:55 617

原创 什么是FlinkCEP

FlinkCEP(Complex event processing for Flink) 是在Flink实现的复杂事件处理库. 它可以让你在无界流中检测出特定的数据,有机会掌握数据中重要的那部分。是一种基于动态环境中事件流的分析技术,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系制定检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更复杂的复合事件。目标:从有序的简单事件流中发现一些高阶特征 输入:一个或多个由简单事

2021-06-30 10:38:22 167

原创 Flink状态的一致性

当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是"正确性级别"的另一种说法,也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比,前者到底有多正确?举例来说,假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是多少?如果有偏差,是有漏掉的计数还是重复计数?一致性级别在流处理中,一致性可以分为3个级别:at-most-once(最多一次):这其实是没有正确性保障的委婉说法——故障发生之后,计数结果可能丢失。at-least-once

2021-06-30 10:31:05 109

原创 基于埋点日志数据的网络流量统计(网站独立访客数(UV)的统计)

在实际应用中,我们往往还会关注,到底有多少不同的用户访问了网站,所以另外一个统计流量的重要指标是网站的独立访客数(Unique Visitor,UV)1.假设我们已经采集到数据UserBehavior,并将数据放在工程目录input下面,截图如下:文件格式如下:自己可以随便写一个csv文件就行,用excel打开就是每个填充一个,用notepad++打开就是以,分开2.创建bean:package com.mischen.it.entity;import lombok.AllA.

2021-06-30 08:33:35 551

原创 基于埋点日志数据的网络流量统计(网站总浏览量(PV)的统计)

衡量网站流量一个最简单的指标,就是网站的页面浏览量(Page View,PV)。用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计。一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的PV。接下来我们就用咱们之前学习的Flink算子来实现PV的统计1.假设我们已经采集到数据UserBehavior,并将数据放在工程目录input下面,截图如下:文件格式如下:自己可以随便写一个csv文件就行,用.

2021-06-30 08:18:08 903 1

原创 Flink编程(filter编程示例)

作用根据指定的规则将满足条件(true)的数据保留,不满足条件(false)的数据丢弃package com.mischen.it;import org.apache.flink.api.common.functions.FilterFunction;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;im

2021-06-29 10:52:19 509

原创 Flink编程(RichMapFunction)

package com.mischen.it;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.functions.RichMapFunction;import org.apache.flink.configuration.Configuration;import org.apache.flink.streaming.api.environment.StreamE.

2021-06-29 10:29:05 3614

原创 Flink编程(静态内部类)

package com.mischen.it;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;/** * @ClassName Flink01_TransForm_Map_Anonymous * @Description 得到一个新的数据流: 新的流的元素是原来流的元素的平方.

2021-06-29 10:21:00 545

原创 Flink编程(Lambda表达式的运用)

得到一个新的数据流:新的流的元素是原来流的元素的平方package com.mischen.it;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;/** * @ClassName Flink01_TransForm_Map_Anonymous * @Descriptio.

2021-06-29 09:46:42 160

原创 Flink使用MapFunction实现类编程

得到一个新的数据流:新的流的元素是原来流的元素的平方package com.mischen.it;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;/** * @ClassName Flink01_TransForm_Map_Anonymous * @Descriptio.

2021-06-29 09:43:50 1159

原创 Flink从Kafka读取数据

1.添加依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

2021-06-29 09:28:52 204

原创 Flink从Java的集合中读取数据

1.在pom文件中导入依赖包:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.

2021-06-29 09:12:14 425

原创 Flink提交流程

2021-06-29 08:34:11 95

原创 Kafka生产环境性能优化

1)Broker参数配置(server.properties)1、日志保留策略配置# 保留三天,也可以更短 (log.cleaner.delete.retention.ms)log.retention.hours=722、Replica相关配置default.replication.factor:1 默认副本1个3、网络通信延时replica.socket.timeout.ms:30000 #当集群之间网络不稳定时,调大该参数replica.lag.time.max.ms=

2021-06-25 08:22:13 232

原创 Kafka消息数据积压,Kafka消费能力不足怎么处理?

1)如果是Kafka消费能力不足,则可以考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数= 分区数。(两者缺一不可)2)如果是下游的数据处理不及时:提高每批次拉取的数量。批次拉取数据过少(拉取数据/处理时间< 生产速度),使处理的数据小于生产的数据,也会造成数据积压。...

2021-06-25 08:19:30 1122

原创 如何保证Kafka不被重复消费?

幂等性 +ack-1 + 事务Ack = 0,相当于异步发送,消息发送完毕即offset增加,继续生产。Ack = 1,leader收到leader replica 对一个消息的接受ack才增加offset,然后继续生产。Ack = -1,leader收到所有replica 对一个消息的接受ack才增加offset,然后继续生产。Kafka数据重复,可以再下一级:SparkStreaming、redis或者Hive中dwd层去重,去重的手段:分组、按照id开窗只取第一个值;...

2021-06-25 08:16:42 271

原创 Kafka分区分配策略

在Kafka内部存在两种默认的分区分配策略:Range和RoundRobin。Range是默认策略。Range是对每个Topic而言的(即一个Topic一个Topic分),首先对同一个Topic里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者线程将会多消费一个分区。例如:我们有10个分区,两个消费者(C1,C2),3个消费者线程,10 / 3 = 3而且除不尽。..

2021-06-25 08:10:00 443

原创 Kafka的ISR副本同步队列

ISR(In-Sync Replicas),副本同步队列。ISR中包括Leader和Follower。如果Leader进程挂掉,会在ISR队列中选择一个服务作为新的Leader。有replica.lag.max.messages(延迟条数)和replica.lag.time.max.ms(延迟时间)两个参数决定一台服务是否可以加入ISR副本队列,在0.10版本移除了replica.lag.max.messages参数,防止服务频繁的进去队列。任意一个维度超过阈值都会把Follower剔除出ISR,存入O

2021-06-25 08:06:39 1161

原创 Kafka的监控有哪些?

公司自己开发的监控器;开源的监控器:KafkaManager、KafkaMonitor、KafkaEagle

2021-06-25 08:04:15 149

原创 Kafka日志保存时间?

默认保存7天;生产环境建议3天

2021-06-25 08:02:23 881

原创 如何确定Kakfa的分区数?

1)创建一个只有1个分区的topic2)测试这个topic的producer吞吐量和consumer吞吐量。3)假设他们的值分别是Tp和Tc,单位可以是MB/s。4)然后假设总的目标吞吐量是Tt,那么分区数=Tt/min(Tp,Tc)例如:producer吞吐量 =20m/s;consumer吞吐量 =50m/s,期望吞吐量100m/s;分区数 =100 / 20 = 5分区生产环境上,分区数一般设置为:3-10个...

2021-06-25 07:59:39 80

原创 yarn-cluster提交流程per-job

Flink任务提交后,Client向HDFS上传Flink的Jar包和配置 向Yarn ResourceManager提交任务,ResourceManager分配Container资源 通知对应的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的Jar包和配置构建环境,然后启动JobManager ApplicationMaster向ResourceManager申请资源启动TaskManager ResourceManager..

2021-06-23 08:32:08 297

原创 正则匹配身份证号

身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)

2021-06-22 08:04:57 423

原创 什么是数据治理?

包括:数据质量管理、元数据管理、权限管理(rangersentry)。数仓CDH cloudmanager-》sentry; HDP ambari=>ranger数据治理是一个复杂的系统工程,涉及到企业和单位多个领域,既要做好顶层设计,又要解决好统一标准、统一流程、统一管理体系等问题,同时也要解决好数据采集、数据清洗、数据对接和应用集成等相关问题。数据治理实施要点主要包含数据规划、制定数据标准、整理数据、搭建数据管理工具、构建运维体系及推广贯标六大部分,其中数据规划是纲领、制定数据标准..

2021-06-21 20:44:11 2539

原创 Flink CEP 编程中当状态没有到达的时候会将数据保存在哪里?

在流式处理中,CEP 当然是要支持 EventTime 的,那么相对应的也要支持数据的迟到现象,也就是watermark的处理逻辑。CEP对未匹配成功的事件序列的处理,和迟到数据是类似的。在 Flink CEP的处理逻辑中,状态没有满足的和迟到的数据,都会存储在一个Map数据结构中,也就是说,如果我们限定判断事件序列的时长为5分钟,那么内存中就会存储5分钟的数据,这在我看来,也是对内存的极大损伤之一。...

2021-06-21 20:17:09 222

原创 说一下Flink的状态机制

Flink在做计算的过程中经常需要存储中间状态,来避免数据丢失和状态恢复。选择的状态存储策略不同,会影响状态持久化如何和 checkpoint 交互。Flink提供了三种状态存储方式:MemoryStateBackend、FsStateBackend、RocksDBStateBackend。...

2021-06-21 20:09:13 501

原创 Flink的三种时间语义

Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入Flink的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是Processing Time。...

2021-06-21 08:31:04 684

原创 Flink中的并行度

一个特定算子的子任务(subtask)的个数被称之为这个算子的并行度(parallelism),一般情况下,一个流程序的并行度,可以认为就是其所有算子中最大的并行度。一个程序中,不同的算子可能具有不同的并行度。Stream在算子之间传输数据的形式可以是one-to-one(forwarding)的模式也可以是redistributing的模式,具体是哪一种形式,取决于算子的种类。One-to-one:stream(比如在source和map operator之间)维护着分区以及元素的顺序。那意..

2021-06-20 17:02:10 885

原创 Flink运行架构解析

Flink运行时包含2种进程:1个JobManager和至少1个TaskManager严格上说,客户端不是运行和程序执行的一部分,而是用于准备和发送dataflow到JobManager. 然后客户端可以断开与JobManager的连接(detached mode),也可以继续保持与JobManager的连接(attached mode)客户端作为触发执行的java或者scala代码的一部分运行,也可以在命令行运行:bin/flink run ...JobManager控制一个应...

2021-06-20 16:14:35 166

原创 领域驱动设计-业务服务

业务需求分析,通常称为业务服务。业务服务是角色主动地向目标系统发起服务请求,完成一次完整的功能交互,体现了服务价值的行为。角色包括:用户(代表人 )

2021-06-20 14:53:59 119

原创 Flink on Yarn的3种部署模式对比和总结

Flink提供了yarn上运行的3模式,分别为Application Mode, Session-Cluster和Per-Job-Cluster模式。Session-Cluster

2021-06-20 14:32:19 2312 1

原创 深刻理解Flink的有界流和无界流

先来看看有界流的代码:package com.mischen.it;import org.apache.flink.api.common.typeinfo.Types;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.streaming.api.datastream.DataStreamSource;import org.apache.flink.streaming.api.datastream.Key

2021-06-20 10:50:08 1322

原创 Flink编程示例

创建maven项目 POM文件中添加需要的依赖:

2021-06-20 08:53:04 385

原创 Spark 和 Flink的技术选型

Spark 和 Flink 一开始都拥有着同一个梦想,他们都希望能够用同一个技术把流处理和批处理统一起来,但他们走了完全不一样的两条路前者是以批处理的技术为根本,并尝试在批处理之上支持流计算;后者则认为流计算技术是最基本的,在流计算的基础之上支持批处理。正因为这种架构上的不同,今后二者在能做的事情上会有一些细微的区别。比如在低延迟场景,Spark 基于微批处理的方式需要同步会有额外开销,因此无法在延迟上做到极致。在大数据处理的低延迟场景,Flink 已经有非常大的优势。Spark和Flink的主要差别就

2021-06-20 04:54:43 975

原创 什么是事件驱动型应用?

事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。事件驱动型应用是在计算存储分离的传统应用基础上进化而来。在传统架构中,应用需要读写远程事务型数据库。相反,事件驱动型应用是基于状态化流处理来完成。在该设计中,数据和计算不会分离,应用只需访问本地(内存或磁盘)即可获取数据。系统容错性的实现依赖于定期向远程持久化存储写入 checkpoint。下图描述了传统应用和事件驱动型应用架构的区别。...

2021-06-19 06:21:11 1574

原创 Flink的重要特点

事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。比较典型的就是以kafka为代表的消息队列几乎都是事件驱动型应用。(Flink的计算也是事件驱动型)与之不同的就是SparkStreaming微批次,如图:事件驱动型:...

2021-06-19 06:10:20 192

原创 Flink的并行度了解吗?Flink的并行度设置是怎样的?

Flink中的任务被分为多个并行任务来执行,其中每个并行的实例处理一部分数据。这些并行实例的数量被称为并行度。我们在实际生产环境中可以从四个不同层面设置并行度:操作算子层面(Operator Level)执行环境层面(Execution Environment Level)客户端层面(Client Level)系统层面(System Level)需要注意的优先级:算子层面>环境层面>客户端层面>系统层面。...

2021-06-18 01:06:03 560

原创 Flink集群有哪些角色?各自有什么作用?

Flink程序在运行时主要有TaskManager,JobManager,Client三种角色。JobManager扮演着集群中的管理者Master的角色,它是整个集群的协调者,负责接收Flink Job,协调检查点,Failover 故障恢复等,同时管理Flink集群中从节点TaskManager。 TaskManager是实际负责执行计算的Worker,在其上执行Flink Job的一组Task,每个TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源..

2021-06-18 01:02:26 1100

原创 Flink跟Spark Streaming的区别?

Flink 是标准的实时处理引擎,基于事件驱动。而 Spark Streaming 是微批(Micro-Batch)的模型。下面我们就分几个方面介绍两个框架的主要区别:1)架构模型Spark Streaming 在运行时的主要角色包括:Master、Worker、Driver、Executor,Flink 在运行时主要包含:Jobmanager、Taskmanager和Slot。2)任务调度Spark Streaming 连续不断的生成微小的数据批次,构建有向无环图DAG,Spark Strea

2021-06-18 00:58:16 365

redis-2.6.zip

redis测试开发使用,直接在windows安装即可使用,需要的小伙伴们可以下载哦

2019-06-05

SecureCRT.exe

一款非常好用的支持ssh的连接工具,不要注册码的安装,安装好以后可以直接使用

2017-01-18

mysql64位安装工具

一款非常还用的MySQL,支持64位操作系统

2017-01-18

mysql-5.5.40-win32安装包

非常好用的mysql数据库,简单易装

2017-01-18

远程连接服务器工具SFTP

一款非常好用的连接服务器的工具,支持快速上传和下载

2017-01-18

登陆注册界面实现

登陆注册界面实现

2016-08-03

servlet作为服务器响应请求.zip

servlet作为服务器登陆注册界面的实现,非常有用的一段代码。

2016-07-14

用js写的163登陆界面系统

用js写的163登陆界面系统,所有功能几乎都已完善,只有少许有待优化

2016-07-11

apache-tomcat-6.0.18.exe

2016-07-11

MyEclipse10.1破解工具及方法图解.zip

2016-07-10

mysql-connector-java-5.1.26.jar

mysql-connector-java-5.1.26.jar,支持mysql 5.0

2016-06-28

commons-logging-1.2-bin.zip

2016-06-26

eclipse4.5.1.exe

只支持32位windows系统

2016-06-26

eclipse-inst-win32.zip

只支持32位windows操作系统

2016-06-25

net.sf.jadclipse压缩包

一款非常耐用的java反编译器,下载非常方便

2016-06-23

mysql中文学习手册

mysql中文学习手册,很值得一看哦!

2016-06-23

mysql 5.0资源下载

非常好用的一个mysql 5.0的配置文件,欢迎下载

2016-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除