Hadoop生态
一、HDFS
- HDFS的读写流程?
- HDFS中,NameNode与DataNode的作用?
- SecondaryNameNode的作用以及与NameNode的区别和联系?
- 什么是集群安全模式?什么情况下会进入安全模式?以及安全模式的解决方法?
- 为什么HDFS不适合小文件?
- HDFS支持的存储格式和压缩算法都有哪些?
- 说说HDFS的可靠性策略
- HDFS的优缺点都有哪些?
二、MapReduce
- MapReduce的执行流程(Yarn模式)?
- MapReduce的关键类有哪些?maper方法有哪些?setup方法是干嘛的?它是每读取一行数据就调用一次这个方法吗?
- Shuffle过程原理(详细)
- combine函数的作用是什么?
- MapReduce在每个阶段的调优方法都有哪些?
- Hadoop的进程都有哪些?分别都有什么作用?
- Yran的Job提交流程?
- MapReduce中可干预组件有哪些?以及各组件的原理?
- 分区与分块的区别?
- resourceManager的工作职责是什么?
- NodeManager的工作职责是什么?
- 简述Hadoop的调度器(FIFO、Capacity Scheduler、Fair Scheduler)
三、Hive
- 描述一下Hive动态分区和分桶的使用场景和使用方法?
- Hive是怎么集成Hbase的?
- Hive查询的时候on和where的区别是什么?为什么?
- 说一下Hive的内部表、外部表以及分区表都有什么特点以及它们的使用场景
- Hive调优的方式有哪些?
- Hive数据倾斜的原因以及处理办法
- Hive自定义函数实现了什么接口、什么方法?
- 如何控制Hive中Mapper和Reduce的个数?
- Hive有哪些保存元数据的方式,每个有什么特点
四、HBase
- 说说HBase的特点都有哪些?
- Rowkey怎么设计,有什么好处?
- Hbase的优化方式有哪些?
- Hbase的读写流程
- 说说数据Flush的过程
- RowKey如何设计可以避免热点问题
- Hbase的最小存储单元是什么
- Hbase如何进行预分区以及作用?
- Hbase中的HFile什么时候要合并成大文件,什么时候要拆分成小文件
- 为什么Hbase查询比较块?
Spark技术栈
一、Scala
- 说一说Scala的偏函数和柯里化
- Scala的apply和unapply方法是什么作用?
- Java和Scala的区别
- Scala的优点有哪些?
- Scala的数据类型有哪些?
- Scala中什么是闭包?
- Trait和abstract class的区别是什么?
二.Spark Core
- Spark有几种部署模式?都有什么特点?
- driver的功能是什么?
- Hadoop和Spark都是并行计算,说说它们的不同点和它们的相同点
- 聊一聊Spark中RDD的概念,它有哪些特性
- 简述宽依赖和窄依赖的概念,groupByKey、reduceByKey、map、filter、union五种中哪些会导致宽依赖,哪些会导致窄依赖?
- Spark如何防止内存溢出
- stage、tast以及job之间的关系以及划分方式
- Spark中的reduceByKey和groupByKey的区别与用法
- map与mapPartitions的区别
- foreach和foreachPartition的区别
- coalesce与reparttion的区别
- 说说Spark血统的概念
- 说说Spark RDD的持久化机制
- 说说Spark提交任务的完整流程
- Spark Join的优化方式有哪些?
- Spark的shuffle有几种方式
- 哪些算子涉及到shuffle
- 简述一下MapReduce的shuffle与Spark的shuffle的过程
- Spark广播变量的作用
- 数据倾斜的解决方案
- Spark的通信机制
三、Spark SQL
- Dataset创建的几种方式?
- Dataframe相对rdd有哪些不同
- SparkSQL如何处理结构化数据和非结构化数据
- Spark SQL的原理
- Spark SQL中缓存方式有哪几种?registerTempTable是action类型的,为什么不发生缓存?
四、SparkStreaming
- SparkStreaming有哪几种方式消费Kafka中的数据,它们之间的区别是什么?
- 简述SparkStreaming窗口函数的原理
- 简述SparkStreaming的容错原理
核心组件
一、Flume
- Flume的组成与事务
- 介绍一下Memory Channel
- 说说File Channel
- 说说Kafka Channel
- 介绍一下Flume几种Sink
- 说说Flume拦截器的使用
- 什么是选择器
- 如何实现Flume数据传输的监控
二、Kafka
- Kafka和传统消息队列有何区别
- Kafka的应用场景
- Kafka在高并发的情况下,如何避免消息的丢失和消息重复?
- Kafka到SparkStreaming怎么保证数据的完整性,怎么保证数据不重复消费?
- Kafka的消费者高阶和低阶API有什么区别?
- Kafka是如何保证数据一致性和可靠性
- Spark实时作业宕机,kafka指定的topic数据堆积怎么办?
- 说一下Kafka的acks
- Kafka的读写流程?
- Kafka为什么只让leader进行读写?
- 为了避免磁盘被占满,Kafka会周期性的删除旧消息,那么删除策略有哪些?控制力度到什么程度,具体描述一下
- 简要描述Kafka数据高可用的原理是什么?
- Kafka的偏移量offset存放在哪里,为什么?
- 如何保证Kafka的消息有序?
- 说说Kafka的分区分配策略
- Kafka消息数据积压,消费能力不足怎么处理?
- 如何实现Kafka的高吞吐