- 博客(25)
- 收藏
- 关注
原创 深入理解Kafka的复制协议与可靠性保证
Kafka复制机制与可靠性配置指南 本文深入解析Apache Kafka的复制机制与可靠性保证。Kafka采用Leader-Follower架构,通过ISR(同步副本集)管理副本状态,使用LEO和HW偏移量控制数据复制流程。关键配置参数包括: min.insync.replicas确保写入冗余度 unclean.leader.election.enable控制故障恢复策略 机架感知功能提升容灾能力 依赖页缓存优化性能 文章详细分析了各参数对数据一致性、可用性和性能的影响,并提供生产环境配置建议:
2025-09-26 20:41:23
861
原创 Kafka Consumer 关键代码分析:位移管理、并发处理与再均衡机制
这篇文章介绍了Kafka消费者从基础到高级的演进过程,重点讲解了三个版本的设计优化: V1基础原型:使用自动提交位移,简单但存在消息丢失和重复消费风险; V2手动同步提交:确保业务处理成功后才提交位移,实现"至少一次"处理,但性能受同步提交影响; V3手动异步提交:通过异步方式提升吞吐量,同时处理提交失败的情况。 文章采用电商订单处理场景,每个版本都针对特定问题提出解决方案,并附有核心代码实现,展示了Kafka消费者可靠性设计的演进思路。
2025-09-26 19:57:17
906
原创 Kafka Producer 关键代码分析:序列化、分区、事务性与可观测性
本文通过电商平台案例,展示了Kafka生产者的渐进式优化过程。V1版本实现基础封装,将Kafka客户端与服务解耦,通过配置工厂集中管理;V2版本引入结构化消息,采用Avro定义数据契约,支持强类型对象发送。每个版本都针对具体业务挑战提供解决方案,包含核心代码实现,如配置工厂升级、泛型化生产者设计等,体现了从功能验证到生产落地的完整演进路径。文章强调通过服务化设计和可扩展架构来解决分布式系统中的消息传递问题。
2025-09-15 14:58:52
651
原创 Kafka 入门指南:从 0 到 1 构建你的 Kafka 知识基础入门体系
Kafka 核心组件概述 本文系统介绍了Apache Kafka的四个核心组件及其协作机制: Broker与集群:Broker是Kafka的独立服务器实例,多个Broker组成集群提供高可用和扩展性。集群通过控制器管理分区状态,并采用Zookeeper/KRaft维护元数据。 主题与分区:主题是消息的逻辑分类,分为多个分区保证有序性和并行处理。每个分区通过偏移量定位消息,并采用副本机制(Leader/Follower)确保高可用。 组件协作:主题数据被分散到不同分区,分区副本均匀分布在集群Broker上。这
2025-09-14 16:08:27
1195
原创 彻底搞懂 ZooKeeper 的顺序性:写、读、通知三大核心场景深度解析
本文系统剖析ZooKeeper三大顺序性保障机制。1) 全局写顺序:通过ZAB协议的两阶段提交和zxid机制,确保所有节点按相同逻辑顺序执行写操作;2) 客户端读顺序:采用顺序一致性模型,保证单个客户端的读操作FIFO特性,但可能读到旧数据;3) Watch通知顺序:实现因果顺序,确保事件通知与操作顺序一致。文章通过典型场景(如任务调度系统)展示问题本质,并给出针对性解决方案,帮助开发者规避分布式系统中的时序陷阱。
2025-09-13 22:30:01
870
原创 ZooKeeper Multi-op+乐观锁实战优化:提升分布式Worker节点状态一致性
基于ZooKeeper Multi-op的分布式状态管理 摘要 本文探讨了分布式系统中Worker节点状态管理的挑战,分析了传统独立操作方式可能导致的状态不一致问题。通过引入ZooKeeper的Multi-op事务特性,我们将多个分散的状态更新操作重构为原子单元,确保系统在故障场景下仍能保持一致。文章详细展示了如何通过版本控制(乐观锁)和Multi-op实现原子性状态更新,包括Worker节点Stat对象管理、初始状态获取以及最终的事务化重构实现。 关键词:ZooKeeper、分布式系统、事务、原子性、状态
2025-09-11 11:04:42
1135
原创 基于 ZooKeeper 的主从模式任务调度系统:设计与代码实现(JAVA)
本文介绍如何利用ZooKeeper构建主从式分布式任务调度系统。系统包含三个核心组件:Master节点负责任务调度和协调,通过临时节点实现领导者选举;Worker节点执行具体任务,通过临时节点注册服务并监听任务分配;Client节点提交任务请求。文章详细设计了ZooKeeper的ZNode目录结构,阐述各节点交互流程,并强调异步API和回调机制的重要性。该系统实现了任务动态分配、故障自动转移和执行状态跟踪等功能,为分布式任务调度提供了可靠解决方案。
2025-09-11 09:57:45
536
原创 技术解析:基于 ZooKeeper 实现高可用的主-从协调系统(通过例子深入理解Zookeeper如何进行协调分布式系统)
本文详细介绍了如何利用ZooKeeper实现高可用的主从协调系统。系统通过临时节点实现主节点选举和故障转移,利用持久节点管理从节点注册和任务分配。关键机制包括:主节点通过临时节点选举产生,备份节点监视主节点状态;从节点注册为临时节点并监控专属任务队列;客户端通过顺序节点提交任务。整个过程展示了ZooKeeper的原子操作和事件通知机制如何协同工作,为分布式系统提供可靠协调服务。通过命令行演示,清晰呈现了Znode和Watcher的实际应用场景。
2025-09-07 17:12:07
1172
原创 ZooKeeper入门概述:Znode,Watcher,ZAB .
ZooKeeper 的角色:分布式协调服务ZooKeeper 并不是一个通用数据库,而是一个 专门用于分布式环境下的协调服务。它的目标是:为分布式应用提供一种可靠的“约束与共识”机制,让多个节点在存在故障、延迟和网络不稳定的情况下,仍然能够保持一致的系统状态。其设计理念为ZooKeeper 的设计并不试图去解决分布式系统的所有难题: 它 不能消除网络延迟,也 无法让不同机器的时钟完全一致。它所做的,是将这些底层复杂性封装起来,向上层应用暴露一个 简单、可靠且具备强一致性保证 的接口。换句话说,
2025-09-03 18:42:46
1046
原创 Hive 数据查询与数据倾斜优化实践
在真实的企业级大数据环境中,Hive 查询经常需要处理数百万甚至上亿条日志数据。复杂查询性能不足——、多层聚合、跨表 JOIN 等操作容易导致 Shuffle 数据量暴增,Reduce 阶段成为瓶颈。数据倾斜严重—— 部分热点用户或字段值出现极端不均衡,导致某些 Reduce Task 处理数据量过大,查询整体被拖慢。因此,在学习 Hive 时,单纯执行语法练习已不足以应对实际场景。更重要的是,如何通过 SQL 重构、表设计(分区/分桶)、MapJoin、加盐拆分等手段,发现并解决数据倾斜与性能问题。
2025-09-02 15:25:44
1254
原创 Hive 分区+分桶写入的 Bug 分析与解决
Hive分区+分桶写入时易出现动态分区写入Bug,表现为Reduce阶段NullPointerException。这是由于Hive同时管理多分区多桶writer时存在逻辑缺陷。解决方案包括:1)改用静态分区+分桶;2)仅保留分区表;3)CTAS+分桶二次建表。建议优先使用分区表,避免分桶带来的复杂性,除非业务必须分桶优化。实践中,分区裁剪配合列存格式通常已能满足性能需求。
2025-09-02 14:12:49
410
原创 Hadoop集群故障排查实录:从DataNode丢失到主机名显示不对
摘要:在部署三节点Hadoop集群时,出现DataNode丢失、YARN服务异常等问题。排查发现各节点主机名启动环境有错误(部分节点显示为"ubuntu"),导致服务间通信失败。解决方案包括:统一设置标准主机名、同步/etc/hosts文件、校验Hadoop配置并重启集群。该案例表明,分布式系统中主机名一致性对服务稳定运行至关重要,配置不当会引发连锁故障。
2025-08-31 20:49:03
799
原创 通过场景实践学习理解HIVE中的内部表,分区表和分桶表
本文通过场景实践解析Hive数据仓库的三大核心设计:内部表、分区表和分桶表。内部表由Hive全权管理,适合临时数据;外部表仅管理元数据,适合生产环境。分区表通过分区键优化查询性能,实现分区剪裁;分桶表则通过哈希分桶优化大表JOIN和抽样。实践部分演示了从内部表迁移到外部表的源数据层构建,以及后续的分区优化方案,强调大数据环境下表设计对性能和安全的重要性。
2025-08-30 18:44:26
956
原创 HIVE 和Hadoop 配置环境报错:NoSuchMethodError 和 Invalid UTF-8
大数据平台部署问题解析:Guava冲突与文件编码异常 摘要:本文记录了在Hadoop 3.1.3环境部署Hive 3.1.3时遇到的典型问题。首先解决Guava版本冲突导致的NoSuchMethodError,通过统一依赖版本(Hadoop的Guava 27.0替换Hive的19.0);其次处理Invalid UTF-8编码错误,重建纯净的hive-site.xml配置文件。两个案例分别展示了大数据环境中依赖管理和配置文件处理的要点:严格检查核心依赖版本对齐,确保配置文件采用标准UTF-8编码。解决方案采用
2025-08-29 20:17:39
773
原创 数据仓库与Hive简介
本文介绍了数据仓库的基本概念及其与业务数据库的区别,重点阐述了数据仓库的分层架构(ODS→DWD→DWS→ADS)和核心设计理念。同时,详细讲解了Hive作为构建大数据仓库的事实标准工具,包括其架构特点(元数据与数据分离)、核心优势(易用性、可扩展性)以及如何实现数据仓库分层。Hive通过将SQL查询转换为分布式计算任务,使非技术人员也能高效处理海量数据,是连接传统数据仓库理论与现代大数据技术的重要桥梁。
2025-08-29 17:49:20
1003
原创 hadoop3.3.6版本yarn配置错误:解决 MapReduce 作业 ClassNotFoundException: MRAppMaster 错误
这是最关键的第一步,路径绝对不能错。登录到你的 Hadoop 服务器,进入 Hadoop 的安装目录,然后执行。Hadoop 不允许输出目录已存在。在重新运行作业前,需要先删除上一次失败时在 HDFS 上创建的输出目录。执行完以上步骤后,你的 MapReduce 作业应该就能在 YARN 上成功运行了。由于修改了 YARN 运行环境的配置,必须重启 YARN 服务才能使配置生效。示例)时,作业提交后很快就失败。在 YARN 上运行 MapReduce 作业(如。,以便它能正确设置环境变量。
2025-08-10 19:39:58
384
1
原创 错误处理[Message from syslogd@bigdata00 at Aug 10 10:31:57 ... kernel:[ 1388.982700] watchdog: BUG: so]
内核的显卡驱动程序试图对显示器进行操作。结果 GPU 卡死了,从未回复。正在等待的那个 CPU 核心因此被卡住,最终导致了“软死锁”错误。这个参数会强制系统使用一个简单、通用的帧缓冲(framebuffer)驱动,这个驱动要稳定得多。因为博主的虚拟机是一台服务器(Ubuntu 22.04 server),我不需要为命令行提供图形加速功能。这在服务器上非常常见,尤其是在“无头”服务器(没有连接显示器)上。重启之后,内核将不会再尝试加载完整的 KMS 驱动,那些。错误以及随之而来的软死锁问题应该会彻底消失。
2025-08-10 18:47:45
859
原创 MapReduce过程中的InputForm切片部分的入门详解(包含一点源码分析和案例分析)
MapReduce过程中的InputForm切片部分的入门详解(包含一点源码分析和案例分析)切片目的。切片机制、切片方式
2022-10-07 19:54:06
760
原创 MapReduce入门详解(以WordCount为例)
文章目录大致介绍MapReduceMapReduce的优缺点以WordCount为例介绍MapReduce的核心思想(重点)大致流程图各阶段的介绍生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants大致介绍MapReduceHadoop MapReduce是一个软件框架,可以轻松地编写应用程序,在大型集群(数千个节点)上以可靠、容错的方式并行处理大量数据(tb数据集)。MapReduce作业通常将输入数据集分割成独立的块,由map任务以完全并行的方式处理这些块。框架对映射的输
2022-04-16 14:53:38
6486
2
原创 NameNode中Fslmage镜像和Edits编辑日志详解
文章目录NameNode功能概述引入Fslmage镜像文件和Edits编辑日志的目的Fslmage镜像文件和Edits编辑日志的记录方式详解Fslmage镜像文件和Edits编辑日志大概介绍里面文件的含义详解seen_txud文件详解Fsimage镜像文件详解Edits编辑日志总结NameNode功能概述管理文件系统的命名空间(Namespace)。它维护着文件系统树(filesystem tree)及整棵树内所有的文件和目录的元数据(metadata),比如命名空间信息,块信息等。而NameNode为
2022-04-15 09:30:33
1499
1
原创 Hadoop中HDFS的读写流程详解
一、HDFS写流程示意图:(1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在,检查客户端是否有权限,如果以上条件均满足,执行(2)(2)NameNode响应客户端的请求,允许其上传文件。(3)客户端请求第一个 Block上传到哪几个DataNode服务器上。(注意:NameNode在返回3个DataNode节点之前,会存储相关信息到元数据,用于对其的管理)(4)NameNode返回3个DataNo
2022-04-13 23:11:40
6067
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅