- 博客(25)
- 收藏
- 关注
原创 SaprkStreaming广告日志分析实时数仓
参考尚硅谷的spark教程中的需求,参考相关思路,详细化各种代码,以及中间很多逻辑的实现方案采用更加符合项目开发的方案,而不是联系,包括整体的流程也有很大的差别,主要是参考需求描述和部分代码功能实现。
2023-09-17 15:45:10
271
原创 step 6 需求二:广告点击量实时统计
描述:实时统计每天各地区各城市各广告的点击总流量,并将其存入 MySQL。原方案:1)单个批次内对数据进行按照天维度的聚合统计;2)结合 MySQL 数据跟当前批次数据更新原有的数据。新方案:1)通过kafka获取黑名单过滤后的数据2)按照时间、地市、城市聚合统计点击量3)更新时间、地市、城市、点击量入库到mysql。
2023-09-16 15:38:41
204
原创 Step 5 需求一:广告黑名单数据处理
需求一:广告黑名单实现实时的动态黑名单机制:将每天对某个广告点击超过 100 次的用户拉黑。注:黑名单保存到 MySQL 中。1)读取 Kafka 数据之后,并对 MySQL 中存储的黑名单数据做校验;2)校验通过则对给用户点击广告次数累加一并存入 MySQL;3)在存入 MySQL 之后对数据做校验,如果单日超过 100 次则将该用户加入黑名单。
2023-09-14 19:34:30
246
原创 zookeeper服务启动报错&zookeeper加入到开机自启服务
zookeeper启动报错Error contacting service. It is probably not running.网上搜的防火墙、端口的各种解决方法都尝试了,无果。特此记录解决方法
2023-09-13 17:36:12
2031
原创 Step 4 工具类的编写-JDBCUtil、KafkaUtil、PropertiesUtil
工具类的编写-JDBCUtil、KafkaUtil、PropertiesUtil 和PropertiesUtil的空指针异常报错解决
2023-09-12 08:43:38
230
1
原创 step2 实时分发数据到kafka的application的开发
step2实时分发数据到kafka的application的开发·开发过程中代码会随着开发进度进行变更,解决bug和进行优化、功能新增等最新的代码可以再Gitee中获取:SparkStreamingDemand: 完整的sparkStreaming项目开发代码记录
2023-09-10 11:41:02
211
1
原创 kafka node3 连接异常导致应用无法消费、生产数据
kafka node3 连接异常导致应用无法消费、生产数据,基本的筛查方式全部尝试但是没有效果,查遍全网没有解决办法。确认防火墙关闭也不行,最后先启动防火墙,再关闭,解决问题
2023-09-09 13:45:54
786
1
原创 step1-项目结构搭建+环境准备+共性代码
step1-项目结构搭建+环境准备+共性代码开发过程中代码会随着开发进度进行变更,解决bug和进行优化、功能新增等最新的代码可以再Gitee中获取:SparkStreamingDemand: 完整的sparkStreaming项目开发代码记录使用application、service、Dao的三层架构模式来开发sparkStreaming项目
2023-09-08 08:57:33
262
1
原创 Spark Streaming之DStream转换操作
每个批次做自己单独的转化操作,没有状态的记录。批次就是RDD,微批次处理结果:实现wordCount。
2023-09-07 18:11:40
563
1
原创 Dstream操作之Socket数据源+Kafka数据源
通过 SparkStreaming 从 Kafka 读取数据,并将读取过来的数据做简单计算,最终打印到控制台。
2023-09-06 17:54:23
274
1
原创 SparkSQL中的自定义函数-UDF&UDAF
自定义聚合函数类:计算年龄的平均值继承org.apache.spark.sql.expressions.Aggregator, 定义泛型IN : 输入的数据类型 LongBUF : 缓冲区的数据类型 Buff ->样例类OUT : 输出的数据类型 Long重写方法(6个)/*** 自定义聚合函数类:计算年龄的平均值* 1. 继承org.apache.spark.sql.expressions.Aggregator, 定义泛型* IN : 输入的数据类型 Long。
2023-09-04 15:23:29
1693
1
原创 zookeeper安装部署
(后续发布hadoop生态圈的集群一键启停脚本)分发zookeeper文件夹到其他集群主机。zk启动正常,查看状态异常,报错如下。2、节点ID标识文件myid是否正确。1、selinux和防火墙的未关闭。然后每台集群创建myid文件。
2023-08-31 09:14:03
184
原创 hive部署过程记录
1、卸载CentOS7自带mariaDB2、下载mysql,在线下载3、查看依赖,如果没有就安装依赖4、解压下载tar包,依次安装5、设置密码等启动服务第一次启动查看临时密码临时密码登录mysql同时在修改开放3306端口,方便远程调用,这样可以不用关闭防火墙。
2023-08-24 17:04:16
81
1
原创 spark-submit 提交项目到spark集群运行
当在集群上运行程序时,不需要在程序中硬编码master参数,而是使用spark-submit提交应用程序并将master的URL以脚本参数的形式传入。但是,对于本地测试和单元测试,您可以通过“local[*]”来运行Spark程序(请确保本地系统中的cpu核心数够用)master是Spark,Mesos或YARN集群的URL,或者一个特殊的“local [*]”字符串来让程序以本地模式运行。添加maven的pom依赖,根据中文注释更改值。maven-package生成jar包。
2023-08-24 15:10:45
418
1
原创 分组聚合类RDD总结
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较。GroupByKey 只能分组,不能聚合,所以在分组聚合的场合下,推荐使用 reduceByKey,如果仅仅是分组而不需要聚合。combineByKey常用。
2023-08-24 11:56:34
182
1
原创 持久化&检查点&分区器
在本地文件系统中缓存后再collect读取rdd正常,但是从远程hdfs读取rdd正常,但是collect异常。缓存后的rdd可以正常take,foreach等非全量读取,但是无法collect。持久化不一定只用来数据重用,在数据比较重要而执行过程较长的环节中也可以持久化。--缓存在文件中,传参表示缓存级别,不传参表示存在内存。checkpoint,需要落盘,指定路径(一般为hdfs中)rdd.cashe()--缓存,存在内存中。存为文件会在执行完成后删除。
2023-08-24 11:40:57
61
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人