- 博客(56)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 SparkStructuredStreaming状态编程
spark官网关于spark有状态编程介绍比较少,本文是一篇个人理解关于spark状态编程。一般的流计算使用窗口函数可以解决大部分问题,但是一些比较复杂的业务,窗口函数无法解决,比如需要的数据范围大于你设定的时间窗口,那么就需要状态编程处理中间状态。
2024-05-06 17:22:12
476
1
原创 SparkSQL处理时序数据, 实践case
3.最后,上电阶段的数据是对我有用的,最后.where("T15_st == 1").drop("lag_tag")group_flag根据上一行的group_flag值累计,只有。物联网场景经常需要处理时序逻辑,数据按照createAt时序,T15_st只有0或者1,怎么把T15_st列转为。group_flag, 得到分组(第几次上下电)lag_tag,根据T15_st向下错位。T15_st=1而且lag_tag=0。,否则累加0,得到group_flag列。通过错位辅助列lag_tag,得到。
2024-03-19 23:54:05
1215
1
原创 yarn工作机制
这个把applicationMaster看成一种特殊task比较好理解 ,这个task负责一个job数据的切分,任务切分,任务资源申请,监控任务执行。由ResourceManager里的Scheduler负责资源调度,抽象理解为:火车调度室的调动员管理火车谁该进站。FIFO调度器(先进先出)
2024-03-13 21:41:35
501
1
原创 布隆过滤器(做筛选器索引)
上面这句介绍比较全面的描述了什么是布隆过滤器,如果还是不太好理解的话:就可以把布隆过滤器理解为一个set集合,我们可以通过add往里面添加元素,通过contains来判断是否包含某个元素。我的数据是 id, date, loctionId, data(其他很多列),默认情况它就先找分区,再全表搜索到底有没有( id, date, loctionId)一次hash之后可能冲突,那我对一个key多次hash, 多放几个位数,这样冲突概率也会降低。存储空间小,如果允许存在一定的误判,布隆过滤器是非常节省空间的。
2024-03-12 21:37:05
733
原创 带你从Spark官网啃透Spark Structured Streaming
By 远方时光原创,可转载,open合作本文是基于spark官网结构化流解读spark官网对结构化流解释1.结构化流是基于SparkSQL引擎构建的可扩展且容错的流处理引擎。(也就是他摒弃了DStream)2.可以像批数据一样处理流数据。可以使用在Scala、Java、Python或R中流聚合、事件时窗口、流批数据join等操作。(Stream表是无界表)3.通过和确保容错保证。(一条数据只被消费一次)4.默认结构化流查询作业引擎进行处理,并实现。
2024-03-04 22:44:59
1700
3
原创 解决spark数据倾斜
该方案通常无法彻底解决数据倾斜,因为如果出现一些极端情况,比如某个key对应的数据量有100万,那么无论你的task数量增加到多少,这个对应着100万数据的key肯定还是会分配到一个task中去处理,因此注定还是会发生数据倾斜的。将原本相同的key通过附加随机前缀的方式,变成多个不同的key,就可以让原本被一个task处理的数据分散到多个task上去做局部聚合,进而解决单个task处理数据量过多的问题。此时更加能够确定是发生了数据倾斜。对于聚合类的shuffle操作导致的数据倾斜,效果是非常不错的。
2024-03-03 16:31:00
1742
4
原创 什么是图数据库?可用于追溯复杂关系
图数据库的使用主要是基于对特定类型数据的需求,其中数据以图形结构存在,涉及多个实体之间的复杂关系。类似于传统数据库系统,图数据库也通常提供事务支持,以确保对数据的修改是原子性、一致性、隔离性和持久性的。一些图数据库提供了内置的图算法,如最短路径、社交网络分析、图聚类等,使得在图数据上执行分析任务更加方便。一些图数据库内置了一些图算法,用于在图形数据上执行各种分析和计算任务,例如最短路径、社交网络分析等。例如,社交网络中的用户之间的关系、网络拓扑、知识图谱等,这些都可以很自然地表示为图形结构。
2024-03-01 23:29:27
2156
原创 什么是数据湖(Data Lake) ,以及什么是湖仓一体(Lakehouse)
By 远方时光原创,可转载,open转山转水转佛塔 只为途中与你相见(班公湖 16年新藏线摄)大概从2021年数据湖这个概念开始火了起来,我们今天来聊聊为什么需要用数据湖。冰川融水形成小溪,溪水从山间倾泻而下,汇聚成一片宁静的湖面。企业的数据也是一样,我们不希望各个组织的数据分散到不同地方,而是集中储存和管理。数据要能存,而不是一江春水向东流。要足够大,大数据太大,一池存不下。企业的数据要有边界,可以流通和交换,但更注重隐私和安全,“海到无边天作岸”,可不行。数据库。
2024-02-29 23:42:31
4530
2
原创 spark-sql orderby遇到的shuffle问题
第3点 减少shuffle的数据量,这个我也有考虑,原本三列合并为一列(key: id_data_type),没有用到的列我也drop掉。shuffle read(Map阶段)的时候数据的分区数则是由spark提供的一些参数控制,如果这个。参数值设置的很小,同时shuffle read的量很大,那么将会导致一个task需要处理的数据非常大。异常id单独拎出来处理,加盐(id_随机数),再排序,再减盐(id_去除随机数),二阶段再排序,是我们最需要考虑的,因为数据没有过于数据倾斜,最先想到的就是。
2024-02-28 01:53:13
2301
6
原创 合并spark structured streaming处理流式数据产生的小文件
为了解决上述问题,Databricks 提供了小文件自动合并功能,在每次向 Delta 表中写入数据之后,会检查 Delta 表中的表文件数量,如果 Delta 表中的小文件(size < 128MB 的视为小文件)数量达到阈值,则会执行一次小文件合并,将 Delta 表中的小文件合并为一个新的大文件。其缺点也是显而易见的,由于使用了一个 executor 来合并表文件的写入,从而降低了表文件写入的并行度,此外,多引入的一层 executor 需要对写入的数据进行 shuffle,带来额外的开销。
2024-02-26 19:14:39
1592
6
原创 数据湖delta lake
Table of Content 1. 课程目标 2. 前置技能 3. 一、数据湖概念[了解] 3.1. 1.1 企业的数据困扰 3.1.1. 困扰一:互联网的兴起和数据孤岛 3.1.2. 困扰二:非结构化数据 3.1.3. 困扰三:保留原始数据 3.1.4. 补充:什么是结构化? 3.1.4.1. 结构化数据 3.1.4.2. 非结构化数据 3.1.4.3. 半结构化数据 3.2. 1.2 数据湖的提出 3.3. 1.3 所以,数据
2024-02-26 18:17:39
1291
原创 什么是MapReduce
Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。通常作业的输入和输出都会被存储在文件系统中,整个框架负责任务的调度和监控,以及重新执行已经关闭的任务。键值对上,也就是说,框架把作业的输入看成是一组键值对,同样也产生一组键值对作为作业的输出,这两组键值对有可能是不同的。,用来处理作业划分后的任务。
2024-02-23 14:46:08
1475
原创 spark 处理复杂嵌套json 方法
Spark高级操作之json复杂和嵌套数据结构的操作二_mob604756ed02fe的技术博客_51CTO博客(38条消息) SparkSql处理嵌套json数据_aitiejue5146的博客-优快云博客(38条消息) spark sql操作复杂嵌套数组 json数据_mys_35088的博客-优快云博客Spark高级操作之json复杂和嵌套数据结构的操作二 - 云+社区 - 腾讯云 (tencent.com)...
2022-02-27 11:03:08
1601
转载 Kafka面试题
⭐ 1、 什么是 kafka ?Kafka 起初是由 Linkedin 公司采用 Scala 语言开发的一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现己被捐献给 Apache 基金会。目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。⭐ 2、kafka 的架构描述一下?如下图所示:Kafak 总体架构图中包含多个概念:(1)ZooKeeper:Zookeeper负责保存b...
2022-01-17 21:17:05
3873
转载 Spark面试题
主要从以下 3 个方面进行分析,大纲如下:一、Spark 基础篇1、Spark 是什么?Spark 是一个通用分布式内存计算引擎。2009 年在加州大学伯克利分校 AMP 实验室诞生,2014 年 2 月,Spark 成为 Apache 的顶级项目。Logo 标志如下:2、Spark 有哪些特点?Spark 使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,具有以下特点:1. 运行速度快:Spark 拥有DA...
2022-01-17 21:10:17
1793
1
转载 大数据流处理(Flink)方向面试
1 面试官:请简短的做个自我介绍。面试官,您好!我叫 xxx , xxxx 年 x 月毕业于 xxx 学校,xx 学历,目前就职于 xxx 公司 xxx 部门,职位为:大数据开发工程师,主要从事于 Flink 流计算组件、平台的开发工作。工作以来,我先后参加了 xxx 项目、xxx 项目以及 xxx 项目,积累了丰富的项目经验,同时,这 x 个项目都得到了领导的一致好评。我对流计算组件有着浓厚的兴趣,工作之余经常钻研技术、例如:Flink 四大基石、Flink 内核应用提交流程、Flink 调
2022-01-17 21:02:27
1279
原创 什么是SDK
什么是SDK SDK(software development kit)软件开发工具包。 软件开发工具包,只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。软件工程师通常从目标系统开发者那里获得软件开发包。为了鼓励开发者使用其系统或者语言,许多SDK是免费提供的。SDK经常可以直接从互联网下载。...
2022-01-16 13:42:38
7267
原创 15道经典大数据面试题
自我介绍 + 项目介绍 数仓为什么要分层? 数据仓库都分哪几层? 简单介绍一下 Mapreduce 工作原理? Hdfs 的读数据流程了解吗? Hdfs 的写操作呢? zookeeper的选举过程 Spark 为什么比 MapReduce 快? Spark 任务执行流程? Spark 用过的解决数据倾斜的方案说一下? Flink 的四大基石都有哪些? watermark 的作用是啥?如何保证数据..
2021-11-25 05:10:33
9028
1
转载 大数据命令
Linux(vi/vim)一般模式语法 功能描述 yy 复制光标当前一行 y数字y 复制一段(从第几行到第几行) p 箭头移动到目的行粘贴 u 撤销上一步 dd 删除光标当前行 d数字d 删除光标(含)后多少行 x 删除一个字母,相当于del X 删除一个字母,相当于Backspace yw 复制一个词 dw 删除一个词 shift+^ 移动到行头 shift+$ 移动到行尾
2021-11-23 16:04:53
509
转载 数仓建设规范
目录:一、数据模型架构原则 数仓分层原则 主题域划分原则 数据模型设计原则 二、数仓公共开发规范 层次调用规范 数据类型规范 数据冗余规范 NULL字段处理规范 指标口径规范 数据表处理规范 表的生命周期管理 三、数仓各层开发规范 ODS层设计规范 公共维度层设计规范 DWD明细层设计规范 DWS公共汇总层设计规范 四、数仓命名规范 词根设计规范 表
2021-11-20 11:48:10
428
转载 到底什么是数据湖?全面解读数据湖的缘起、特征、技术、案例和趋势
本文来源微信公众号:大鱼的数据人生数据湖近几年迅速蹿红,今天笔者做一个综述,包括数据湖的缘起、数据湖的定义、数据湖的特征、数据湖的技术、数据湖的趋势和数据湖的案例六大部分,如果你要入门数据湖,一定要看一看。注:文末列出了所有参考文献,方便你拓展阅读,并附有《阿里云原生数据湖解决方案蓝皮书》、《华为DLI数据湖探索产品介绍》PDF下载。一、数据湖的缘起10年前,Pentaho公司(一家开源BI公司)的CTO詹姆斯·迪克森在他的博客中第一次提出“数据湖”(Data Lake)的概念;10
2021-11-16 17:18:48
8144
2
原创 Exactly-Once一致性语义: 对比Spark/Flink流处理模型
分享自微信公众号:大数据兵工厂Exactly-Once delivery。在很多评论中,甚至被认为是理论上几乎不可解决的问题。对于此技术话题的理解,可谓见仁见智,而在流处理领域中的Exactly-Once一致性语义则是大数据开发者必须掌握的核心知识点。海量数据实时计算:Spark和Flink引擎是如何保证Exactly-Once一致性?话不多说,我将从如下几点内容对此问题进行阐释: 什么是Exactly-Once一致性语义 Apache Spark的Exactly-on.
2021-11-16 16:46:17
1955
原创 数据湖学习笔记
2021-10-131.三个开源数据湖技术框架比较缺点:Delta:1.抽象程度不高,需要绑定spark 2.功能不完善Hudi:1.新版本已经完善支持python和flink,但对flink支持没那么好,和flink集成有一些bugIceberg:1.功能没有Hudi完善,做不到小文件合并2.Apache Hudi核心概念介绍特性:index:索引,快速找到想要的内容文件格式:支持parquet(列式存储),avro(行式存储)Timelin...
2021-10-13 16:35:10
362
原创 JVM相关
JVM1 JVM内存分哪几个区,每个区的作用是什么?java虚拟机主要分为以下几个区:1. 方法区(元空间):· 也称为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,GC主要是对方法区里的常量池和对类型的卸载· 存储已被虚拟机加载的类的信息(构造方法/接口定义)、常量、静态变量和即时编译器编译后的代码等数据。· 该区域是被线程共享的。· 方法区里有一个运行时常量池,用于存放静态编译产生的字面量(固定值)和符号引用(类字段,方法唯一描述)。该常量池具有动态.
2021-09-28 22:14:33
164
原创 Flink面试题精简
Flink基础:1 简单介绍一下 Flink1. Flink 是一个框架和分布式处理引擎,2. 用于对无界和有界数据流进行有状态计算。3. Flink 提供了数据分布、容错机制以及资源管理等核心功能。4. Flink提供了诸多高抽象层的API以便用户编写分布式任务:DataSet API, 对静态数据进行批处理操作,将静态数据抽象成分布式的数据集DataStream API,对数据流进行流处理操作,将流式的数据抽象成分布式的数据流Table API,对结构化数据进行查询操..
2021-09-08 22:09:09
708
原创 Flink_两条流intervalJoin(b流在a流规定时间范围内jion)
到账时间比下单时间早三秒,晚5秒 两条流合并import org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.functions.co.ProcessJoinFunctionimport org.apache.flink.streaming.api.scala._import org.apache.flink.streaming.api.windowing.time.Time
2021-09-05 15:52:49
621
原创 Flink_来自两条流的订单交易匹配(Connect, CoProcessFunction)
对于订单支付事件,用户支付完成其实并不算完,我们还得确认平台账户上是否到账了。而往往这会来自不同的日志信息,所以我们要同时读入两条流的数据来做合并处理 。这里我们利用connect 将两条流进行连接 , 然后用自定义的CoProcessFunction 进行处理。import org.apache.flink.api.common.state.{ValueState, ValueStateDescriptor}import org.apache.flink.streaming.api...
2021-09-05 15:32:25
486
原创 Flink_订单支付实时监控 (利用CEP)
在电商网站中,订单的支付作为直接与营销收入挂钩的一环,在业务流程中非 常重要。对于订单而言,为了正确控制业务流程,也为了增加用户的支付意愿,网站一般会设置一个支付失效时间,超过一段时间不支付的订单就会被取消。另外, 对于订单的支付,我们还应保证用户支付的正确性,这可以通过第三方支付平台的交易数据来做一个实时对账。在电商平台中,最终创造收入和利润的是用户下单购买的环节;更具体一点, 是用户真正完成支付动作的时候。用户下单的行为可以表明用户对商品的需求,但在现实中,并不...
2021-09-05 15:03:35
831
原创 Flink_恶意登录监控 (利用CEP)
对于网站而言,用户登录并不是频繁的业务操作。如果一个用户短时间内频繁登录失败,就有可能是出现了程序的恶意攻击,比如密码暴力破解。因此我们考虑, 应该对用户的登录失败动作进行统计,具体来说,如果同一用户(可以是不同 IP) 在 2 秒之内连续两次登录失败,就认为存在恶意登录的风险,输出相关的信息进行报警提示。这是电商网站、也是几乎所有网站风控的基本一环。会用到 flink 的 CEP 库来实现事件流 ,方法三:利用CEP是重点方法。pom 文件中引入 CEP 的相关依赖:...
2021-09-05 14:19:59
1061
原创 Flink_ 页面广告点击量统计(黑名单过滤)
页面广告分析_页面广告点击量统计电商网站的市场营销商业指标中,除了自身的 APP 推广,还会考虑到页面上的 广告投放(包括自己经营的产品和其它网站的广告)。所以广告相关的统计分析, 也是市场营销的重要指标。 对于广告的统计,最简单也最重要的就是页面广告的点击量,网站往往需要根 据广告点击量来制定定价策略和调整推广方式,而且也可以借此收集用户的偏好信 息。更加具体的应用是,我们可以根据用户的地理位置进行划分,从而总结出不同 省份用户对不同广告的偏好...
2021-09-04 20:21:38
675
原创 Flink_APP 市场推广 分渠道统计(自定义测试数据源)
市场营销商业指标统计分析_APP 市场推广统计(不同网站上广告链接的点击量、APP 下载量)每5秒统计一次一天内,不同渠道的不同行为的,操作数据数据。输出:MarketViewCount(2021-09-03 16:58:15.0,2021-09-04 16:58:15.0,tieba,install,6) 贴吧安装6次MarketViewCount(2021-09-03 16:58:15.0,2021-09-04 16:58:15.0,weibo,view,7) 微博浏览了7次..
2021-09-04 19:11:23
527
原创 Flink_网站独立访客数(UV)(Redis+布隆过滤器)
网站的独立访客数(Unique Visitor,UV)。UV 指的是一段时间(比如一小时)内访问网站的总人数,1 天内同一访客的多次访问 只记录为一个访客。(对同样用户IP去重)输入数据:方法一:全窗口函数 + set集合去重(风险,数据量大可能内存不足)import org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.scala.{DataStream, .
2021-09-04 16:06:41
803
原创 Flink_网站总浏览量(PV)的统计
1、PV(page view)即页面浏览量;用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。2.UV(unique visitor)指访问某个站点或点击某条新闻的不同IP地址的人数。在同一天内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。独立IP访问者提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。衡量网站流量一个最简单的指标,就是网站的页面浏览量(Page View,PV)。 ...
2021-09-04 15:20:49
1882
原创 Flink_热门页面浏览数
先实现“热门页面浏览数”的统计,也就是读取服务器日志中的每一行 log,统计在一段时间内用户访问每一个 url 的次数,然后排序输出显示。 具体做法为:每隔 5 秒,输出最近 10 分钟内访问量最多的前 N 个 URL。可以看出,这个需求与之前“实时热门商品统计”非常类似。输入数据:数据示例:83.149.9.216 - - 17/05/2015:10:05:03 +0000 GET /presentations/logstash-monitorama-2013/im..
2021-09-04 12:59:27
283
原创 Flink_实时热门商品统计
示例:662867 2244074 1575622 pv 1511658000 实现一个“实时热门商品”的需求,可以将“实时热门商品”翻译成程 序员更好理解的需求:每隔 5 分钟输出最近一小时内点击量最多的前 N 个商品。将 这个需求进行分解我们大概要做这么几件情: 1. 抽取出业务时间戳,告诉 Flink 框架基于业务时间做窗口 env.setStreamTimeCharacteristic(TimeCharacteristic...
2021-09-04 12:31:46
834
原创 Flink实时电商的用户行为分析
本内容仅用于个人学习笔记批处理批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。可以认为,处理的是用一个固定时间间隔分组的数据点集合。批处理模式中使用的数据集通常符合下列特征: – 有界:批处理数据集代表数据的有限集合 – 持久:数据通常始终存储在某种类型的持久存储位置中 – 大量:批处理操作通常是处理极为海量数据集的唯一方法 流处理流处理可以对随时进入系统的数据进行计算。流处理方式无需针对整个数据集执行操作,而是对...
2021-09-04 12:16:01
696
原创 flink 的sink
1. 写入到 kafka<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka-0.11_2.12</artifactId> <version>1.10.1</version> </dependency>package com.atguigu.apitest.si
2021-08-15 20:14:54
214
原创 flink 的Transform算子
package apiTestimport org.apache.flink.streaming.api.scala._object TransformTest { def main(args: Array[String]): Unit = { val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) //.
2021-08-15 14:17:42
149
原创 flink数据源读取方式
package apiTestimport java.util.{Properties, Random}import org.apache.flink.api.common.serialization.SimpleStringSchemaimport org.apache.flink.streaming.api.functions.source.SourceFunctionimport org.apache.flink.streaming.api.scala._import org.apac.
2021-08-15 12:07:57
537
原创 使用clickhouse即席查询
controller:面向外部请求,提供数据查询,返回对应格式的数据service:组合和数据层,提供数据服务(接口+实现类)mapper:单表操作(接口 + xml操作(sql) )1. com.atguigu.gmall0105.publisher.controller.PublisherControllerpackage com.atguigu.gmall0105.publisher.controller;import com.alibaba.fastjson.JSO..
2021-08-11 17:56:23
1000
namenode启动不起来
2021-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人