这个Repo主要用来分享大数据面试题,目前已经涵盖 Hadoop、HBase、CBoard & Kylin、Cassandra、Flink、Flume、Hive、Impala、Oozie、Presto、Spark、Sqoop、Storm等内容,后续还会不断更新。
如果对于有所帮助,可以给个star。有纰漏的地方,欢迎给我们提PR。
如果想获取本Repo的PDF版本,可以用微信扫描下方二维码,回复 “bd” ,即可获取。如果二维码加载不出来,可以在微信搜索公众号 “程序员百科全书”,回复 “bd” ,即可获取PDF版本。
- 1.向Cassandra讲解
- 2.Cassandra用哪种语言写?
- 3.Cassandra(Cassandra)的原始作者是谁?
- 4.Cassandra数据库中使用哪种查询语言?
- 5.Cassandra的优点/优点是什么?
- 6.是否提到了Cassandra数据模型的一些重要组成部分?
- 5.数据模型(Data Model)
- 6.列(Colunmn)
- 7.列族(Column Family)
- 8.超列族(Super Column Family)
- 9.KeySpaces
- 10.Clusters
- 11.Cassandra的其他成分是什么?
- 12.Cassandra中有哪些不同的组合键?
- 13.什么是Cassandra中的数据复制?
- 14.Cassandra中的数据中心是什么意思?
- 15.cassandra用了哪些端口?
- 16.是不是单个seed意味着单点故障?
- 17.为什么不可以在jconsole里调用某个jmx方法呢?
- 18.为什么我会在日志文件里看到 “… messages dropped …”这样的信息?
- 19.Cassandra因为java.lang.OutOfMemoryError: Map failed挂掉了
- 20.如果再同一时刻发生两次更新会发生什么?
- 21.为什么在加入一个新节点的时候,会有Stream failed错误?
- 参考链接
- 1.CBoard
- 2.CBoard特性
- 3.Kylin的优点和缺点?
- 4.Kylin的rowkey如何设计?
- 5.Kylin的cuboid,cube和segment的关系?
- 6.一张hive宽表有5个维度,kylin构建cube的时候我选了4个维度,我select *的时候会有几个维度字段?
- 7.其他olap工具有了解过吗?
- 8.kylin你一般怎么调优
- 9.kylin的原理和优化?
- 10.为什么kylin的维度不建议过多?
- 11.Kylin cube的构建过程是怎么样的?
- 12.Kylin的构建算法
- 13.cube优化?
- 14.什么叫全量构建?
- 15.怎么样实现自动增量构建?
- 16.怎样实现在自己的web系统中查询kylin 的数据?
- 参考链接
- 2.Flink 相比传统的 Spark Streaming 有什么区别?
- 3.Flink 的运行必须依赖 Hadoop组件吗?
- 4.Flink集群有哪些角色?各自有什么作用?
- 5.说说 Flink 资源管理中 Task Slot 的概念
- 6.说说 Flink 的常用算子?
- 7.说说你知道的Flink分区策略?
- 8.Flink的并行度了解吗?Flink的并行度设置是怎样的?
- 9.Flink的Slot和parallelism有什么区别?
- 10.Flink有没有重启策略?说说有哪几种?
- 11.用过Flink中的分布式缓存吗?如何使用?
- 12.说说Flink中的广播变量,使用时需要注意什么?
- 13.说说Flink中的窗口?
- 14.说说Flink中的状态存储?
- 15.Flink 中的时间有哪几类?
- 16.Flink 中水印是什么概念,起到什么作用?
- 17.Flink Table & SQL 熟悉吗?TableEnvironment这个类有什么作用?
- 18.Flink SQL的实现原理是什么?是如何实现 SQL 解析的呢?
- 19.Flink是如何做到高效的数据交换的?
- 20.Flink是如何做容错的?
- 21.Flink 分布式快照的原理是什么?
- 22.Flink 是如何保证Exactly-once语义的?
- 23.Flink 的 kafka 连接器有什么特别的地方?
- 24.说说 Flink的内存管理是如何做的?
- 25.说说 Flink的序列化如何做的?
- 26.Flink中的Window出现了数据倾斜,你有什么解决办法?
- 27.Flink中在使用聚合函数 GroupBy、Distinct、KeyBy 等函数时出现数据热点该如何解决?
- 28.Flink任务延迟高,想解决这个问题,你会如何入手?
- 29.Flink是如何处理反压的?
- 30.Flink的反压和Strom有哪些不同?
- 31.Operator Chains(算子链)这个概念你了解吗?
- 32.Flink什么情况下才会把Operator chain在一起形成算子链?
- 33.消费kafka数据的时候,如何处理脏数据?
- 参考资料
- 2、Flume 特点?
- 3、flume 组成,Put 事物,Task 事务?
- 4、Flume 拦截器?
- 5.flume 和 kafka 采集日志区别,采集日志时中间停了,怎么记录之前的日志?
- 6、Flume 采集数据会丢失吗?(防止丢失机制)
- 7、Flume 内存?
- 8、FlumeChannel 优化?
- 9.Flume数据传输的监控的
- 10.描述Flume拦截器开发过程中的核心方法有哪几个以及各自作用是什么?拦截器带来的优缺点各是什么
- 11、flume 管道内存,flume 宕机了数据丢失怎么解决?
- 12、flume 和 kafka 采集日志区别,采集日志时中间停了,怎么记录之前的日志?
- 13、flume 有哪些组件,flume 的 source、channel、sink 具体是做什么的?
- 14.Channel Selector中的replicating和multiplexxing各是什么含义
- 15.自定义开发实现TailDirSource支持递归文件夹数据的实时收集
- 16. Flume 的 Channel
- 17.了解 Flume 的负载均衡和故障转移吗
- 18.Flume参数调优
- 19.Flume的事务机制
- 20.Flume Event 是数据流的基本单元
- 参考链接
- 1.Hbase是什么?
- 2.HBase 的特点是什么?
- 3.HBase 和 Hive 的区别?
- 4.HBase 适用于怎样的情景?
- 5.描述 HBase 的 rowKey 的设计原则?
- 6.描述 HBase 中 scan 和 get 的功能以及实现的异同?
- 7.请详细描述 HBase 中一个 cell 的结构?
- 8.简述 HBase 中 compact 用途是什么,什么时候触发,分为哪两种,有什么区别,有哪些相关配置参数。
- 9.HBase 如何优化?
- 10.Region 如何预建分区?
- 11.HRegionServer 宕机如何处理?
- 12.HBase 读写流程?
- 13.HBase 内部机制是什么?
- 14.HBase 在进行模型设计时重点在什么地方?一张表中定义多少个 Column Family 最合适?为什么?
- 15.如何提高 HBase 客户端的读写性能?请举例说明。
- 16.直接将时间戳作为行健,在写入单个 region 时候会发生热点问题,为什么呢?
- 17.请描述如何解决 HBase 中 region 太小和 region 太大带来的冲突?
- 参考链接
- 2、请列出正常工作的 hadoop 集群中 hadoop 都需要启动哪些进程,他们的作用分别是什么?
- 3、启动 hadoop 报如下错误,该如何解决?
- 4、请列出你所知道的 hadoop 调度器,并简要说明其工作方法?
- 5、当前日志采样格式为如下,请编写 MapReduce 计算第四列每个元素出现的个数
- 6、hive 有哪些方式保存元数据,各有哪些特点?
- 7、请简述 hadoop 怎么样实现二级排序?
- 8、用非递归方法实现二分查找
- 9、请简述 mapreduce 中,combiner,partition 作用?
- 10、HDFS 数据写入实现机制
- 11、hadoop 节点的动态上线下线的大概操作
- 12.MapTask 并行机制是由什么决定的?
- 13.MR 是干什么的?
- 14.combiner 和 partition 的作用:
- 15.什么是 shuffle
- 16.列举几个 hadoop 生态圈的组件并做简要描述
- 17.NameNode 的 Safemode 是怎么回事? 如何才能退出 safemode?
- 18.SecondaryNameNode 的主要职责是什么?简述其工作机制
- 19.一个 datanode 宕机,怎么恢复,简单说一下恢复流程?(运维)
- 20.hadoop 的 namenode 宕机,怎么解决?(运维)
- 21.简述 hadoop 安装?(运维)
- 22.Hadoop 中需要哪些配置文件,其作用是什么?(运维)
- 23. 请列出 hadoop 正常工作时要启动哪些进程,并写出各自的作用
- 参考链接
- 1.Hive与传统数据库的区别
- 2.Hive内部表和外部表的区别
- 3.Hive中order by,sort by,distribute by和cluster by的区别
- 4.row_number(),rank()和dense_rank()的区别
- 5.Hive中常用的系统函数有哪些
- 6.Hive如何实现分区
- 7.Hive导入数据的五种方式
- 8.Hive导出数据的五种方式
- 9.Hive 表关联查询,如何解决数据倾斜的问题?
- 10.写出hive 中split、coalesce 及collect_list 函数的用法(可举例)?
- 11.Hive 有哪些方式保存元数据,各有哪些特点?
- 12.Hive 的HSQL 转换为MapReduce 的过程?
- 13.Hive join 过程中大表小表的放置顺序?
- 14.Hive 的两张表关联,使用MapReduce 怎么实现?
- 15.所有的Hive 任务都会有MapReduce 的执行吗?
- 16.Hive 的函数:UDF、UDAF、UDTF 的区别?
- 17.说说对Hive 桶表的理解?
- 18.Hive 自定义UDF 函数的流程?
- 19.说下Hive的基本架构
- 20.hive分区和分桶的区别
- 21.hive的执行流程
- 参考资料
- 1.oozie 是什么
- 2.三个主要概念
- 3.Workflow
- 4.Coordinator
- 5.Bundle
- 6.oozie各个组件之间的关系
- 7.节点类型
- 8. 流程控制节点
- 9.动作节点
- 10.Oozie Cli命令 启动任务
- 12.Oozie Cli命令 停止任务
- 13.Oozie Cli命令 提交任务
- 14.Oozie Cli命令 开始任务
- 15.Oozie Cli命令 查看任务执行情况
- 参考链接
- 1.什么是presto
- 2.presto优势
- 3.presto查询速度规模
- 4.presto数据模型
- 5.presto架构
- 6.presto 接入方式
- 7.preto缺点
- 8.Coordinator
- 9.Worker
- 10.Connector
- 11.Catalog
- 12.Schema
- 13.Table
- 14.Statement
- 15.Query
- 16.Stage
- 17.Task
- 18.Split
- 19.Driver
- 20. Operator
- 21. Exchange
- 参考链接
- 1.spark有几种部署模式,每种模式的特点?
- 2.Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?
- 3.spark有哪些组件
- 4.spark工作机制
- 5.Spark应用程序的执行过程
- 6.driver的功能是什么?
- 7.Spark中Worker的主要工作是什么?
- 8.task有几种类型?
- 9.什么是shuffle,以及为什么需要shuffle?
- 10.Spark master HA 主从切换过程不会影响集群已有的作业运行,为什么?
- 11.Spark并行度怎么设置比较合适
- 12.Spark程序执行,有时候默认为什么会产生很多task,怎么修改默认task执行个数?
- 13.Spark中数据的位置是被谁管理的?
- 14.为什么要进行序列化
- 15.Spark如何处理不能被序列化的对象?
- 16.Spark提交你的jar包时所用的命令是什么?
- 17.Mapreduce和Spark的相同和区别
- 18.简单说一下hadoop和spark的shuffle相同和差异?
- 19. 简单说一下hadoop和spark的shuffle过程
- 20.partition和block的关联
- 21.Spark为什么比mapreduce快?
- 22.Mapreduce操作的mapper和reducer阶段相当于spark中的哪几个算子?
- 23.RDD机制
- 24.RDD的弹性表现在哪几点?
- 25.RDD有哪些缺陷?
- 26.什么是RDD宽依赖和窄依赖?
- 27.rdd有几种操作类型?
- 28.Spark累加器有哪些特点?
- 29.spark hashParitioner的弊端
- 30.RangePartitioner分区的原理
- 参考资料
- 1.Sqoop 在工作中的定位是会用就行
- 2.Sqoop导入hive时的参数
- 3.Rdbms中的增量数据如何导入?
- 4.Sqoop导入导出Null存储一致性问题
- 5.Sqoop数据导出一致性问题
- 6.Sqoop底层运行的任务是什么
- 7.Map task并行度设置大于1的问题
- 8.Sqoop数据导出的时候一次执行多长时间
- 9.sqoop 导入数据到HDFS注意事项
- 10.Sqoop1和sqoop2优缺点:
- 参考链接
- 1.什么是 storm?
- 2.提高并发度
- 3.当 Nimbus 或 Supervisor 守护进程死亡时会发生什么?
- 4.Nimbus 是单点故障吗?
- 5.Storm 如何保证数据处理?
- 6.storm 的可靠性如何实现,包括 spout 和 bolt 两部分?
- 7.storm 分组策略方式?
- 8.Storm 的物理架构?
- 9.Storm 实时低延迟的原因
- 10.离线计算是什么?流式计算是什么?
- 11.Storm 与 Hadoop 的区别
- 12.Storm 核心组件
- 13.当一个 worker 挂掉时会发生什么?
- 14.当一个 node(节点)挂掉时会发生什么?
- 15.当 Nimbus 或 Supervisor 守护进程死亡时会发生什么?
- 16.流的模式是什么?默认是什么?
- 17.Storm Group 分类
- 18.Storm 的特点和特性是什么?
- 19.storm 编程模型?
- 20.Spark Streaming 和 Storm 有什么不同?
- 参考链接
- 1.简单介绍 yarn?
- 2.Yarn 有什么特点?
- 3.为什么要使用 Yarn。
- 4.yarn 主要作用
- 5.yarn 的结构
- 6.Yarn 在运行过程中负责给应用分配资源的是什么
- 7.yarn 的工作流程
- 8.yarn 的调度器
- 9.YARN 高可用
- 10.什么是 container?
- 11.Yarn支持的调度器和硬件资源种类?
- 12.请问RM节点上有Container容器的这种说法吗?
- 13.在AM中,job已经被分成一系列的task,并且是为每个task来startContainer。为什么NM上要存一个application的数据结构呢?
- 14.是否只有负责启动ApplicationMaster的NodeManager才会维护一个Application对象?其他的NodeManager是否是根据ApplicationMaster发起的请求来启动属于这个Application的其他Container,这些NodeManager不需要维护Application的状态机?
- 15.Container的节点随机性?
