大数据技术之高频面试题
大数据技术之高频面试题
第1章 核心技术
1.1 Linux&Shell
- 1.1.1 Linux常用高级命令
- 1.1.2 Shell常用工具及写过的脚本
- 1.1.3 Shell中单引号和双引号区别
1.2 Hadoop
- 1.2.1 Hadoop常用端口号
- 1.2.2 Hadoop配置文件
- 1.2.3 HDFS读流程和写流程
- 1.2.4 HDFS小文件处理
- 1.2.5 HDFS的NameNode内存
- 1.2.6 纠删码原理
- 1.2.7 异构存储(冷热数据分离)
- 1.2.8 Shuffle及优化
- 1.2.9 Yarn工作机制
- 1.2.10 Yarn调度器
- 1.2.11 HDFS块大小
- 1.2.12 Hadoop脑裂原因及解决办法?
1.3 Zookeeper
- 1.3.1 常用命令
- 1.3.2 选举机制
- 1.3.3 Paxos算法和ZAB协议
- 1.3.4 Zookeeper符合法则中哪两个?
- 1.3.5 Zookeeper脑裂
- 1.3.6 Zookeeper用来干嘛了
1.4 Flume
- 1.4.1 Flume组成,Put事务,Take事务
- 1.4.2 Flume拦截器
- 1.4.3 Flume Channel选择器
- 1.4.4 Flume监控器
- 1.4.5 Flume采集数据会丢失吗?
- 1.4.6 Flume如何提高吞吐量
1.5 Kafka
- 1.5.1 Kafka架构
- 1.5.2 Kafka生产端分区分配策略
- 1.5.3 Kafka丢不丢数据
- 1.5.4 Kafka的ISR副本同步队列
- 1.5.5 Kafka数据重复
- 1.5.6 Kafka如何保证数据有序or怎么解决乱序
- 1.5.7 Kafka分区Leader选举规则
- 1.5.8 Kafka中AR的顺序
- 1.5.9 Kafka日志保存时间
- 1.5.10 Kafka过期数据清理
- 1.5.11 Kafka为什么能高效读写数据
- 1.5.12 自动创建主题
- 1.5.13 副本数设定
- 1.5.14 Kakfa分区数
- 1.5.15 Kafka增加分区
- 1.5.16 Kafka中多少个Topic
- 1.5.17 Kafka消费者是拉取数据还是推送数据
- 1.5.18 Kafka消费端分区分配策略
- 1.5.19 消费者再平衡的条件
- 1.5.20 指定Offset消费
- 1.5.21 指定时间消费
- 1.5.22 Kafka监控
- 1.5.23 Kafka数据积压
- 1.5.24 如何提升吞吐量
- 1.5.25 Kafka中数据量计算
- 1.5.26 Kafka的机器数量
- 1.5.27 Kafka如何压测?
- 1.5.28 磁盘选择
- 1.5.29 内存选择
- 1.5.30 CPU选择
- 1.5.31 网络选择
- 1.5.32 Kafka挂掉
- 1.5.33 服役新节点退役旧节点
- 1.5.34 Kafka单条日志传输大小
- 1.5.35 Kafka参数优化
1.6 Hive
- 1.6.1 Hive的架构
- 1.6.2 HQL转换为MR流程
- 1.6.3 Hive和数据库比较
- 1.6.4 内部表和外部表
- 1.6.5 4个By区别
- 1.6.6 系统函数
- 1.6.7 自定义UDF、UDTF函数
- 1.6.8 窗口函数
- 1.6.9 Hive优化
- 1.6.10 Hive解决数据倾斜方法
- 1.6.11 Hive的数据中含有字段的分隔符怎么处理?
- 1.6.12 MySQL元数据备份
- 1.6.13 如何创建二级分区表?
- 1.6.14 Union与Union all区别
1.7 Datax
- 1.7.1 DataX与Sqoop区别
- 1.7.2 速度控制
- 1.7.3 内存调整
- 1.7.4 空值处理
- 1.7.5 配置文件生成脚本
- 1.7.6 DataX一天导入多少数据
- 1.7.7 Datax如何实现增量同步
1.8 Maxwell
- 1.8.1 Maxwell与Canal、FlinkCDC的对比
- 1.8.2 Maxwell好处
- 1.8.3 Maxwell底层原理
- 1.8.4 全量同步速度如何
- 1.8.5 Maxwell数据重复问题
1.9 DolphinScheduler调度器
- 1.9.1 每天集群运行多少指标?
- 1.9.2 任务挂了怎么办?
1.10 Spark Core & SQL
- 1.10.1 Spark运行模式
- 1.10.2 Spark常用端口号
- 1.10.3 RDD五大属性
- 1.10.4 RDD弹性体现在哪里
- 1.10.5 Spark的转换算子(8个)
- 1.10.6 Spark的行动算子(5个)
- 1.10.7 map和mapPartitions区别
- 1.10.8 Repartition和Coalesce区别
- 1.10.9 reduceByKey与groupByKey的区别
- 1.10.10 Spark中的血缘
- 1.10.11 Spark任务的划分
- 1.10.12 Spark广播变量
- 1.10.13 SparkSQL中RDD、DataFrame、DataSet三者的转换
- 1.10.14 Hive on Spark和Spark on Hive区别
- 1.10.15 Spark内核源码(重点)
- 1.10.16 Spark统一内存模型
- 1.10.17 Spark为什么比MR快?
- 1.10.18 Spark Shuffle和Hadoop Shuffle区别?
- 1.10.19 Spark提交作业参数(重点)
- 1.10.20 Spark任务使用什么进行提交,JavaEE界面还是脚本
- 1.10.21 请列举会引起Shuffle过程的Spark算子,并简述功能。
- 1.10.22 Spark操作数据库时,如何减少Spark运行中的数据库连接数?
- 1.10.23 Spark数据倾斜
1.11 Spark Streaming
- 1.11.1 Spark Streaming第一次运行不丢失数据
- 1.11.2 Spark Streaming精准一次消费
- 1.11.3 Spark Streaming控制每秒消费数据的速度
- 1.11.4 Spark Streaming背压机制
- 1.11.5 Spark Streaming一个stage耗时
- 1.11.6 Spark Streaming优雅关闭
- 1.11.7 Spark Streaming默认分区个数
- 1.11.8 SparkStreaming有哪几种方式消费Kafka中的数据,它们之间的区别是什么?
- 1.11.9 简述SparkStreaming窗口函数的原理(重点)
1.12 Flink
- 1.12.1 Flink基础架构组成?
- 1.12.2 Flink和Spark Streaming的区别
- 1.12.3 Flink核心概念
- 1.12.4 你们公司Flink任务提交模式? Flink部署多少台机器?
- 1.12.5 Flink任务的并行度是怎样设置的?资源一般如何配置?
- 1.12.6 Flink的三种时间语义
- 1.12.7 你对Watermark的认识
- 1.12.8 Watermark多并行度下的传递、生成原理
- 1.12.9 Flink怎么处理乱序和迟到数据?
- 1.12.10 说说Flink中的窗口(分类、生命周期、触发、划分)
- 1.12.11 Flink的keyby怎么实现的分区?分区、分组的区别是什么?
- 1.12.12 Flink的Interval Join的实现原理?Join不上的怎么办?
- 1.12.13 介绍一下Flink的状态编程、状态机制?
- 1.12.14 实时项目当中有没有遇到大状态,如何调优?
- 1.12.15 Flink如何实现端到端一致性?
- 1.12.16 Flink分布式快照的原理是什么
- 1.12.17 Checkpoint的参数怎么设置的?
- 1.12.18 介绍一下Flink的CEP机制,匹配不上的数据怎么办?
- 1.12.19 Flink SQL的工作机制?
- 1.12.20 FlinkSQL怎么对SQL语句进行优化的?
- 1.12.21 Flink提交流程、内存模型(重点)
- 1.12.22 Flink反压产生原因&定位&解决(重点)
- 1.12.23 Flink数据倾斜定位、分析、解决(重点)
- 1.12.24 Flink常见的维表Join方案
- 1.12.25 FlinkCDC锁表问题
1.13 HBase
- 1.13.1 HBase存储结构
- 1.13.2 HBase的写流程
- 1.13.3 HBase的读流程
- 1.13.4 HBase的刷写策略
- 1.13.5 Region的切分
- 1.13.6 HBase的合并
- 1.13.7 RowKey设计原则
- 1.13.8 RowKey如何设计
- 1.13.9 HBase二级索引原理
1.14 Clickhouse
- 1.14.1 Clickhouse的优势
- 1.14.2 Clickhouse的引擎
- 1.14.3 Flink写入Clickhouse怎么保证一致性?
- 1.14.4 Clickhouse存储多少数据?几张表?
- 1.14.5 Clickhouse使用本地表还是分布式表
- 1.14.6 Clickhouse的物化视图
- 1.14.7 Clickhouse连接ZK频繁超时解决办法
- 1.14.8 Clickhouse的优化
- 1.14.9 Clickhouse的新特性Projection
- 1.14.10 Cilckhouse的索引、底层存储
1.19 JavaSE
- 1.19.1 什么是多线程&多线程的优点
- 1.19.2 如何创建多线程
- 1.19.3 如何创建线程池
- 1.19.4 ThreadPoolExecutor构造函数参数解析
- 1.19.5 列举线程安全的Map集合
- 1.19.6 StringBuffer和StringBuilder的区别
- 1.19.7 ArrayList和LinkedList的区别
- 1.19.8 HashMap和HashTable的区别
- 1.19.9 HashMap的底层原理
- 1.19.10 HashMap里面放100条数据,初始化应该是多少
1.20 MySQL
- 1.20.1 MyISAM与InnoDB的区别
- 1.20.2 MySQL四种索引
- 1.20.3 MySQL的事务
- 1.20.4 MySQL事务隔离级别
- 1.20.5 MyISAM与InnoDB对比
- 1.20.6 B树和B+树对比
1.21 Redis
- 1.21.1 Redis缓存穿透、缓存雪崩、缓存击穿
- 1.21.2 Redis哨兵模式
- 1.21.3 Redis数据类型
- 1.21.4 热数据通过什么样的方式导入Redis
- 1.21.5 Redis的存储模式RDB,AOF
- 1.21.6 Redis存储的是k-v类型,为什么还会有Hash?
- 1.21.7 Redis和HBase的数据不一致问题
第2章 离线数仓项目
2.1 提高自信
2.2 为什么做这个项目
2.3 数仓概念
2.4 项目架构
2.5 框架版本选型
2.6 服务器选型
2.7 集群规模
2.8 人员配置参考
- 2.8.1 整体架构
- 2.8.2 人员配置参考
- 2.8.3 你的的职级等级及晋升规则
2.9 从0-1搭建项目,你需要做什么?
2.10 数仓建模准备
2.11 数仓建模
2.12 数仓每层做了哪些事
2.13 数据量
2.14 项目中遇到哪些问题?(******)
2.15 离线---业务
第3章 实时数仓项目
3.1 为什么做这个项目
3.2 项目架构
3.3 框架版本选型
3.4 服务器选型
3.5 集群规模
3.6 项目建模
3.7 数据量
3.8 项目中遇到哪些问题?
3.9 实时---业务
第4章 用户画像项目
4.1 画像系统主要做了哪些事
4.2 项目整体架构
4.3 讲一下标签计算的调度过程
4.4 整个标签的批处理过程
4.5 你们的画像平台有哪些功能 ?
4.6 是否做过Web应用开发,实现了什么功能
4.7 画像平台的上下游
4.8 BitMap原理,及为什么可以提高性能
第5章 数据湖项目
第6章 测试&上线流程
6.1 测试相关
- 6.1.1 公司有多少台测试服务器?
- 6.1.2 测试服务器配置?
- 6.1.3 测试数据哪来的?
- 6.1.4 如何保证写的SQL正确性(重点)
- 6.1.5 测试之后如何上线?
- 6.1.6 A/B测试了解
6.2 项目实际工作流程
6.3 项目中实现一个需求大概多长时间
6.4 项目当前版本号是多少?多久升级一次版本
6.5 项目开发中每天做什么事
第7章 数据治理
第8章 中台
8.1 什么是中台?
8.2 各家中台
8.3 中台具体划分
8.4 中台使用场景
8.5 中台的痛点
第9章 算法题(LeetCode)
9.1 时间复杂度、空间复杂度理解
9.2 常见算法求解思想
9.3 基本算法
- 9.3.1 冒泡排序
- 9.3.2 快速排序
- 9.3.3 归并排序
- 9.3.4 遍历二叉树
- 9.3.5 二分查找
9.4 小青蛙跳台阶
9.5 最长回文子串
9.6 数字字符转化成IP
第10章 场景题
第11章 HQL场景题
尚大自研刷题网站的网址:http://forum.atguigu.cn/interview.html
第12章 面试说明
12.1 面试过程最关键的是什么?
12.2 面试时该怎么说?
12.3 面试技巧
- 12.3.1 六个常见问题
- 12.3.2 两个注意事项
- 12.3.3 自我介绍
XMind: ZEN - Trial Version