1000 个问题搞定大数据技术体系(长期更新)

大数据技术体系 专栏收录该内容
209 篇文章 53 订阅

序言

2018~2021 年期间,笔者阅读了200+大数据相关的书籍和专栏。

本专栏为笔者,在多年读书笔记的基础上,结合自身的大数据开发心得体会,呕心沥血之作。

同时笔者也根据个人推荐度对引用的文献进行了排行,详情请见参考文献。

来点关注吧,万分感谢!

在这里插入图片描述

本专栏姊妹篇

在这里插入图片描述

100个问题搞定大数据理论体系

100个问题搞定Java虚拟机

目录结构

在这里插入图片描述

HDFS(3.2.2)

  1. Hadoop是什么?
  2. 为什么使用Hadoop?
  3. Hadoop3.x有哪些新特性?
  4. Hadoop1.x 和 Hadoop2.x 有什么区别?
  5. HDFS的设计目标是什么?
  6. HDFS的设计需求有哪些?
  7. HDFS是什么?
  8. 怎么看待 HDFS 的设计思想?
  9. HDFS和普通的文件系统有什么差异?
  10. 图文详解HDFS体系架构
  11. SecondaryNameNode有什么作用?
  12. HDFS心跳机制是什么?
  13. HDFS上大文件如何切分?
  14. Block块是不是设置的越大越好?Block块是不是设置的越小越好?
  15. HDFS的高可用和联邦是什么?
  16. HDFS Snapshot 是什么?
  17. HDFS高可用原理是什么?
  18. HDFS容错性设计有哪些?
  19. HDFS读写流程是怎样的?
  20. HDFS是如何删除数据的?
  21. HDFS存储大量小文件有什么问题?如何存储大量小文件?
  22. SequenceFile 是什么?怎么用?
  23. HDFS MapFile 是什么?
  24. Hadoop 序列化是什么?
  25. Hadoop RPC是什么?
  26. Block块的存储策略是什么?HDFS副本放置策略是什么?
  27. HDFS副本机制是什么?
  28. HDFS机架感知是什么?
  29. HDFS的数据负载均衡策略有哪些?
  30. 你认为HDFS该如何解决三副本带来的存储成本问题?Hadoop3.x 的文件纠删码技术是什么?
  31. HDFS支持SSD存储吗?
  32. HDFS集中式缓存管理是什么?
  33. HDFS的启动流程怎样的?
  34. HDFS是如何进行权限管理的?
  35. HDFS是如何进行配额管理的?
  36. HDFS的文件归档(Archive)是什么?
  37. 如何理解HDFS的安全模式?
  38. 如何保障 HDFS 的数据安全?
  39. HDFS 的 Kerberos 认证是什么?
  40. HDFS 常用的命令行操作有哪些?
  41. HDFS 代码怎么写?
  42. 如何在两个HDFS集群之间如何传输数据?
  43. Hadoop有多少protocol?
  44. HDFS源码里面有哪些设计模式?
  45. HDFS源码中用到了哪些锁?
  46. 生产环境 Hadoop 集群对操作系统有哪些要求?
  47. HDFS如何调优?
  48. HDFS如何运维?
  49. HDFS常见的异常如何处理?

MapReduce(3.2.2)

  1. MapReduce是什么?有什么特点?
  2. MapReduce编程模型是怎样的?
  3. 为什么要淘汰MapReduce?
  4. MapReduce工作流程?
  5. 图文详解 MapReduce on YARN
  6. 如何解决MapReduce数据倾斜的问题?
  7. MapReduce 代码怎么写?
  8. MapReduce 的计数器(Counter)是什么?
  9. MapReduce如何调优?

YARN(3.2.2)

  1. YARN 的架构是怎样的?YARN 的核心组件有哪些?
  2. YARN应用运行原理是什么?
  3. 谈谈你对 YARN 这个框架的理解?
  4. YARN应用提交过程是怎样的?
  5. YARN中有哪些调度器?
  6. ResourceManager怎样实现高可用?
  7. YARN 如何调优?

在这里插入图片描述

Zookeeper(3.7.0)

  1. Zookeeper是什么?
  2. ZooKeeper 有什么特性?
  3. ZooKeeper有哪些应用场景?
  4. 如何用 ZooKeeper 实现分布式锁?
  5. ZooKeeper的架构是怎样的?
  6. ZooKeeper的选举机制是怎样的?
  7. 什么是ZooKeeper仲裁quorum? 为什么要仲裁?
  8. ZooKeeper数据模型是怎样的?
  9. ZooKeeper 的 Watch 机制是什么?
  10. ZooKeeper工作原理是什么?
  11. ZooKeeper问题如何应对?
  12. ZooKeeper 编程怎么写?

在这里插入图片描述

Hive(3.1.2)

  1. Hive 如何安装部署?
  2. Hive是什么?有什么特点?
  3. Hive与数据库的区别?
  4. Hive读时模式和写时模式的区别?
  5. Hive系统架构是怎样的?
  6. Hive的交互方式有哪些?
  7. Hive的数据类型有哪些?
  8. Hive数据模型是什么?
  9. Hive 的内部表与外部表有什么区别?
  10. Hive 的分区表是什么?
  11. Hive 的工作原理是什么?
  12. Hive 的数据怎么导入导出?
  13. Hive 的静态分区和动态分区是怎么回事?
  14. 将数据直接上传到分区目录(hdfs)上,让Hive分区表和数据产生关联有哪些方式?
  15. Hive 中分区是否越多越好?
  16. Hive 的分桶表是什么?有什么作用?
  17. Hive 桶表是否可以通过直接 load 将数据导入?
  18. Hive 分区和分桶的区别?
  19. order by,sort by,distribute by,cluster by的区别是什么?
  20. 聚合函数是否可以写在 order by 后面,为什么?
  21. 什么情况下 Hive 可以避免进行 MapReduce?
  22. Hive 的数据压缩格式怎么选择?
  23. Hive 的文件存储格式怎么选择?
  24. Hive 的 SerDe 是什么?
  25. Hive 中如何解决多字符分割场景?
  26. Hive 如何调优?

在这里插入图片描述

HBase(2.4.4)

  1. HBase 怎么安装部署?
  2. HBase是什么?有什么特点?
  3. HBase 和 RDBMS 相比有什么区别?
  4. HBase 整体架构是什么?
  5. HBase 表的数据模型是什么?
  6. HBase 的数据存储原理是什么?
  7. HBase 的 flush 机制和 compact 机制是什么?
  8. HBase 的 region 拆分机制是什么?
  9. HBase 表的预分区是什么?为什么要预分区?如何预分区?
  10. HBase 热点是什么?怎么解决 HBase 热点?
  11. 如何搞懂 HBase 的内部原理?
  12. HBase 读写数据流程是咋样的?
  13. HBase 的 bulkload 是什么?
  14. HBase如何进行数据备份?
  15. HBase二级索引?
  16. Hbase集群中每一个⻆色如何实现高可用?
  17. hbase的rowkey设计原则
  18. HBase过滤器?
  19. HBase计数器?
  20. HBase协处理器?
  21. Phoenix是什么?
  22. 常见异常处理?
  23. HBase存储模块总体设计
  24. Hbase应用场景
  25. HBase shell
  26. HBase JavaApi

在这里插入图片描述

Flume(1.9.0)

  1. Flume 是什么?Flume 有什么特点?
  2. Flume的架构是怎样的?
  3. Flume 是怎么保障可靠性的?
  4. Flume 的可靠性级别有哪些?
  5. Flume 如何自定义 Mysql Source?
  6. Flume 如何自定义 Mysql Sink?
  7. Flume 怎样实现数据的断点续传?
  8. Flume的静态拦截器?
  9. Flume自定义拦截器
  10. Flume 的使用场景是什么?
    在这里插入图片描述

Sqoop(已经停止维护)

  1. Sqoop 是什么?
  2. Sqoop 的使用场景是什么?
  3. Sqoop 基本架构是什么?
  4. Sqoop 1 和 2 区别
  5. Sqoop 工作原理是什么?
  6. 如何高效的增量收集数据?
  7. Sqoop Connector 有哪些?

DataX

待补充

Azkaban(3.30.1)

  1. 为什么需要工作流调度系统?
  2. Azkaban 是什么?有什么特点?
  3. Azkaban 基本架构是什么?
  4. Azkaban 的三种部署模式是什么?
  5. 常见的工作流系统对比

Airflow

待补充

在这里插入图片描述

Kafka(2.8)

  1. 为什么要有消息队列/消息引擎系统?
  2. Kafka 是什么?
  3. 为什么使用 Kafka?
  4. Kafka 核心概念有哪些?
  5. Kafka 的架构是怎样的?
  6. Zookeeper对于Kafka的作用是什么?
  7. Kafka 的线上集群部署方案是怎样的?
  8. Kafka 集群常用命令有哪些?
  9. Kafka的 ack 的三种机制是什么?
  10. Kafka 生产者消息分区机制?
  11. Kafka 生产者压缩算法有哪些?
  12. 如何提升 Kafka 生产者的吞吐量?
  13. 如何保证 Kafka 消息不丢失?
  14. Kafka 如何不重复消费数据?
  15. Kafka 如何保证消息的有序性?
  16. Kafka 积压了百万消息如何处理?
  17. Kafka 生产者遇到了异常如何处理?
  18. Kafka 客户端拦截器
  19. Kafka 如何自定义分区?
  20. Kafka 的 Java 生产者如何管理 TCP 连接?
  21. Kafka 的 Java 消费者如何管理 TCP 连接?
  22. 幂等生产者是什么?
  23. 事务生产者是什么?
  24. 消费者组是什么?
  25. Kafka 的 Coordinator 是什么?
  26. 消费者组重平衡是什么?
  27. 消费者组消费进度监控都怎么实现?
  28. Kafka副本机制是什么?Kafka 的 ISR 是什么?
  29. Kafka 的 Producer 消息发送原理是什么?
  30. Kafka 请求处理全流程
  31. Kafka 消费者组重平衡全流程
  32. Kafka 的Controller
  33. Kafka 的高水位(HW)是什么?
  34. Kafka 的 LEO 是什么?
  35. Kafka 的 Leader Epoch 是什么?
  36. Kafka 如何管理主题?
  37. Kafka 的动态配置是什么?
  38. 怎么重设消费者组位移?
  39. Kafka 常见工具脚本?
  40. Kafka 怎么调优?

待补充

在这里插入图片描述

Flink(1.13.2)

  1. 流计算框架对比?
  2. Flink 怎么部署安装?
  3. Flink 是什么?有什么特点?
  4. Flink 的编程模型是什么?
  5. Flink 功能模块是怎样的?
  6. Flink 的系统架构是怎样的?
  7. Flink 的集群部署模式有哪些?
  8. 一篇文章搞懂 Flink 的 Window
  9. Flink 的 Time 三兄弟
  10. 一篇文章搞懂 Flink 的 watermark 机制
  11. Flink 的状态保存和恢复

待补充

在这里插入图片描述

ELK(6.7.0)

  1. Elasticsearch 怎么安装部署?
  2. ELK 是什么?
  3. 如何安装 elasticsearch-head 插件?
  4. Elasticsearch 的核心概念有哪些?
  5. Elasticsearch 怎么管理索引?
  6. 一篇文章入门 Elasticsearch 查询
  7. Elasticsearch 如何定义字段类型mappings ?
  8. Elasticsearch 的分页解决方案
  9. Elasticsearch 中文分词器 IK 的安装与使用

ClickHouse

待补充

Kylin

待补充

在这里插入图片描述

Spark Core(3.3.0-SNAPSHOT)

因为笔者一直在研究 Apache Spark 的源码,故专栏中涉及 Spark 的源码版本都是基于 github 的 master 分支,当前版本号为:3.3.0-SNAPSHOT

  1. Spark是什么?为什么要设计Spark这个框架?
  2. Spark有什么特点?相比于其他分布式计算框架有什么优劣?
  3. Spark为什么这么快?
  4. Spark是如何实现高可用的?
  5. Spark是如何实现高容错的?
  6. spark生态圈
  7. RDD是什么?
  8. RDD是怎么来的?
  9. 你认为Spark为什么要设计出RDD这个抽象模型?
  10. RDD的弹性体现在哪些方面?
  11. RDD的容错性体现在哪些方面?
  12. RDD的五大特性是什么?为什么有这五大特性?
  13. RDD里面的Partition到底代表什么?/ RDD的存储原理是什么?
  14. RDD的窄依赖和宽依赖有什么区别?
  15. checkpoint主要适用于以下哪些场景?
  16. RDD的操作可以分为哪些类型?
  17. 创建RDD的方式
  18. RDD算子
  19. RDD,DataFrame,DataSet有什么区别?
  20. RDD compute/ iterator 实现逻辑
  21. 广播变量和累加器是什么?为什么要设计这两个低级API?它们两者是如何实现的?
  22. SparkContext是什么?有什么作用?
  23. Driver 和 SparkContext 有什么关系?
  24. SparkContext 工作原理是什么?/ SparkContext 整体运行流程是什么?
  25. DAGScheduler 是什么?有什么作用?
  26. DAGScheduler 是如何划分 Stage 的?
  27. DAG的生成机制
  28. DAGScheduler是如何提交Job的?
  29. DAGScheduler的调度流程是什么?
  30. TaskScheduler 是什么?有什么作用?
  31. TaskScheduler的工作原理是什么?
  32. TaskScheduler实例化
  33. TaskSchedulerImpl的初始化流程?
  34. TaskSchedulerImpl的启动流程?
  35. Taskschedulerlmpl是如何提交Task的?
  36. TaskSchedulerImpl是如何分配资源的
  37. Spark为什么要设计出DAGScheduler和TaskScheduler的双层调度体系?
  38. SparkEnv是什么?有什么作用?
  39. SparkConf
  40. 创建spark环境
  41. SparkUI是如何实现的?
  42. SparkContext初始化
  43. SparkContext的伴生对象
  44. 安全管理器SecurityManager
  45. Shuffle是什么?
  46. Spark的Shuffle相比于MapReduce有什么改进的地方?
  47. Spark中的Shuffle分为哪些类型?彼此之间有什么区别?
  48. Spark的Shuffle发展历程?
  49. Shuffle框架内核
  50. ShuffleManager是什么?有什么作用?
  51. Shuffle的注册流程是什么?
  52. Shuffle读写的流程是什么?
  53. Shuffle的发生时机?
  54. Shuffle抓过来的数据到底放到了哪里?
  55. Sorted-Based shuffle 流程?
  56. MapOutputTracker 是什么?有什么作用?
  57. Tungsten是什么?
  58. 为什么需要Tungsten?
  59. Tungsten是如何优化内存管理的?
  60. 内存管理模型?
  61. Master启动原理?
  62. Master的部署
  63. Worker启动原理?
  64. Executor启动原理?
  65. Executor创建
  66. Executor资源分配
  67. Executor启动
  68. Executor异常处理
  69. Master如何实现 HA?
  70. Master领导选举的流程?
  71. Master如何实现资源调度?
  72. Master,Worker,Driver,Executor分别是什么?彼此之间有什么联系?
  73. Worker的部署
  74. 注册worker的完整流程?
  75. Master是如何进行Worker超时检测的?
  76. Spark本地模式整体运行流程是什么?
  77. 本地部署模式有哪些?
  78. 以Client的部署模式提交应用程序
  79. 以Cluster的部暑模式提交应用程序
  80. local-cluster部署模式整体运行流程是什么?
  81. Spark的Standalone模式整体运行流程是什么?
  82. standalone部署模式的容错机制?
  83. Spark在YARN集群上面的整体运行流程是什么?
  84. Spark on YARN提交过程?
  85. HeartbeatReceiver的工作原理?
  86. PersistenceEngine是什么?
  87. StandaloneScheduleBackend是如何实现的?
  88. DriverEndpoint是如何实现的?
  89. CoarseGrainedExecutorBackend是什么?
  90. spark运行模式有哪些?
  91. ExecutorAllocationManager
  92. ContextCleaner的创建与启动
  93. SparkListener
  94. Spark存储模块有哪些关键组件?
  95. BlockManager是什么?有什么作用?
  96. 初始化块管理器BlockManager
  97. BlockStore
  98. Block锁是什么?
  99. Partition和Block有什么区别?
  100. 不同Storage Level对比
  101. Block是如何传输的?
  102. Block 的下载流程?
  103. Block的上传流程?
  104. Spark读写数据的流程?
  105. Spark中序列化和压缩有什么作用?
  106. cache是如何实现的?
  107. 缓存的适用场景
  108. 缓存工作机制解析
  109. checkpoint是如何实现的?
  110. 检查点 (checkpoint) 的适用场景和工作机制
  111. Spark是如何管理内存的?
  112. Executor内存模型
  113. AppendOnlyMap和PartitionedPairBuffer是如何实现的?
  114. MemoryManager是如何申请,释放内存的?
  115. HeapMemoryAllocator的工作原理?
  116. Spark存储模块之间是如何通信的?
  117. Spark启动时消息通信流程是什么?
  118. Spark运行时消息通信流程是什么?
  119. Spark RPC和Akka之间有什么关系?
  120. Spark RPC请求响应全流程是什么?
  121. ListenerBus是什么?有什么作用?
  122. StandaloneSchedulerBackend是什么?有什么作用?
  123. 执行器的通信接口( Executorbackend)
  124. CoarseGrainedExecutorBackend是什么?和Executor有什么关系?
  125. Driver和Master如何通信?
  126. Application如何注册?spark程序的注册机制
  127. LauncherBackend是什么?
  128. 内部交互的消息机制
  129. Storage模块通信层
  130. Rpc框架的基本架构
  131. RPC核心组件
  132. 事件总线
  133. 度量系统
  134. 创建心跳接收器
  135. Rpc环境
  136. Spark的作业调度全流程是什么?
  137. Spark是如何执行任务的?
  138. Spark 是如何获取执行结果的?
  139. TaskSetManager是什么?有什么作用?
  140. Task是什么?
  141. Task工作流程?
  142. Task获取最佳位置
  143. Executor中任务是如何执行的?
  144. Job运行流程?
  145. Job触发流程?
  146. Spark 提供了哪些监控手段?
  147. Spark UI怎么用?
  148. Spark Metrics是什么?
  149. Spark REST API 如何使用?
  150. Spark Shell如何使用?
  151. Spark有哪些运维脚本?

Spark SQL(3.3.0-SNAPSHOT)

  1. Spark SQL是怎么发展起来的?
  2. Spark SQL是什么?
  3. Spark SQL 通过什么来实现?
  4. DataFrame 编程模型是什么?
  5. RDD 和 DataFrame 的区别是什么?
  6. Dataset 是什么?
  7. SparkSession
  8. DataFrame API
  9. DataFrame 的常用操作
  10. 通过 RDD 如何构建 DataFrame
  11. Spark SQL 操作 MongoDB
  12. Spark SQL 中 Parquet 进行数据分片是如何实现的
  13. Spark SQL内置函数
  14. Spark SQL窗口函数
  15. Spark SQL UDF
  16. Spark SQL UDAF
  17. Spark SQL 解析引擎 Catalyst
  18. InternalRow 体系
  19. TreeNode 体系
  20. Expression 体系
  21. ANTLR
  22. 访问者模式
  23. AstBuilder
  24. Spark SQL逻辑计划
  25. LogicPlan 基本操作与分类
  26. QueryPlan
  27. UnResolvedLogicPlan 生成
  28. Catalog 体系
  29. Rule 体系
  30. AnalyzedLogicalPlan 生成过程
  31. Spark SQL优化器 optimizer
  32. optimizer 规则体系
  33. OptimizedLogicalPlan 的生成过程
  34. Spark SQL物理计划
  35. SparkPlan
  36. Spark SQL的执行原理

Spark Streaming

  1. Spark Streaming 是如何发展起来的?
  2. Spark Streaming 设计思想
  3. Spark Streaming 是什么?
  4. Spark Streaming 的特点
  5. Spark Streaming,Spark Structured Streaming,Storm,Flink 的对比
  6. Spark Streaming 工作原理
  7. Spark Streaming 整体架构
  8. DStream
  9. StreamingContext
  10. Spark Streaming 数据源
  11. Spark Streaming 转换输出操作
  12. 流数据上使用 DataFrame 和 SQL 进行操作
  13. Spark Streaming 持久化
  14. Spark Streaming checkpoint
  15. Spark Streaming 共享变量
  16. 使用 foreachRDD 设计模式
  17. 将 DStream 输出到文件中
  18. 将 DStream 输出到 MySQL 中
  19. 将 DStream 输出到 HBase 中
  20. 将 DStream 数据输出到 Redis 中

Spark Structured Streaming

待补充

参考文献(按推荐度排序)

在这里插入图片描述

官方文档都是要先阅读的,极客时间几个专栏都还不错,书籍推荐榜前几名强烈推荐!
后几名没什么必要去看,我都是引用了几句话所以加了进来。
博客引用不在推荐榜单排名内
随着专栏更新会不断更新~

  1. Hadoop 3.2.2 官方文档
  2. Spark 3.1.2 官方文档
  3. Kafka 2.8 官方文档
  4. HBase 2.4.4 官方文档
  5. ZooKeeper 3.7 官方文档
  6. Hive 3.1.2 官方文档
  7. Flume 1.9.0 官方文档
  8. 极客时间专栏《Kafka核心技术与实战》胡夕
  9. 极客时间专栏《从0开始学大数据》李智慧
  10. 极客时间专栏《大规模数据处理实战》蔡元楠
  11. 极客时间专栏《Spark核心原理与实战》王磊
  12. 《大数据架构详解:从数据获取到深度学习》朱洁,罗华霖编著
  13. 《图解 Spark:核心技术与案例实战》郭景瞻编著
  14. 《Spark大数据商业实战三部曲:内核解密商业案例性能调优 第 2 版》王家林,段智华,夏阳编著
  15. 《Spark内核设计的艺术:架构设计与实现》耿嘉安著
  16. 《Hadoop专家:管理、调优与 Spark YARN HDFS安全》(美)山姆·阿拉帕蒂(SamR. Alapati)著; 赵国贤等译
  17. 《Hadoop权威指南(第3版)》(美)怀特(White,T.)著;华东师范大学数据科学与工程学院译
  18. 《企业数据湖》(印)汤姆斯・约翰(Tomcy John),(印)潘卡・米斯拉(Pankaj Misra)著;张世武,李想,张浩林译
  19. 《Spark内核机制解析及性能调优》王家林等编著
  20. 《Hadoop海量数据处理-技术详解与项目实战第2版》范东来著
  21. 《大数据技术体系详解:原理、架构与实战》董西成著
  22. 《Hadoop大数据技术原理与应用》 黑马程序员编著
  23. 《Hadoop大数据挖掘从入门到进阶实战:视频教学版》邓杰编著
  24. 《Hadoop & Spark大数据开发实战》肖睿、雷刚跃主编
  25. 《大数据开发与应用》青岛英谷教育科技股份有限公司,山东工商学院编著
  26. 《大数据时代 hadoop 技术及应用分析》韦鹏程,施成湘,蔡银英著
  27. 《从 Paxos到 Zookeeper:分布式一致性原理与实践》倪超著
  28. 《大数据技术及应用探究》胡沛,韩璞著
  29. 《云时代的大数据技术与应用实践》朱利华著
  30. 《云计算中的大数据技术与应用》梁凡著
  31. 《大数据技术概论》陈明编著
  32. 《大数据应用基础》娄岩主编
  33. 《Hadoop大数据分析》高水彬,钱亮宏,方志军编著
  34. 《大数据资源》朱扬勇主编
  35. 《大数据高可用环境搭建与运维》天津滨海迅腾科技集团有限公司编著
  36. MapReduce-Counter使用-快速实现大文件行数的统计
©️2022 CSDN 皮肤主题:酷酷鲨 设计师:CSDN官方博客 返回首页

打赏作者

Shockang

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值