- 博客(56)
- 收藏
- 关注
原创 Flink中关于checkpoint、重启策略、状态、维表join总结
定义:维表join就是将进入flink的数据与一些外部存储设备上的数据(维表)进行关联;实现方法:(1)可以通过预加热维表的方式实现,就是把维表数据加载到内存中,然后与流中数据进行join,这种方式虽然实现起来简单,但是由于其数据是存储在内存中的,所以值适合小数据量和表中数据更新频率不高的情况;(2)也可以通过热存储维表的方式实现,就是将一部分经常访问的维表数据存储在cache缓存中,从而减轻访问压力;
2024-12-08 23:10:14
541
原创 Flink中常见问题总结
测到输出流就是将一个流中的数据按照指定规则进行分流处理;作用:一方面可以分流,另一方面就是可以通过侧输出机制将严重迟到的数据单独放入一个datastream中供后续处理(1)有countWindow、timeWindow、会话窗口;(2)滑动窗口就是每过多长时间就统计比这个时间长的时间段的数据;滚动窗口是指每过多长时间就统计多长时间的数据。
2024-12-08 23:03:25
503
1
原创 二分查找算法——原理及java应用
将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
2024-11-29 09:51:18
945
原创 Flink——Window窗口和Windows Function窗口的分类
按照指定的数据条数生成一个Window,与时间无关。滚动计数窗口,每隔N条数据,统计前N条数据滑动计数窗口,每隔N条数据,统计前M条数据按照时间生成Window。(重点)滚动时间窗口,每隔N时间,统计前N时间范围内的数据,窗口长度N,滑动距离N滑动时间窗口,每隔N时间,统计前M时间范围内的数据,窗口长度M,滑动距离N,按照会话划定的窗口流是连续的,无界的(对于这个问题,肯定是无法回答的,为何?因为,统计是一种对固定数据进行计算的动作。
2024-11-25 20:29:10
887
原创 Flink——进行数据转换时,报:Recovery is suppressed by NoRestartBackoffTimeStrategy
apply:全量聚合函数,指在窗口触发的时候才会对窗口内的所有数据进行一次计算(等窗口的数据到齐,才开始进行聚合计算,可实现对窗口内的数据进行排序等需求)。错误原因:在对kafka中数据进行KeyBy分组处理时,使用了lambda表达式。用flink中的窗口函数(apply)读取kafka中数据,并对热词进行统计。
2024-11-25 20:15:57
561
原创 Flink转换算子——flatMap/map/filter/keyby/reduce综合案例
此处用到了一个windows版本的软件 netcat,具体用法,先解压,然后在路径中输入cmd,来到黑窗口。需求: 对流数据中的单词进行统计,排除敏感词TMD【腾讯美团滴滴】客户端就是双击 nc.exe 即可,里面无需写 nc 命令。假如你想随时随地使用nc这个命令,需要配置环境变量。
2024-11-23 15:18:01
601
原创 Flink——source数据来源分类
基于本地集合的source(Collection-based-source)基于文件的source(File-based-source)基于网络套接字(socketTextStream)在flink最常见的创建DataStream方式有四种:l 使用env.fromElements(),这种方式也支持Tuple,自定义对象等复合形式。注意:类型要一致,不一致可以用Object接收,但是使用会报错,比如:env.fromElements("haha", 1);
2024-11-23 15:06:26
1029
原创 读取mysql、kafka数据筛选后放入mysql
创建一个存放mysql数据的实体类,把从mysql中读取的数据存入这个类对象中(一个类对象中存储的是一条mysql中的数据),然后把这些数据放入list集合中;接着读取kafka中的json数据,解析json数据并放入另一个新建的类对象中。取出存储mysql数据的集合中的“限速”字段,把他放入存储Kafka数据的类对象中,然后对kafka中的数据进行筛选过滤。从kafka的topic-car中读取卡口数据,将超速车辆写入mysql的t_monitor_info表。`car` string --车牌号码,
2024-11-23 14:44:11
668
原创 《智慧教育实时数据分析推荐项目》详细分析
在互联网、移动互联网的带动下,教育逐渐从线下走向线上,在线教育近几年一直处于行业的风口浪尖,那随着基础设施的不断完善,用户需求也发生不少变化,因此传统教育机构、新兴互联网企业都在探索在线教育的最佳模式。随着在线教育的发展和普及,越来越多的选择在线教育,越来越多的公司也加入的竞争行列中。
2024-11-23 09:06:15
923
原创 Spark——安装步骤详细教程
通过Anaconda 安装 ,因为这个软件不仅有python还有其他的功能,比单纯安装python功能要强大。Spark Python Shell 是一个交互工具,可以启动spark中的交互工具,里面可以写代码。安装这个软件的另一个好处:具有资源环境隔离功能,方便基于不同版本不同环境进行测试开发。输入python3 查看命令是否可用。安装完成之后,进行环境变量的刷新。刷新环境变量,并且做一个软链接。5、安装python。
2024-11-23 08:59:36
1226
原创 《Linux中软件的两种安装方式》详细步骤
就好比是别人给了一个 exe 文件,只是我们的linux上是没有exe文件的,跟exe文件类似的是 rpm 安装包。发现net-tools.x86_64 软件中包含了这个命令,所以应该安装这个软件才对。,因为它是先将rpm 安装包下载下来之后,又使用命令给你安装了一遍而已。yum源安装软件的时候,如果一个软件依赖于另一个软件,都会一并安装。使用yum命令进行软件安装是linux安装文件的一个重要部分。(2)也可以使用Datagrip连接mysql。2、查看是否有mysql数据库。3、依次安装所需服务。
2024-11-23 08:49:49
889
原创 Flink——Standalone集群模式安装部署详细教程
然后再重启,发现8081上已经完成的任务中是空的,而8082上的历史任务都还在,原因是8082读取了hdfs上的一些数据,而8081没有。原因是:你的 taskManager 有三台,你的数据只在本地存放一份,所以需要将数据分发给 bigdata02 和 bigdata03。将资料下的flink-shaded-hadoop-2-uber-2.7.5-10.0.jar放到flink的lib目录下。standalone——独立模式,Flink自带集群,开发测试环境使用。local(本地)——本地模式。
2024-11-21 15:50:24
508
原创 JDK安装和Linux常见设置详细版教程
举个例子: 老闫买了一些雪糕,雪糕属于老闫(吃,分享,扔掉), 230801班的同学跟老闫是一个班的,拥有的权限(吃,分享), 其他班的同学(没有任何权限)。快照就是将来可以恢复,以及可以clone(克隆) 的基础,记得先关机, 再克隆。因为我们想将来操作某台服务器,不想通过IP操作,想通过用户名操作。1、创建一个文件夹,用于存放安装包 /opt/modules。假如检查了IP,发现没IP,也没有虚拟网卡,怎么办?点击虚拟机的编辑界面,点击【虚拟网络编辑器】,进入后,6、刷新配置文件,让配置文件生效。
2024-11-20 17:14:51
685
原创 虚拟机和Linux的安装及基本操作详细教程
在普通的物理机上,虚拟出来一块资源,安装另一个操作系统,这样的软件就称之为虚拟机。它可以自动的切割一些资源(内存,硬盘,CPU,网络)相当于是模拟器(windows -->模拟器--> 安卓系统-->王者荣耀)远程连接工具非常多:XShell(xftp)、FinalShell、SSH shell、Moba等FinalShell官网Xterminal - 更好用的开发工具,但不止于(SSH/控制台/More)
2024-11-20 13:29:11
1709
原创 Java中创建多线程的4种方式详解
在Java编程中,多线程是一个非常重要的概念,它允许程序同时执行多个任务,从而提高程序的效率和响应能力。以下是Java中创建多线程的四种方式。
2024-11-18 20:48:21
780
原创 《基于 PySpark 的电影推荐系统分析及问题解决》
基于 PySpark 的电影推荐系统实现与分析在当今数字化时代,个性化推荐系统在各个领域中都发挥着至关重要的作用,尤其是在娱乐行业,如电影推荐。本文将详细介绍如何使用 PySpark 构建一个简单的电影推荐系统,并对代码进行深入分析。一、环境准备在开始我们的电影推荐之旅前,需要正确配置运行环境。这涉及到设置一系列的环境变量,确保 PySpark 能够顺利运行。python复制。
2024-11-18 20:31:57
1076
原创 flume对kafka中数据的导入导出、datax对mysql数据库数据的抽取
抽取trans_info.json的数据到kafka上,对其中的tr_flag=0的数据进行过滤抛弃,只保留正常的状态数据在pom.xml中放入依赖包:使用java代码,自定义拦截器:@Override@Overridetry {// 获取事件体中的数据(假设数据是JSON格式存储在事件体中)// 使用Jackson将JSON字符串解析为JsonNode对象// 获取tr_flag的值// 如果tr_flag不等于0,保留该事件if (trFlag!
2024-11-17 18:32:07
1914
原创 SparkSQL题
现在要计算每个部门的平均工资(工资和/员工数),但是要去掉部门的最高工资和最低工资(如果一个部门最高或最低工资有并列的,去掉一个最高的和一个最低的)后,计算部门的平均工资。101,"研发部",50000。102,"研发部",50000。103,"研发部",10000。104,"研发部",20000。105,"研发部",30000。106,"市场部",20000。107,"市场部",30000。108,"市场部",25000。109,"产品部",20000。110,"产品部",30000。
2024-11-17 17:44:15
295
原创 SQL面试题
3、交易记录表,表结构如下,请计算每个月购货人同时购买苹果和西瓜的金额(购货人单月只购买其中一样不计算,需在一个月内两个都购买)1. 表如下,请计算每个月每个部门评分大于等于90的人数,评分大于等于90的人数环比增长率,评分有提升的人数。2.交易记录表,表结构如下,请计算每个月各产品的购货人数,购货金额,购货金额排名,复购人数。第三步:将自身的表和自身的表关联,求分数有提升的人数。3、将自身的表和自身的表关联,求分数有提升的人数。第二步:将 t1 和 t1 自关联,求增长率。2、再获取购买苹果的人的信息。
2024-11-17 17:36:39
376
原创 StructuredStreaming&Kafka中的实时ETL案例及常见问题
在Spark 3.0.0环境下运行StructuredStreaming程序时遇到版本不兼容错误,需要额外添加commons-pools2和spark-token-provider-kafka jar包。下载对应的jar包即可,比如我是SparkSql写入的Kafka,那么我就需要下载Spark-Sql-Kafka.x.x.x.jar。解压kafka-ui安装包,双击打开bin目录下的kafkaUI.bat(注意:一直保持打开的状态,不要关掉)解决:这个是因为缺少了Kafka和Spark的集成包,前往。
2024-11-15 16:00:33
738
原创 Kafka-Eagle、Kafka-UI的安装及使用详细教程
Kafka-Eagle 框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。在生产过程中,想创建topic、查看所有topic、想查看某个topic 想查看分区等,都需要写命令,能不能有一个图形化的界面,让我们操作呢?
2024-11-12 20:49:00
2615
原创 将数据上传至hdfs的两种方式:java代码上传、将数据放入kafka中,通过flume抽取
第一步:生成随机数据,将数据放入kafka中。第二步:创建数据存入kafka的topic。
2024-11-12 20:12:53
433
原创 Kafka--关于消费者的夺命连环问
可以理解为分配的结果带有“粘性的”。即在执行一次新的分配之前, 考虑上一次分配的结果,尽量少的调整分配的变动,可以节省大量的开销。粘性分区是 Kafka 从 0.11.x 版本开始引入这种分配策略,首先会尽量均衡的放置分区 到消费者上面,在出现同一消费者组内消费者出现问题的时候,会尽量保持原有分配的分区不变化。比如分区有 0 1 2 3 4 5 6消费者有 c1 c2 c3c1 消费 3个 c2 消费2个 c3 消费2个分区。
2024-11-12 19:36:00
1148
原创 Kafka--关于生产者的夺命连环问
kafka在进行消息发送过程中,涉及到两个线程:main线程、sender线程。main线程创建了一个双端队列(RecordAccumulator),main线程将信息发送给RecordAccumulator,然后sender线程从双端队列中拉取信息。当sender中拉取的信息达到batch.size(16k)之后,sender会将信息发送给kafka集群;
2024-11-11 20:47:44
1682
原创 kafka安装部署--详细教程
因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。分别在 bigdata02 和 bigdata03上修改配置文件/opt/installs/kafka/config/server.properties 中的 broker.id=1、broker.id=2。官方下载地址:http://kafka.apache.org/downloads.html。【如果启动过就跳过】
2024-11-09 10:49:10
536
原创 SQL--查询连续三天登录数据详解
它接受一个日期值和一个时间间隔作为输入,然后返回在该日期基础上增加指定时间间隔后的日期。lead():是一种窗口函数,用于在基于特定排序规则的结果集中,返回当前行之后的某一行(由用户指定偏移量)的指定列的值。--第一步 找出当前日期的后面的第三个日期(函数lead())和真正的三天后日期 (函数date_add())问题: 现有用户登录记录表,请查询出用户连续三天登录的所有数据记录。--第四步 将查询出来的表与另一个一行有三条数据的表进行join。--第三步 筛选出符合条件(连续登陆三天)的起始日期。
2024-11-07 20:49:43
864
1
原创 《Spark的宽窄依赖》
窄依赖父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle一对一或者多对一不经过Shuffle,性能相对较快, 但无法实现全局分区、排序、分组等一个Stage内部的计算都是窄依赖的过程,全部在内存中 完成。宽依赖父RDD的一个分区的数据给了子RDD的多个分区【需要调用Shuffle的分区器来实现】一对多,必须经过Shuffle,性能相对较慢,可以实现全 局分区、排序、分组等Spark的job中按照宽依赖来划分Stage本质:只是一种标记,标记两个RDD之间的依赖关系。
2024-11-06 19:52:23
386
原创 《SparkSQL--通过ThriftServer连接DataGrip》
启动服务,该服务不会停止,一直在后台启动,假如启动不了,记得查看日志。将hive-site.xml 复制到 spark的conf 下。使用datagrip 重新连接一下,记得刷新一下连接。:在hive 下修改hive-site.xml。修改spark下的hive-site.xml。sparksql与hive是同步的。
2024-11-06 19:27:23
538
原创 SparkSql读取数据的方式
此处的pyspark更像是一个客户端,里面可以通过python编写spark代码而已。而我们以前安装的pyspark更像是spark的python运行环境。不要在一个python 文件中,创建两个不同的sparkSession对象,否则对于sparksql获取hive的元数据,有影响。第二种情况:linux环境下,按照如下方式进行。方式二:直接调用对应数据源类型的方法。方式一:给定读取数据源的类型和地址。1)集群环境操作hive。
2024-11-05 20:44:39
926
原创 SparkCore中的常见问题
Shuffle Write:类似于MR中的Map端Shuffle,但是Spark的 Shuffle Write有3种,会根据情况自动判断选择哪种Shuffle Write。Shuffle Read:类似于MR中的Reduce端Shuffle,但是 Spark的Shuffle Read功能由算子来决定,不同算子经过的过程不一样的。特性四:可选的,如果是二元组【KV】类型的RDD,在Shuffle过程中可以自定义分区器。特性二:RDD的转换操作本质上是对RDD所有分区的并行转换。
2024-11-05 20:11:51
613
原创 HiveSQL 中判断字段是否包含某个值的方法
在 HiveSQL 中,有时我们需要判断一个字段是否包含某个特定的值。下面将介绍几种常用的方法来实现这个功能。
2024-11-05 19:57:47
910
原创 《Spark的容错机制》
1、各个软件为了防止数据丢失都有哪些解决方案2、Spark如何保障数据的安全每个RDD在构建数据时,会根据自己来源一步步倒 导 到数据来源,然后再一步步开始构建RDD数据。问题:如果一个RDD被触发多次,这个RDD就会按照依赖关系被构建多次,性能相对较差,怎么解决?例如:日志分析的时候,三个问题,tupleRdd 之前的所有操作都要执行三次,每次读取100M多的数据,效率非常的低。
2024-11-05 08:20:26
486
原创 SQL排序与分组操作:order by、sort by、distribute by、group by、cluster by的区别
order by是SQL中的标准排序语句,用于对查询结果集进行全局排序。它会根据指定的列(可以是一个或多个)以及排序规则(升序ASC或降序DESC),将整个结果集重新排列。这使得查询结果按照用户期望的顺序展示,方便查看和分析数据。在大数据处理框架(如Hive和Spark)中,sort by主要用于在每个分区内对数据进行排序。它和order by的不同之处在于,sort by不会对所有数据进行全局排序,而是在数据已经按照某种方式分区后,对每个分区内的数据进行独立排序。主要用于在大数据处理中控制数据的分布方式。
2024-10-31 20:17:47
838
原创 《深入理解Reduce算子与ReduceByKey算子的区别及应用案例》
reduce算子可以应用于任意类型的RDD,不强制要求数据是键值对形式。算子只能用于键值对RDD,它依赖键来进行分组和聚合操作。
2024-10-31 20:11:16
1149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人