自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Flink维表join的常见方式

通过定义一个类实现RichMapFunction,在open()中读取维表数据加载到内存中,在kafka流map()方法中与维表数据进行关联。如果数据多了,并且会更新可以改变查询sql以上做法成功解决了我们以前的两个问题:数据更新怎么办,数据多了怎么办。但是缺点是每次都得查询数据库,非常不方便, 数据库的连接数量是有限的,很有可能将数据库搞崩溃。可以使用缓存来存储一部分常访问的维表数据,以减少访问外部系统的次数,比如使用Cache。

2025-12-01 18:49:35 323

原创 Flink使用savePoint时报错org.apache.commons.cli.CommandLine.hasOption(Lorg/apache/commons/cli/Option;)Z

然后将这个jar包上传到服务器中 FLINK_HOME/lib中,flink文件夹下的lib文件夹中即可。设置checkpoint后,在运行程序时,使用-s指定从checkpoint目录恢复状态数据也会报这个错。这个错误是因为在本地开发使用的maven导入的commons-cli jar包与服务器上的版本不统一。本地开发的flink程序上传到服务器时,使用如下命令报错。找到本地的commons-cli jar包的所在位置。

2025-12-01 18:43:22 209

原创 使用Flume读取kafka中的数据再把数据输出到kafka中,sink数据拿不到,出现topic被覆盖问题

如果 header 中存在 topic,则会将Event发送到该特定 topic,从而覆盖为Sink配置的 topic。为了读取kafka中主题topicA中的数据,并进行清洗,然后再放到kafka另一个主题topicB中,于是使用flume,并自定义拦截器进行清洗,然后运行后,发现消费topicB时没有数据,但是发现topicA一直在循环消费自己。找到问题的关键后,可以使用自定义拦截器,将header中的topic修改成sink的topic。也可以使用静态拦截器。

2025-11-14 17:24:03 185

原创 Kafka通过flume抽取数据到hdfs

这时kafka会将新生成的数据通过flume写入到hdfs 中,然后就会发现hdfs中抽取到了topic中的历史数据。,如果再次运行这个conf文件会发现不会抽取数据。此时我们可以通过kafka命令进行测试,生产数据。然后进入到存放conf文件的文件夹运行。topic中历史数据写入到hdfs中。用户手册可以编写conf文件。此时可以在conf中添加配置。还有一种情况,需要将。

2025-11-11 12:00:05 259

原创 Hive数据来源全解析:从原始数据到数据仓库的完整链路

数据来源适用场景优点注意事项本地文件/HDFS批量数据初始化简单直接,性能好需要预处理数据格式Sqoop关系数据库同步支持增量,事务安全需要数据库连接权限Kafka实时数据流低延迟,高吞吐需要流处理架构外部表数据湖集成数据不移动,实时查询需要网络稳定性Flume日志收集实时可靠,容错性好配置相对复杂。

2025-11-03 19:19:21 335

原创 PySpark数据读取完全指南:SparkCore和SparkSQL

是SparkCore中最基础但也最常用的数据读取方式之一。1.3 复杂数据结构的parallelize。2. 使用DataFrame API读取整表。2.1 textFile 读取txt文件。1. 基础SparkSession配置。1. 使用Spark SQL直接查询。SparkSQL是Spark中。2.2 读取其他格式文件。2.3 二进制文件读取。

2025-11-03 19:11:32 241

原创 深度解析ZooKeeper的选举算法,

Zab(ZooKeeper Atomic Broadcast)协议是ZooKeeper实现数据一致性的核心算法,它保证了所有更新操作按照全局顺序进行原子广播。ZooKeeper的领导者选举算法通过巧妙的投票机制和多数决原则,在分布式环境中实现了高效可靠的领导者选举。Zab协议保证了数据的一致性,而快速领导者选举优化提高了系统的可用性。理解这些算法的工作原理对于设计和维护依赖ZooKeeper的分布式系统至关重要。

2025-09-16 19:53:08 1551

原创 深入解析 HDFS 纠删码技术 ErasureCoding

HDFS引入纠删码技术(EC)作为副本机制的替代方案,显著降低存储开销。EC通过数据分块和校验单元实现冗余,在保持相同容错能力的同时,存储开销从副本机制的200%降至50%以下。HDFS 3.x对NameNode、客户端和数据节点进行了扩展,支持条带化存储和并行读写操作。系统提供多种内置EC策略,管理员可根据集群规模配置策略。EC要求更高的CPU和网络资源,并建议配置足够数量的机架以保障容错。HDFS提供完整的EC管理命令,支持策略设置、启用/禁用等操作。该技术特别适合访问频率低的冷数据存储场景。

2025-09-16 19:33:17 2311

原创 多行数据 “压成” 一行?MySQL group_concat () 帮你搞定 90% 聚合场景

是 MySQL 中一个非常实用的聚合函数,它能够将分组中的多个值连接成一个字符串。与count()sum()等传统聚合函数不同,专注于字符串的合并,特别适合需要将多行数据 "压扁" 成单行展示的场景。GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY 排序字段 ASC/DESC] [SEPARATOR '分隔符'])默认使用逗号分隔,可通过SEPARATORSELECT。

2025-09-15 19:13:32 942

原创 为什么高手都爱用 Linux 三剑客?grep/sed/awk 深度解析与实战

grep:擅长文本搜索,从文件或输入中筛选出符合条件的行sed:擅长文本编辑,实现行级别的替换、删除、新增等操作awk:擅长文本分析和处理,适合处理列结构的数据,进行统计分析它们可以单独使用,也可以通过管道 () 组合起来完成复杂的文本处理任务。grep专注于 "找",用正则表达式搜索文本sed专注于 "改",实现行级别的编辑操作awk专注于 "析",擅长处理结构化数据和统计分掌握这三个工具,能极大提高在 Linux 环境下处理文本的效率。

2025-09-15 18:46:46 1971

原创 MySQL 优化全解析:从查询、索引到数据库设计的性能提升之道

MySQL 优化是一个系统性工程,可以从查询语句、索引策略和数据库设计三个维度协同发力。在实际业务中,应结合具体场景(如数据量、访问模式、业务复杂度),灵活运用优化手段,持续监控并调整,才能让 MySQL 数据库始终保持高效运行,为业务系统提供稳定、快速的支撑。

2025-09-01 19:41:55 751

原创 深入理解 Linux 系统中的 inode 与 block:文件系统的 “灵魂” 与 “肉体”

inode 的全称是Index Node(索引节点),它本质是一个数据结构,每个文件(包括目录)在创建时,都会自动分配一个唯一的 inode,就像每个人的身份证号一样,在同一个文件系统中,inode 编号绝对唯一。你可以通过ls -i# 输出示例:123456 hello.txt (123456 就是 inode 编号)block 是文件系统中最小的存储单元(类似硬盘的 “扇区”,但比扇区大),磁盘读写数据时,都是以 block 为单位进行的(比如一次读 4KB,而不是逐个字节读)。

2025-09-01 19:03:20 996 1

空空如也

空空如也

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

TA关注的人

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