(大数据)面试题汇总

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的高吞吐

数据仓库

一.数据仓库基础

二.用户存留和拉链表

大数据算法

一.海量数据处理

二.数据结构

大数据面试常见JAVA问题

一.JAVA基础

二.多线程

三.JVM

你可能感兴趣的:(菜鸟也学大数据,面试题汇总,大数据,hadoop,spark,kafka)