- 博客(17)
- 收藏
- 关注
原创 大数据场景下的小文件问题
小文件问题是大数据集群中的常见挑战。小文件通常指小于32MB的文件(不同公司标准不同)。其危害包括:1)占用NameNode内存,影响集群性能和启动时间;2)增加DataNode寻址时间;3)浪费计算资源,如MapReduce任务中一个小文件对应一个map任务。小文件主要来源于流式文件(如Flume)、Hive/Spark任务输出过多分区等。治理方案包括:流式文件次日合并、Hive开启map前合并和输出文件合并、Spark使用repartition()合并最后stage分区。合理设置参数可有效缓解小文件问题
2025-08-20 23:29:50
293
原创 SQL中Join的几种方式
SQL中的JOIN操作主要有6种类型:1) INNER JOIN(内连接)取两表交集;2) LEFT JOIN(左连接)保留左表全部数据;3) RIGHT JOIN(右连接)保留右表全部数据;4) FULL OUTER JOIN(全外连接)保留两表所有数据;5) LEFT SEMI JOIN(左半连接)类似内连接但只返回左表数据;6) CROSS JOIN(交叉连接)生成两表的笛卡尔积。其中前三种最常用,需注意处理空值情况;全外连接相当于左右连接的并集;交叉连接需谨慎使用,易产生大量数据。
2025-08-19 16:31:07
940
原创 Flink-水印Watermark的理解
本文介绍了Flink中的水印(Watermark)机制,它作为处理事件时间的核心机制,用于解决流处理中的乱序和延迟数据问题。文章通过一个10:00-10:10滚动窗口的例子,阐述了默认直接丢弃延迟数据的处理方式,并重点分析了三种处理延迟数据的方法:1)增大水印时间但会降低时效性;2)设置允许延迟时间,通过撤回重算保证结果准确性但时效性降低;3)使用侧输出流单独处理。水印本质是一个标记"某时刻前数据理论上已全部到达"的时间戳,需要根据业务需求在数据准确性和处理时效性之间取得平衡。
2025-08-18 12:57:36
931
原创 一文让你明白什么是三范式!
在关系数据模型设计中,一般需要满足三范式的要求,他的优点就是能够保证数据的一致性,同时,数据冗余比较低,不会产生资源的浪费,但缺点就是由于强规范化的表,在进行数据分析过程中,需要多表关联,对计算资源的消耗比较大。所以三范式一般在数仓中要求不是特别严格,数仓是使用星型模型或者星座模型进行事实表和维度表的建设,允许数据的冗余,减少多表关联,提高整体效率。比如在学生信息表中,主键为学生id,直接依赖的是学生名称,学生班级,而不能出现班主任字段,班主任与学生id之间的关系就是传递依赖。
2025-08-17 16:10:22
353
原创 一文教会你数仓中如何保障数据的时效性!
数仓数据的时效性是企业高效决策和业务顺畅运营的重要保障。要实现这一目标,需从技术、管理、流程等多方面协同发力:通过代码优化、链路拆解等技术手段提升执行效率;借助任务优先级划分、资源扩展等措施保障资源供给;依靠 SLA 预警、应急机制等流程管理应对突发状况。只有将这些措施有机结合,形成全方位的保障体系,才能让数仓数据始终保持 “新鲜度”,为企业在数据时代的竞争中提供有力支撑。。
2025-08-17 00:31:50
475
原创 数据采集零点漂移问题以及解决方案[全网第一]
本文探讨了数据库时间戳字段不一致导致的数据漂移问题及解决方案。由于系统延迟,log_time、modified_time等常晚于业务时间proc_time,建议:1)在ODS层存储额外数据供下游筛选;2)通过多时间字段联合处理:分别获取前一天最后15分钟和次日最初15分钟数据,用modified_time过滤后全外连接,再用proc_time筛选当天数据。文末提供了实现该逻辑的SQL示例,并指出虽无法完全避免,但通过多时间字段限制可有效缓解数据漂移问题。
2025-08-15 16:10:46
334
原创 Hadoop常见八股
Hadoop是一个分布式计算框架,核心包含HDFS分布式文件系统和MapReduce计算模型。HDFS采用主从架构,NameNode管理元数据,DataNode存储数据块,具备高容错性但延迟较高。文件分块存储(默认128MB)以支持并行处理和数据备份。MapReduce通过分而治之思想处理大数据,包含Map和Reduce阶段,期间通过Shuffle过程进行数据分区和排序。YARN作为资源管理器,包含ResourceManager全局调度和NodeManager节点管理,支持多种调度策略。HDFS常用命令包括
2025-08-14 23:47:09
980
原创 [腾讯云服务器集群搭建报错] 在服务上搭建并启动zookeeper,有QuorumPeerMain进程,但status却报错问题
(1)重命名/opt/module/zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg(2)打开zoo.cfg文件修改数据存储路径配置增加如下配置(3)同步/opt/module/zookeeper目录内容到hadoop103、hadoop104(4)分别修改hadoop103、hadoop104上的myid文件中内容为3、4(5)配置参数解读是一个数字,表示这个是第几号服务器;
2024-11-08 17:14:31
1521
原创 [hive on spark] hive on spark 无法启动spark 看这一个就够了!!!!
在hive on spark场景中,在我们执行hive SQL时候,会出现Failed to create Spark client for Spark session的情况这个问题可能包含多种原因,在下面的步骤中,找到适合自己的情况,进行修改。
2024-11-06 12:05:22
2064
原创 [Hive 报错]HiveServer2服务运行异常
通常在学习过程中,先启动集群hadoop,然后再启动HiveServer2,就会HiveServer服务运行异常。
2024-10-30 16:39:57
773
3
原创 [hive on spark]Error while compiling statement: FAILED: SemanticException Failed to get a spark sess
在构建离线数仓时候,执行插入SQL语句,进行数据装载的时候,简单的插入sql一直执行到一分多钟时候,停止并报错。
2024-10-23 20:14:44
963
原创 [Flume]自定义flume拦截器
自定义flume拦截器 实现框架提供的拦截器接口Interceptor实现接口内部的方法//初始化方法 先被执行 无参数校验工作 按照业务逻辑需求//处理单个event逻辑方法//方法的重载 批量处理多个event事件方法//关闭资源 完成一些收尾工作上述为自定义flume拦截器的方法。
2024-10-10 19:06:18
493
原创 [Flume报错]java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang
实时监控目录下多个被追加文件、往Linux本地文件夹中文件实时追加内容,让Flume的source组件进行监控,把数据采集到目的地(输出到HDFS)
2024-10-09 20:37:38
580
原创 JAVA语言--基础排序算法(选择排序,插入排序,冒泡排序)
首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法叫做,因为它在不断地选择剩余元素之中的最小者。
2023-10-16 16:11:45
182
1
原创 LeetCode 力扣 137题 只出现一次的数字 II(HashMap方法)
刚好在我们所学习的有键值对特性的HashMap中,Key用来记录数组出现的数字,Value来记录相对性的数字出现的次数,我们在遍历数组时,每出现一个数字,我们就在其Value进行+1操作,最终我们找到Value等于1的Key值进行返回,则能完成此问题。本题中,我们第一时间会想到,遍历数组,对于数组中出现的每一个数字,找一个相对应的 变量来描述其出现的次数,直到数组遍历完毕,然后找到仅仅出现过一次的数。如果 hashMap 中存在指定的 key 对应的映射关系返回 true,否则返回 false。
2023-10-15 15:50:03
131
1
原创 对象、实例、对象引用、对象实例的区别?
是面向对象编程中的一个概念,是指具有属性和方法的实体。实例是对象的具体化,是指在程序运行时创建的对象。对象引用是指指向对象的指针或者引用,可以通过对象引用来访问对象的属性和方法。对象实例是指在程序运行时创建的具体化的对象。由于继承关系,我们可以说student1对象,它不仅是person的实例也是student的实例,但是它仅仅是student的对象,而不是person的对象。例如有person类和student类,其中person类是student的父类,,对象即为类的就具体,通俗来讲,
2023-10-15 14:36:55
1357
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅