Hadoop
文章平均质量分 94
本专栏系统介绍 Hadoop 的核心原理与实战技能,涵盖 HDFS、MapReduce、YARN 等基础模块,带你从零搭建分布式集群,掌握大数据存储与计算的关键技术。通过丰富的实战案例,帮助读者深入理解 Hadoop 架构、运行机制及优化思路,是大数据工程师入门与进阶的不二之选。
讲文明的喜羊羊拒绝pua
拥有8年Java后端与大数据平台开发经验,曾在大疆等知名公司主导核心平台建设,具备丰富的架构设计与落地能力。擅长调度系统、存算分离湖仓架构与组件容器化,推动多个系统实现高可用、易扩展。在技术上,深入掌握Java并发编程与JVM调优,熟悉Spark、Flink、Kafka等大数据组件,具备DS、Amoro、Celeborn等开源项目贡献经验,具备强实战力与技术深度。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Apache Iceberg 如何实现分布式 ACID 事务:深度解析大数据时代的可靠数据管理
摘要:Iceberg的ACID事务机制解析 Apache Iceberg通过创新架构在分布式文件系统上实现真正的ACID事务能力。其核心机制包括:1)基于原子元数据更新的提交协议,确保事务原子性;2)快照隔离模型提供一致性视图;3)五层元数据结构(表元数据→快照→清单列表→清单文件→数据文件)保障持久性。关键技术包含乐观并发控制(OCC)、隐藏分区优化和自动元数据管理。与传统数据库相比,Iceberg无需中央锁管理器即可支持PB级数据的高并发写入,并提供时间旅行查询能力。原创 2025-06-03 21:24:13 · 1967 阅读 · 0 评论 -
现代数据湖架构全景解析:存储、表格式、计算引擎与元数据服务的协同生态
摘要:本文系统解析现代数据湖架构,重点探讨对象存储、三大表格式(Iceberg/Hudi/Delta Lake)、计算引擎与元数据服务的协作机制。通过对比分析各组件特性与适用场景,揭示数据湖在存储成本、实时性、灵活性等方面的优势,并提出企业选型策略:实时场景优选Hudi,分析场景采用Iceberg,Databricks生态选择Delta。架构设计实现存算分离,支持多引擎协同,成本降幅达75%,构建高效弹性的大数据平台。原创 2025-05-31 22:41:00 · 1471 阅读 · 0 评论 -
大数据组件工具——BI可视化 Superset
Superset是由Airbnb开源的企业级BI工具,支持数据查询与可视化。本文介绍了Superset的基本功能、基于Linux的安装步骤(包括依赖安装、虚拟环境配置及初始化),以及MySQL数据源的配置方法。详细展示了如何添加数据集、编辑表格、创建图表(如表格、柱状图、折线图)并保存到Dashboard。通过数据列转换(如时间格式处理)实现更灵活的可视化展示,帮助用户快速构建数据分析平台。原创 2022-06-26 18:26:00 · 1631 阅读 · 0 评论 -
ClickHouse从入门到精通(四)
文章目录ClickHouse从入门到精通(四)ClickHouse 高级篇数据一致性【重点】0. 准备测试数据1. 手动 OPTIMIZE2. 通过 group by 去重3. 通过 FINAL 查询物化视图1. 概述物化视图与普通视图的区别优缺点基本语法创建物化视图的限制物化视图的数据更新2. 案例实操准备测试数据创建物化视图导入增量数据导入历史数据MaterializedMySQL 引擎1. 概述特点使用细则2. 案例实操MySQL 开启 binlog 和 GTID 模式准备MySQL表和数据开启 Cl原创 2022-05-07 07:29:02 · 1248 阅读 · 0 评论 -
ClickHouse从入门到精通(三)
文章目录ClickHouse从入门到精通(三)ClickHouse 高级篇Explain 查看执行计划1. 基本语法2. 使用建表优化1. 数据类型时间字段类型空值存储类型2. 分区和索引3. 表参数4. 写入和删除优化5. 常见配置ClickHouse 语法优化规则0. 准备测试表1. count 优化2. 消除子查询重复字段3. 谓词下推4. 聚合计算外推5. 聚合函数消除6. 删除重复的 order by key7. 删除重复的 limit by key8. 删除重复的 using key9. 标量替原创 2022-04-26 00:00:16 · 894 阅读 · 0 评论 -
ClickHouse从入门到精通(二)
文章目录ClickHouse从入门到精通(二)ClickHouse 进阶篇SQL操作1. Insert2. Update 和 Delete3. 查询操作4. Alter 操作5. 导出数据副本1. 副本写入流程2. 配置步骤3. 案例演示集群1. 集群配置2. 配置一个默认集群分片集群1. 分片写入流程(3分片2副本共6个节点)2. 集群读取流程(3分片2副本共6个节点)3. 3分片2副本集群配置4. 配置三节点集群及副本ClickHouse从入门到精通(二)ClickHouse 进阶篇SQL操作原创 2022-04-23 01:02:09 · 3540 阅读 · 0 评论 -
ClickHouse从入门到精通(一)
ClickHouse从入门到精通ClickHouse 入门篇ClickHouse入门ClickHouse 是由俄罗斯的 Yandex 开源的一个用于联机分析 OLAP 的列式存储数据库管理系统,使用 C++ 语言编写,支持 SQL 实时查询的大型数据管理系统。由于 ClickHouse 在大型数据集查询处理的高效表现,从 2016 年开源以来,就吸引了全球的目光,甚至一度登上 github 的关注度头把交椅。OLAP:ClickHouse 的设计定位就是用于 OLAP 离线数据处理,相比于 OLT原创 2022-04-16 00:41:07 · 2601 阅读 · 0 评论 -
Scala总结
文章目录Scala总结Scala中的下划线使用总结方法转换为函数集合中的每一个元素获取元组 Tuple 中的元素模式匹配队列导包初始化变量Scala总结Scala中的下划线使用总结方法转换为函数scala> def m1(x: Int, y: Int) = x * ym1: (x: Int, y: Int)Intscala> val f1 = m1 _f1: (Int, Int) => Int = <function2>集合中的每一个元素scala>原创 2022-01-23 22:13:20 · 166 阅读 · 0 评论 -
Scala编程语言入门(3)
文章目录Scala编程语言入门Scala进阶trait特质1. 作为接口使用2. 定义具体方法3. 定义具体方法和抽象方法4. 定义具体字段和抽象字段5. 实例对象混入 trait模式匹配和样例类1. 匹配字符串2. 匹配类型3. 匹配数组4. 匹配集合5. 匹配元组6. 样例类7. 样例对象8. Option类型9. 偏函数异常处理1. 异常场景2. 捕获异常3. 抛出异常提取器泛型1. 定义一个泛型方法2. 定义一个泛型类3. 上下界协变、逆变、非变隐式转换和隐式参数1. 隐式转换2. 隐式参数3. 案原创 2022-01-23 21:55:59 · 651 阅读 · 0 评论 -
Scala编程语言入门(2)
文章目录Scala编程语言入门Scala进阶函数式编程1. 遍历 foreach2. 映射 map3. 扁平化映射 flatMap4. 过滤 filter5. 排序 sort6. 分组 groupBy7. 聚合 reduce8. 折叠 fold高阶函数1. 函数值作为参数2. 匿名函数3. 柯里化4. 闭包类1. 类的定义2. 类的构造器对象1. scala 中的 object2. scala 中的伴生对象3. scala 中 object 的 apply 方法4. scala 中 object 的 mai原创 2022-01-23 21:55:01 · 2137 阅读 · 0 评论 -
Scala编程语言入门(1)
文章目录Scala编程语言入门Scala简介搭建开发环境安装JDK安装 Scala SDK安装IDEA的scala插件scala的REPL交互式解释器Scala语法基础scala中声明变量scala中数据类型scala中的条件表达式scala中的块表达式循环1. for循环2. while循环方法和函数1. 方法2. 函数3. 方法和函数的区别4. 方法转换为函数数组、元组、映射数组1. 定长数组2. 变长数组3. 遍历数组4. 数组常用操作元组1. 定义元组2. 示例3. 访问元组映射Map1. 不可变M原创 2022-01-22 21:03:57 · 37142 阅读 · 0 评论 -
大数据组件工具——工作流调度器Azkaban(2)
文章目录工作流调度器AzkabanAzkaban使用Flow 2.01. 入门案例 HelloWorld2. 单job有多个command3. 包含多个有依赖关系job的flow4. 自动失败重试5. 手动失败重试方案一方案二6. 操作HDFS7. MR任务8. Hive任务解决方案:指定executorFlow 2.0高级1. javaprocess 类型2. 条件工作流运行时参数预定于宏运行时参数混合预定义宏3. 定时执行4. 邮件告警注册邮箱邮件告警案例工作流调度器AzkabanAzkaban使用原创 2022-01-11 23:53:59 · 1180 阅读 · 0 评论 -
大数据组件工具——工作流调度器Azkaban(1)
文章目录工作流调度器AzkabanAzkaban介绍为什么需要工作流调度系统工作流调度实现方式Azkaban简介Azkaban架构Azkaban基本架构Azkaban架构的三种运行模式1. solo server mode(单机模式)2. two server mode3. multiple executor modeAzkaban安装部署编译 azkaban1. 下载源码包2. 修改build.gradle3. 开始编译4. 获得安装包multiple executor模式安装1. 数据库准备3. 解压软原创 2022-01-04 23:53:48 · 2531 阅读 · 7 评论 -
大数据组件工具——实时数据同步 Maxwell
Maxwell是一款轻量级的MySQL数据实时同步工具,通过解析binlog日志生成JSON格式消息,支持发送至Kafka等多种平台。相比Canal,Maxwell具有使用简单、支持bootstrap历史数据初始化等优势。文章详细介绍了MySQL binlog的三种格式(Statement/Row/Mixed)、Maxwell的工作原理(伪装MySQL从库)、安装部署步骤及配置方法,并对比了主流binlog解析工具的差异。使用Maxwell需开启MySQL的binlog功能,配置ROW日志格式和server原创 2022-01-03 19:20:05 · 10403 阅读 · 8 评论 -
大数据组件工具——离线数据同步 DataX
DataX是阿里巴巴开源的离线数据同步工具,支持MySQL、Oracle、HDFS、Hive等多种异构数据源之间的高效同步。其采用Framework+plugin架构,通过Reader采集数据、Writer写入数据,Framework作为传输通道处理缓冲、流控等技术问题。DataX 3.0版本支持单机多线程同步,通过Job切分Task并组合为TaskGroup实现并发执行。典型应用场景包括从MySQL读取数据打印到控制台等,具有每日传输300TB数据的实战验证。安装部署需Linux环境及JDK1.8+支持,原创 2022-01-03 11:59:42 · 2242 阅读 · 0 评论 -
大数据组件工具——数据导入导出 Sqoop
Sqoop是一款Apache旗下的ETL工具,主要用于Hadoop与关系型数据库之间的数据传输。它能将MySQL、Oracle等数据导入HDFS、Hive、HBase,或将Hadoop数据导出到关系库。Sqoop通过将命令翻译为MapReduce任务实现数据传输,并定制化InputFormat和OutputFormat。Sqoop1采用客户端直接提交方式,而Sqoop2引入集中化管理的Server端,支持REST API和WebUI,安全性更高。安装需配置环境变量、依赖库及Hadoop组件路径。常用操作包括原创 2022-01-02 20:34:35 · 2546 阅读 · 2 评论 -
大数据组件工具——数据采集框架Flume(2)
Flume负载均衡与静态拦截器应用实践 摘要:本文介绍了Apache Flume的两个高级应用场景。首先详细讲解了负载均衡配置,通过Load balancing Sink Processor实现事件数据在多Agent间的均衡分发,配置了round_robin轮询算法,并展示了三节点集群的具体实现方案。其次,演示了静态拦截器在日志分类场景中的应用,通过在header中插入type标记实现access.log、nginx.log和web.log三类日志的自动分类存储到HDFS不同目录。文章包含完整的配置示例和启原创 2021-12-30 10:24:52 · 1025 阅读 · 1 评论 -
大数据组件工具——数据采集框架Flume(1)
Flume是一个分布式日志采集系统,主要用于大数据处理中的数据收集和传输。其核心组件Agent包含Source(数据采集)、Channel(数据传输)和Sink(数据输出)三部分。Flume支持从多种数据源(如网络端口、文件目录)采集数据,并输出到HDFS、Kafka等存储系统。文章通过两个实战案例演示了Flume的使用:一是采集网络端口数据并输出到控制台;二是监控目录文件自动上传至HDFS。配置文件中详细定义了各组件参数,并通过telnet和文件监控测试了功能。Flume具有高可靠性,能适应不同数据采集场原创 2021-12-26 21:07:20 · 2403 阅读 · 0 评论 -
Hadoop系列-14 Phoenix实战指南:原理解析、二级索引构建与性能优化全流程
Phoenix是一个基于HBase的开源SQL引擎,允许用户通过标准JDBC API操作HBase数据。其工作原理是将SQL语句转换为HBase指令执行。安装时需要先部署HBase集群,只需在一台服务器上安装Phoenix,并配置环境变量。Phoenix支持批处理方式执行SQL脚本,也提供命令行交互模式(sqlline.py),并可通过JDBC进行编程访问。使用Phoenix时需注意表名和字段名的大小写敏感性,建议使用双引号明确标识。Phoenix实现了HBase表与SQL表的映射,方便开发者以SQL方式操原创 2021-12-26 15:10:42 · 1116 阅读 · 0 评论 -
Hadoop系列-13 HBase从原理到实战:架构解析、预分区优化与Hive整合全面指南
HBase数据库存储架构与读写流程解析:HBase采用HRegionServer管理多个Region,每个Region包含多个Store(对应列族),Store由MemStore内存缓冲区和多个HFile磁盘文件组成。读流程通过ZK定位元数据,依次查询MemStore、BlockCache和HFile;写流程先写HLog和MemStore,再刷写为HFile。Flush机制通过MemStore大小、HLog数量等条件触发,分为prepare、flush、commit三阶段。Compact合并机制分为小合并(原创 2021-12-19 23:18:24 · 1550 阅读 · 0 评论 -
Hadoop系列-12 HBase从入门到实战:原理解析、集群部署与Shell/Java开发全攻略
HBase是基于Google BigTable论文设计的分布式列式数据库,具有高可靠性、高性能、海量存储和实时读写等特点。它依托HDFS实现扩展性,支持列式存储、多版本数据和稀疏存储,适用于交通、金融、电商等领域的海量数据存储与查询。HBase集群部署需配置hbase-site.xml等文件,依赖HDFS和ZooKeeper,启动后包含HMaster和HRegionServer进程。其数据模型包含行键、列族、列、单元格和时间戳,整体架构由Client、ZooKeeper、HMaster和HRegionSer原创 2021-12-18 22:32:16 · 940 阅读 · 0 评论 -
Hadoop系列-11 Hive函数实战与企业级调优:从内置函数到查询优化全解析
本文介绍了Hive中常用的内置函数,主要包括数值计算、日期处理、条件判断和字符串操作四大类。数值计算函数包含取整(round/floor/ceil)、随机数(rand)等;日期函数支持时间戳转换(unix_timestamp/from_unixtime)、日期提取(to_date/year/month)和日期计算(datediff/date_add)等;条件函数重点介绍了if、COALESCE和CASE语句;字符串函数包含长度计算(length)、反转(reverse)、连接(concat/concat_w原创 2021-12-09 00:25:39 · 466 阅读 · 0 评论 -
Hadoop系列-10 Hive进阶实战指南:分桶表、数据导入导出、分区与压缩存储优化
Hive提高篇主要内容包括分桶表、数据导入导出和分区操作。分桶表通过对列值哈希取模实现更细粒度数据划分,提升查询和取样效率。数据导入支持多种方式:直接插入、LOAD加载、查询加载、建表时指定LOCATION等。数据导出可通过INSERT导出、Hive Shell命令和EXPORT实现。分区分为静态分区(手动指定分区值)和动态分区。分桶表创建前需设置hive.enforce.bucketing=true,并通过INSERT...SELECT将普通表数据导入分桶表。该文还提供了相关SQL操作示例和注意事项。原创 2021-12-08 08:45:13 · 735 阅读 · 0 评论 -
Hadoop系列-09 Hive数仓基础全解:安装部署、架构原理与DDL实战详解
本文介绍了Hive 3.1.2的安装部署流程。主要内容包括:MySQL环境准备、Hive安装包下载与解压、配置文件修改(hive-site.xml和日志配置)、MySQL驱动包配置、环境变量设置、元数据库初始化等步骤。文章还详细说明了如何通过CLI和Beeline两种方式连接Hive服务,并提供了HiveServer2的配置方法。原创 2021-12-07 22:07:24 · 581 阅读 · 2 评论 -
Hadoop系列-01 Hadoop入门与集群实战:从环境搭建到架构解析全指南
本文详细介绍了Hadoop集群的安装部署流程。首先进行环境准备,包括服务器配置、防火墙关闭、时钟同步设置、创建普通用户hadoop并配置sudo权限。然后配置SSH免密登录,安装JDK环境。接着下载Hadoop安装包并解压,检查本地库支持情况。最后修改hadoop-env.sh等配置文件,为后续Hadoop服务启动做准备。文中提供了完整的命令操作步骤和服务器角色规划表(NameNode、DataNode、ResourceManager等),适合初学者快速搭建Hadoop集群环境。原创 2021-11-24 08:28:52 · 2421 阅读 · 1 评论 -
Hadoop系列-08 Hadoop企业级调优实战:性能瓶颈分析与参数优化全指南
Hadoop调优主要从HDFS和YARN两方面入手。HDFS调优包括调整NameNode线程数、优化日志存储路径和元数据冗余配置。YARN调优需根据节点实际情况设置内存参数,控制任务并发数以防止系统宕机。MapReduce优化需分析计算机性能、IO操作等因素,从数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜等六个方面进行调整,包括合并小文件、减少spill次数、合理设置任务数、使用数据压缩等。此外,文章还提供了详细的资源配置参数和容错参数设置建议,帮助提升Hadoop集群性能。原创 2021-12-05 18:09:26 · 268 阅读 · 0 评论 -
Hadoop系列-07 Hadoop YARN资源调度详解:架构原理与调度器实战全攻略
YARN是Hadoop的资源调度系统,采用主从架构设计,由ResourceManager(主节点)和多个NodeManager(从节点)组成。ResourceManager负责全局资源管理和分配,包含调度器和应用程序管理器组件。NodeManager监控节点资源并管理Container的生命周期。Container是YARN的资源抽象单位,封装CPU、内存等资源。ApplicationMaster为应用程序申请资源并监控任务执行。此外,JobHistoryServer记录作业历史运行情况,需通过配置文件启用原创 2021-12-05 17:20:24 · 2735 阅读 · 0 评论 -
Hadoop系列-06 深入理解Hadoop MapReduce:定制开发与执行机制全解析
本文介绍了Hadoop MapReduce框架的两个进阶功能:自定义OutputFormat和数据压缩。在自定义OutputFormat部分,通过实现根据订单评论类型(好评/其他)将数据输出到不同目录的案例,详细讲解了如何继承FileOutputFormat并重写RecordWriter来满足灵活的输出需求。在数据压缩部分,分析了shuffle阶段数据压缩的重要性,对比了Hadoop支持的多种压缩算法(如Gzip、Bzip2、LZO等)的特性,包括压缩工具、文件扩展名、是否可切分等信息。这两种技术都能有效提原创 2021-12-05 15:41:09 · 1585 阅读 · 0 评论 -
Hadoop系列-05 Hadoop MapReduce高级特性详解:分区、排序、序列化与分组实战
本文详细介绍了Hadoop中MapReduce的分区机制。首先分析了默认的HashPartitioner实现原理,通过key的hash值决定数据分区。然后通过手机流量统计案例,展示了如何自定义分区器:1)设计FlowBean存储流量数据;2)实现Mapper提取手机号和流量信息;3)自定义分区器按手机号前缀分配数据到6个分区;4)Reducer汇总各手机号流量。案例完整演示了从数据建模到分区逻辑实现的MapReduce开发流程,特别突出了自定义分区器的关键作用。原创 2021-12-01 23:03:06 · 1163 阅读 · 0 评论 -
Hadoop系列-04 Hadoop MapReduce进阶指南:原理解析与实战开发全流程
Hadoop MapReduce是一个分布式并行计算框架,采用"分而治之"思想处理大规模数据。其核心分为Map和Reduce两阶段:Map负责将任务分解为并行小任务,Reduce汇总结果。编程模型包含8个步骤:Map阶段2步(数据切分和处理)、Shuffle阶段4步(分区、排序、规约、分组)、Reduce阶段2步(合并排序和输出)。以词频统计为例,Mapper将文本拆分单词并标记为1次,Reducer汇总相同单词次数。Hadoop封装了专用数据类型如Text、IntWritable等替代原创 2021-11-29 22:39:14 · 1140 阅读 · 0 评论 -
Hadoop系列-03 Hadoop HDFS进阶实战:核心组件解析与小文件治理指南
本文深入剖析Hadoop分布式文件系统(HDFS)的核心组件NameNode和SecondaryNameNode工作机制。NameNode负责管理元数据信息,将元数据存储于内存以实现高效检索,并通过FSImage和edits文件实现持久化。为解决文件膨胀问题,SecondaryNameNode定期合并FSImage与edits文件。文章详细解析了元数据存储机制、检查点配置参数(如checkpoint周期设为1小时),并提供了查看FSImage和edits文件的命令方法。同时探讨了小文件治理方案,包括HAR文原创 2021-11-28 15:40:38 · 600 阅读 · 0 评论 -
Hadoop系列-02 Hadoop进阶详解:HDFS架构、原理与编程实战
本文介绍了Hadoop分布式文件系统(HDFS)的核心架构与基本操作。主要内容包括:1)HDFS采用分块存储机制,默认128MB为一个数据块,支持配置修改;2)采用3副本策略保障数据安全,可调整副本数量;3) 详细解析了NameNode、DataNode和Secondary NameNode的职责分工;4) 提供了HDFS常用Shell命令指南,包括文件上传下载、目录管理、权限设置等操作。文章通过示意图和配置示例,帮助读者理解HDFS的分布式存储原理和基本使用方法,为Hadoop进阶学习提供实用参考。原创 2021-11-26 20:59:41 · 2535 阅读 · 0 评论
分享