序言
2018~2021 年期间,笔者阅读了200+大数据相关的书籍和专栏。
本专栏为笔者,在多年读书笔记的基础上,结合自身的大数据开发心得体会,呕心沥血之作。
同时笔者也根据个人推荐度对引用的文献进行了排行,详情请见参考文献。
来点关注吧,万分感谢!
本专栏姊妹篇
目录结构
HDFS(3.2.2)
- Hadoop是什么?
- 为什么使用Hadoop?
- Hadoop3.x有哪些新特性?
- Hadoop1.x 和 Hadoop2.x 有什么区别?
- HDFS的设计目标是什么?
- HDFS的设计需求有哪些?
- HDFS是什么?
- 怎么看待 HDFS 的设计思想?
- HDFS和普通的文件系统有什么差异?
- 图文详解HDFS体系架构
- SecondaryNameNode有什么作用?
- HDFS心跳机制是什么?
- HDFS上大文件如何切分?
- Block块是不是设置的越大越好?Block块是不是设置的越小越好?
- HDFS的高可用和联邦是什么?
- HDFS Snapshot 是什么?
- HDFS高可用原理是什么?
- HDFS容错性设计有哪些?
- HDFS读写流程是怎样的?
- HDFS是如何删除数据的?
- HDFS存储大量小文件有什么问题?如何存储大量小文件?
- SequenceFile 是什么?怎么用?
- HDFS MapFile 是什么?
- Hadoop 序列化是什么?
- Hadoop RPC是什么?
- Block块的存储策略是什么?HDFS副本放置策略是什么?
- HDFS副本机制是什么?
- HDFS机架感知是什么?
- HDFS的数据负载均衡策略有哪些?
- 你认为HDFS该如何解决三副本带来的存储成本问题?Hadoop3.x 的文件纠删码技术是什么?
- HDFS支持SSD存储吗?
- HDFS集中式缓存管理是什么?
- HDFS的启动流程怎样的?
- HDFS是如何进行权限管理的?
- HDFS是如何进行配额管理的?
- HDFS的文件归档(Archive)是什么?
- 如何理解HDFS的安全模式?
- 如何保障 HDFS 的数据安全?
- HDFS 的 Kerberos 认证是什么?
- HDFS 常用的命令行操作有哪些?
- HDFS 代码怎么写?
- 如何在两个HDFS集群之间如何传输数据?
- 生产环境 Hadoop 集群对操作系统有哪些要求?
- HDFS如何调优?
- HDFS如何运维?
- HDFS常见的异常如何处理?
MapReduce(3.2.2)
- MapReduce是什么?有什么特点?
- MapReduce编程模型是怎样的?
- 为什么要淘汰MapReduce?
- MapReduce工作流程?
- 图文详解 MapReduce on YARN
- 如何解决MapReduce数据倾斜的问题?
- MapReduce 代码怎么写?
- MapReduce 的计数器(Counter)是什么?
- MapReduce如何调优?
YARN(3.2.2)
- YARN 的架构是怎样的?YARN 的核心组件有哪些?
- 谈谈你对 YARN 这个框架的理解?
- YARN应用提交过程是怎样的?
- YARN中有哪些调度器?
- YARN 的高可用设计有哪些?
- YARN 如何调优?
- 你认为传统的Yarn、Mesos调度方案存在哪些缺陷?Quasar 是什么?
Zookeeper(3.7.0)
- Zookeeper 3.6.3 安装部署教程
- Zookeeper是什么?
- ZooKeeper 有什么特性?
- ZooKeeper有哪些应用场景?
- 如何用 ZooKeeper 实现分布式锁?
- ZooKeeper的选举机制是怎样的?
- ZooKeeper 的 Watch 机制是什么?
- Paxos 算法详解
Hive(3.1.2)
- Hive 如何安装部署?
- Hive是什么?有什么特点?
- Hive与数据库的区别?
- Hive读时模式和写时模式的区别?
- Hive系统架构是怎样的?
- Hive的数据类型有哪些?
- Hive数据模型是什么?
- Hive 的内部表与外部表有什么区别?
- Hive 的分区表是什么?
- Hive 的工作原理是什么?
- Hive 的数据怎么导入导出?
- Hive 的静态分区和动态分区是怎么回事?
- 将数据直接上传到分区目录(hdfs)上,让Hive分区表和数据产生关联有哪些方式?
- Hive 中分区是否越多越好?
- Hive 的分桶表是什么?有什么作用?
- Hive 桶表是否可以通过直接 load 将数据导入?
- Hive 分区和分桶的区别?
- order by,sort by,distribute by,cluster by的区别是什么?
- 聚合函数是否可以写在 order by 后面,为什么?
- 什么情况下 Hive 可以避免进行 MapReduce?
- Hive 的数据压缩格式怎么选择?
- Hive 的文件存储格式怎么选择?
- Hive 的 SerDe 是什么?
- Hive 中如何解决多字符分割场景?
- Hive 如何调优?
HBase(2.4.4)
- HBase 怎么安装部署?
- HBase是什么?有什么特点?
- HBase 和 RDBMS 相比有什么区别?
- HBase 整体架构是什么?
- HBase 表的数据模型是什么?
- HBase 的数据存储原理是什么?
- HBase 的 flush 机制和 compact 机制是什么?
- HBase 的 region 拆分机制是什么?
- HBase 表的预分区是什么?为什么要预分区?如何预分区?
- HBase 热点是什么?怎么解决 HBase 热点?
- 如何搞懂 HBase 的内部原理?
- HBase 读写数据流程是咋样的?
- 一篇文章搞懂 HBase 的 BlockCache
- 一篇文章搞懂 HBase 的 Coprocessor
- 一篇文章搞懂 HBase 的 BulkLoad 机制
- 一篇文章搞懂 HBase 的 MSLAB
- 一篇文章入门 HBase 的 Java API
- HBase 怎样负载均衡?
- HBase 客户端 RPC 重试如何配置?
- HBase 如何避免 Full GC ?
- 哪些原因可能会导致 HBase 的 RegionServer 宕机?
- HBase 的 Shell 操作一应俱全
Flume(1.9.0)
- Flume 是什么?Flume 有什么特点?
- Flume的架构是怎样的?
- Flume 是怎么保障可靠性的?
- Flume 的可靠性级别有哪些?
- Flume 如何自定义 Mysql Source?
- Flume 如何自定义 Mysql Sink?
- Flume 怎样实现数据的断点续传?
- Flume 的使用场景是什么?
Sqoop(已经停止维护)
Azkaban(3.30.1)
Kafka(2.8)
- 为什么要有消息队列/消息引擎系统?
- Kafka 是什么?
- 为什么使用 Kafka?
- Kafka 核心概念有哪些?
- Kafka 的线上集群部署方案是怎样的?
- Kafka 集群常用命令有哪些?
- Kafka的 ack 的三种机制是什么?
- 如何提升 Kafka 生产者的吞吐量?
- 如何保证 Kafka 消息不丢失?
- Kafka 如何保证消息的有序性?
- Kafka 积压了百万消息如何处理?
- Kafka 如何实现自定义分区?
- Kafka 的客户端代码怎么写?
- Kafka 生产者压缩算法有哪些?
- Kafka 的幂等生产者是什么?
- Kafka 的事务生产者是什么?
- Kafka 的幂等性 Producer 和 事务型 Producer 有什么区别?
- Kafka 的 Java 生产者如何管理 TCP 连接?
- Kafka 的 Java 消费者如何管理 TCP 连接?
- Kafka 的拦截器是什么?怎么用?
Flink(1.13.2)
- 流计算框架对比?
- Flink 怎么部署安装?
- Flink 是什么?有什么特点?
- Flink 的编程模型是什么?
- Flink 功能模块是怎样的?
- Flink 的系统架构是怎样的?
- Flink 的集群部署模式有哪些?
- 一篇文章搞懂 Flink 的 Window
- Flink 的 Time 三兄弟
- 一篇文章搞懂 Flink 的 watermark 机制
- Flink 的状态保存和恢复
- Apache Flink 的 YARN Session 提交流程
- Apache Flink 的 Per-Job 提交流程
- Apache Flink 的 K8s Session 提交流程
ELK(6.7.0)
- Elasticsearch 怎么安装部署?
- ELK 是什么?
- 如何安装 elasticsearch-head 插件?
- Elasticsearch 的核心概念有哪些?
- Elasticsearch 怎么管理索引?
- 一篇文章入门 Elasticsearch 查询
- Elasticsearch 如何定义字段类型mappings ?
- Elasticsearch 的分页解决方案
- Elasticsearch 中文分词器 IK 的安装与使用
Maxwell
Presto
ClickHouse
ClickHouse 是什么?ClickHouse 有哪些特性?
Kylin
- Apache Kylin 是什么?
- Apache Kylin 有哪些特性?
- Apache Kylin 的预计算是怎么回事?
- Apache Kylin 的工作流程是什么?
- 一篇文章搞懂 Apache Kylin 4.x 的技术架构
Kubernetes
CDH/CDP
Spark Core(3.3.0-SNAPSHOT)
因为笔者一直在研究 Apache Spark 的源码,故专栏中涉及 Spark 的源码版本都是基于 github 的 master 分支,当前版本号为:3.3.0-SNAPSHOT
Spark RDD 论文详解
Spark 3.2.0 版本新特性 push-based shuffle 论文详解
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(三)系统设计
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(四)实现优化
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(五)评估结果
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(六)相关工作
Spark 3.2.0 版本新特性 push-based shuffle 论文详解(七)结论
随笔
- 如何成为 Apache Spark 的 Contributor?
- Spark 2.3 安装部署
- 为什么Spark这么牛逼?
- Spark Core核心概念一网打尽
- RDD是什么?
- SparkContext是什么?有什么作用?
- SparkConf 是什么?有什么作用?
- SparkEnv 是什么?有什么作用?
- SecurityManager 是什么?有什么作用?
- DAGScheduler 是什么?有什么作用?
- DAGScheduler 是如何划分 Stage 的?
- DAGScheduler的调度流程是什么?
- TaskScheduler 是什么?有什么作用?
- 参考 Apache Spark 实现 Java 和 Scala 的 maven 混合编译
- Scala 的代码风格怎么统一?这份 scalastyle 配置你可以无脑复制
- 参考 Apache Spark 的源码自定义实现 Logging 日志打印工具
- 编译 Apache Spark 源码报错?那是因为你漏掉了关键操作
- 使用 Spark MLlib 实现线性回归
- 使用 Spark GraphX 实现 PageRank 算法
- Spark 3.0 新特性——加速器感知的任务调度
- Spark 异常问题汇总
Spark SQL(3.3.0-SNAPSHOT)
Spark SQL 内置函数
Spark SQL 内置函数(一)Array Functions(基于 Spark 3.2.0)
Spark SQL 内置函数(二)Map Functions(基于 Spark 3.2.0)
Spark SQL 内置函数(三)Date and Timestamp Functions(基于 Spark 3.2.0)
Spark SQL 内置函数(四)JSON Functions(基于 Spark 3.2.0)
Spark SQL 内置函数(五)Aggregate Functions(基于 Spark 3.2.0)
Spark SQL 内置函数(六)Window Functions(基于 Spark 3.2.0)
Spark SQL functions.scala 源码解析
Spark SQL functions.scala 源码解析(一)Sort functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(二)Aggregate functions(基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(三)Window functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(四)Non-aggregate functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(五)Math Functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(六)Misc functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(七)String functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(八)DateTime functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(九)Collection functions (基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(十)Partition transform functions(基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(十一)Scala UDF functions(基于 Spark 3.3.0)
Spark SQL functions.scala 源码解析(十二)Java UDF functions(基于 Spark 3.3.0)
Spark SQL 工作流程源码解析
Spark SQL 工作流程源码解析(一)总览(基于 Spark 3.3.0)
Spark SQL 工作流程源码解析(二)parsing 阶段(基于 Spark 3.3.0)
Spark SQL 工作流程源码解析(三)analysis 阶段(基于 Spark 3.3.0)
Spark SQL 工作流程源码解析(四)optimization 阶段(基于 Spark 3.3.0)
Spark SQL 工作流程源码解析(五)planning 阶段(基于 Spark 3.3.0)
随笔
- Spark SQL是怎么发展起来的?
- Spark SQL是什么?
- Spark SQL 通过什么来实现?
- DataFrame 编程模型是什么?
- RDD 和 DataFrame 的区别是什么?
- 从 Spark 源码角度解读 Dataset
- 浅谈 Spark SQL 实现任务质量治理的思路
- Spark 中 Dataset.show 如何使用?有哪些值得注意的地方?
- Spark SQL 的 AQE 机制
- Spark SQL 如何自定义扩展?
- Spark SQL 支持哪些类型的 JOIN ?
- Apache Spark 怎么选择 JOIN 策略?
- Spark 3.x 版本的 Table Catalog API 是怎样的?
- Spark 3.x 的 WSCG 机制源码解析
- Spark 3.x 的 Exchange 体系源码解析
- 一篇文章学会 Spark 数据读写代码开发
- 一篇文章搞懂 Spark 3.x 的 CacheManager
- 一篇文章了解 Spark 3.x 的 Catalog 体系
参考文献(按推荐度排序)
官方文档都是要先阅读的,极客时间几个专栏都还不错,书籍推荐榜前几名强烈推荐!
后几名没什么必要去看,我都是引用了几句话所以加了进来。
博客引用不在推荐榜单排名内
随着专栏更新会不断更新~
- Hadoop 3.2.2 官方文档
- Spark 3.1.2 官方文档
- Kafka 2.8 官方文档
- HBase 2.4.4 官方文档
- Hive 3.1.2 官方文档
- 极客时间专栏《Kafka核心技术与实战》胡夕
- 极客时间专栏《从0开始学大数据》李智慧
- 极客时间专栏《大规模数据处理实战》蔡元楠
- 极客时间专栏《Spark核心原理与实战》王磊
- 《大数据架构详解:从数据获取到深度学习》朱洁,罗华霖编著
- 《图解 Spark:核心技术与案例实战》郭景瞻编著
- 《Spark SQL 内核剖析》朱锋、张韶全、黄明著
- 《Spark大数据商业实战三部曲:内核解密商业案例性能调优 第 2 版》王家林,段智华,夏阳编著
- 《Spark内核设计的艺术:架构设计与实现》耿嘉安著
- 《Hadoop专家:管理、调优与 Spark YARN HDFS安全》(美)山姆·阿拉帕蒂(SamR. Alapati)著; 赵国贤等译
- 《Hadoop权威指南(第3版)》(美)怀特(White,T.)著;华东师范大学数据科学与工程学院译
- 《企业数据湖》(印)汤姆斯・约翰(Tomcy John),(印)潘卡・米斯拉(Pankaj Misra)著;张世武,李想,张浩林译
- 《Spark内核机制解析及性能调优》王家林等编著
- 《Hadoop海量数据处理-技术详解与项目实战第2版》范东来著
- 《大数据技术体系详解:原理、架构与实战》董西成著
- 《Hadoop大数据技术原理与应用》 黑马程序员编著
- 《Hadoop大数据挖掘从入门到进阶实战:视频教学版》邓杰编著
- 《Hadoop & Spark大数据开发实战》肖睿、雷刚跃主编
- 《大数据开发与应用》青岛英谷教育科技股份有限公司,山东工商学院编著
- 《大数据时代 hadoop 技术及应用分析》韦鹏程,施成湘,蔡银英著
- 《从 Paxos到 Zookeeper:分布式一致性原理与实践》倪超著
- 《大数据技术及应用探究》胡沛,韩璞著
- 《云时代的大数据技术与应用实践》朱利华著
- 《云计算中的大数据技术与应用》梁凡著
- 《大数据技术概论》陈明编著
- 《大数据应用基础》娄岩主编
- 《Hadoop大数据分析》高水彬,钱亮宏,方志军编著
- 《大数据资源》朱扬勇主编
- 《大数据高可用环境搭建与运维》天津滨海迅腾科技集团有限公司编著
- MapReduce-Counter使用-快速实现大文件行数的统计