大数据面试题总结

1.说一下最近做的项目
(1)我把实时简单说了一下,说的一般
2.说一说为什么要数仓分层
(1)把维度建模随便说了下,又扯了一下分层
3.说一下数据倾斜
(1)没回答好,hive只说了groupby   flink说了一下keyby的三种情况
4.说一下hive小文件问题

1.介绍了一下最近的项目,说的实时架构,又说了一下建模
2.问hive优化
3.问小文件问题
4.问combinehiveinputformat是逻辑优化还是物理优化

1.说最近项目,实时·
2.问具体flink中做了哪些工作(指标,优化)
3.介绍Checkpoint
4.介绍clickhouse
5.问java会不会写微服务,让别人去ck拿数据那种,但又不能直接访问数据库?
6.flink的job提交流程?
7.你们的容错怎么做的?
8.数据转换数据交换怎么做的,提升它的效率
9.kafka三种消息投递语义
10.kafka哪些情况下有数据丢失的问题?
11.hive分区分桶的区别
12.窗口函数列举一些
13.UDF、UDAF、UDTF区别
14.spark数据倾斜怎么定位,怎么解决?

1.mr和hive on sprak的区别
2.有没有遇到过数据丢失,或者重复的问题 ,怎么解决
3.平时数据量多少
4.ES和CK的区别
5.hive中有没有遇到过数据倾斜,怎么处理的
6.数仓建模方面聊聊
7.平时负责比较多的工作

1.你们数仓架构选型
2.你们数仓的是怎么建模的
3.会Python嘛
4.目前来说你们公司日活多少
5.公司一天数据多少
6.公司现在每天订单量有多少,
7.公司现在的日志有过亿嘛
8.Hive的优化

1.自我介绍
(1)我说了一下大概经历,强调了一下主要做数仓建模和采集以及一部分指标的分析
2.讲一下flink的批流一体以及容错性
3.讲一下hadoop读写流程
4.讲一下数仓建模
5.说一下离线中做了哪些指标
6.让具体说了一下留存率是怎么做的
7.有没有用过拉链表,讲讲
8.说说自己的优势
(1)我说数仓建模,flink
9.又问我建模完成后怎么检验整个数仓建模的质量
10.共享屏幕写了一道留存率sql

1.HDFS读写流程
2.HDFS小文件
3.Hive SQL翻译成执行任务步骤
4.Hive数据倾斜
5.Hive分区和分桶什么时候用
6.Flink和Spark Streaming的区别
7.Flink分区

1、hive小文件
2、Java线程、集合 介绍一下
3、Kafka精准一次
4、Sql题 七连三
5、Hive基本数据类型
6、如果源关系数据库频繁做数据变更,hive计算的比较慢,hive怎么保证跟源头数据一致
7、hbase有个别超大表,其他都是小表,怎么办
8、Hql编译过程
9、Hdfs读写流程
10、建模,聊聊,关系型建模和维度建模优缺点
11、冒泡排序
12、Hbase怎么保证数据不丢
13、Hive里timestamp怎么转date

公司里架构师给做的面试:

  1. 3道手写Java题

    (1) 写一个list,往里放几个Integar,把大于5的数剔除

    (记住要输出,要自己测试一下,被追问难道写完代码,自己不测吗)

    (2) 写两个String,特别长,转换不了Integar,如何进行相加操作?

(3) Java的流式处理会写吗?被提醒用Java 的Stream API

  1. 3道Spark 题   1T的数据  100 Core 400G内存

    (1) 游戏分区,求每个区用户排名Top 5?

(2) 取所有用户排名Top5?

(3) 如何把所有用户的排名按照从小到大排列,输出到 HDFS上?

  1. 请讲一下函数式编程
  2. 你们用户画像标签工厂是用来干什么的?
  3. Flink的水印和窗口源码有看过吗?是在哪个具体的类?
  4. 你们维度数据要做ETL吗?除了用户信息脱敏?没有做其他ETL吗? 你怎么保证用户填写的出生日期是正确的? 过滤某些字段的null,格式,
  5. redis会什么? 讲了数据类型,讲了TTL设置,讲了缓存穿透,讲了Redis旁路缓存
  6. redis做旁路缓存怎么和HBase保持数据一致性 先读redis,没有再去读HBase,把HBase读到的结果写到Redis里再返回结果 如果修改数据,先修改redis的,再修改HBase 面试官说,如果先修改redis,再修改HBase失败怎么办?
  7. 不给你RabbitMQ,Kafka,现在让你用redis做消息队列,你要怎么做?

直接主管面试:

1.Flink每一层都存储在哪?你觉得这样一个架构有什么优点?有什么缺点?

2.你们用什么来监控Flink作业的?

3.你们怎么上线这个Flink程序的?

我说了本地测试,UAT测试,才能上

他说:不是这个意思,你们是怎么上线的?你能具体讲一讲吗?

4.你对分布式有什么想法?

提到了单台机器的存储和计算不足,多台机器可以。提到了CAP原则(真不该提)

5.HDFS满足CAP原则吗?

6.Kafka怎么保证数据高可用和分区一致性的?

7.上面提到了leader和follower,问我怎么选的,我说controller通过副本同步队列选的,他问controller挂了怎么办?

8.你懂PAXOS算法吗?

9.你对分区和分片是怎么理解的?

10.Buffer和cache有什么区别?

一面(30分钟)

1.讲了一下我主要工作内容
2.问数仓建模
3.问了两个简单的sql top3 7天内3天连续
4.问了离线的业务

二面(30分钟)

1.还是讲了一下数仓建模
2.问flume到kafka到flume 端到端的一致性
3.然后又是问业务

一面(15分钟)

1.说一下最近做的项目
(1)我把实时简单说了一下,说的一般
2.说一说为什么要数仓分层
(1)把维度建模随便说了下,又扯了一下分层
3.说一下数据倾斜
(1)没回答好,hive只说了groupby   flink说了一下keyby的三种情况
4.说一下hive小文件问题

二面(15分钟)

1.介绍了一下最近的项目,说的实时架构,又说了一下建模
2.问hive优化
3.问小文件问题
4.问combinehiveinputformat是逻辑优化还是物理优化

1.说最近项目,实时·
2.问具体flink中做了哪些工作(指标,优化)
3.介绍Checkpoint
4.介绍clickhouse
5.问java会不会写微服务,让别人去ck拿数据那种,但又不能直接访问数据库?
6.flink的job提交流程?
7.你们的容错怎么做的?
8.数据转换数据交换怎么做的,提升它的效率
9.kafka三种消息投递语义
10.kafka哪些情况下有数据丢失的问题?
11.hive分区分桶的区别
12.窗口函数列举一些
13.UDF、UDAF、UDTF区别
14.spark数据倾斜怎么定位,怎么解决?

1. Spark的版本和对应的新特性

主要是spark3.0之后的sparksql的AQE和动态分区裁剪

   AQE里面涉及了动态合并shuffle partition , 动态调整join 策略,动态优化倾斜join

2. Clickhouse和ES对比

大数据面试题总结_第1张图片

3. 介绍项目

4. 小文件问题

 

1)自我介绍
(2)只问了一个SQL题

部门表:   id,   部门名称
人员表:  id, name,  部门id
订单表:  id, 件数,  单价

求:每个月,各个部门的销售TOP10

(3)考虑SQL性能的优化,

自我介绍
介绍一个项目
kafka数据数据丢失问题
kafka数据积压问题
kafka数据已经发生积压了,如何处理
Hadoop 组成, 读写流程
Hadoop如何保证高可用
Linux常用命令
修改配置文件使用哪个命令
如何在一个文件中快速定位一个单词
那你们的ETL数据清洗是如何实现的
json的数据格式, 你们项目中如何使用的
SparkStreming了解吗
两个集群 A,B, 集群A中有一张表, B中也有一张表,两张表的额结构不同,如何吧A表中的数据存入B表中(每太听懂他的意思,我答的把A表中的数据读取到程序中,转换结构后存入B表)

1)介绍最近的一个项目
(2)需求来源是公司自己的还是用户的
(3)有没有参与过数仓模型,指标,等的分析构建
(4)怎么确保指标正确性,出厂测试
(5)hive的数据倾斜,SQL的优化问了一堆,数据去重方式
(6)离职原因,加班问题

1)Flink的容错机制
(2)Flink是怎么保证流式处理的
(3)Flink窗口用的多吗,都用在哪里了
(4)FlinkAPI用的多还是FlinkSQL用的多
(5)说一下Flink怎么处理乱序数据的
(6)kafka怎么保证不丢数据
(7)kafka节点挂了怎么办
(8)Kafka怎么消费已经消费的数据
(9)kafka数据积压怎么办
(10)kafka的数据是存在内存里还是存在磁盘里,传输过程中数据每条有多大
(11)你们数仓分了几层
(12)你们项目是怎么部署的
(13)Hive用的多吗
(14)Java功底怎么样

实时串讲
为什么用ck,除了ck还有什么
为什么用hbase。
数据从哪儿过来
flink怎么保证一致性
如果有同一个用户的业务数据和行为数据存在不同位置多个表,怎么判断他们是同一个人
实时数仓数据量问题
Java怎么实现多线程
Java怎么保证线程安全
用过啥Java框架 我说springboot
细说springboot
为啥年底了要离职

1)做指标的话有没有历史数据更新的指标
(2)业务数据和日志数据是怎么采集到Kafka的
(3)canal和Maxwell的底层是什么
(4)写sql的时候怎么优化的
(5)了解sparkhint吗
(6)clickhouse的建表语句是怎么设计的
(7)离线数仓的sql的资源是怎么分配的

1)做指标的话有没有历史数据更新的指标
(2)业务数据和日志数据是怎么采集到Kafka的
(3)canal和Maxwell的底层是什么
(4)写sql的时候怎么优化的
(5)了解sparkhint吗
(6)clickhouse的建表语句是怎么设计的
(7)离线数仓的sql的资源是怎么分配的

1)自我介绍
(2)说一下实时架构
(3)你们的QPS是多少,每天的增量数据有多少
(4)你们的独立访客是统计一天的吗
(5)工作中是偏开发还是偏运维
(6)公司的服务器是多少台,云的还是物理的
(7)你们部门还有哪些数据部门
(8)你们部门是在公司里面担任数据中台的角色吗
(9)Clickhouse使用的是分布式的吗
(10)使用Clickhouse遇到过什么问题吗
(11)你们的结果是输出给哪些部门
(12)你经历过高并发查询的问题吗
(13)你们的可视化是内部使用还是APP用户使用
(14)海豚调度器使用的时候哪里不方便,没有缺点吗
(15)除了java还会什么语言
(16)说一下你知道的窗口函数
(17)hive sql的数据如果有问题,我们怎么定位?
(18)你还有什么要问的吗

1)日志采集
(2)Kafka中数据如何写入数仓
(3)有多少分区,分区的原因
(4)为什么出现数据积压
(5)使用什么使数据不丢失
(6)ack 和副本的关系
(7)DataX用来做什么的,怎么实现同步,运行模式
(8)Hbase 什么时候用到的 ,怎么取得维度数据
(9)指标计算有参与嘛
(10)有设计到java的二次开发
(11)海豚监控器用来做什么的
(12)hive小文件哪里遇到过怎么处理
(13)离线 中能够kafka到hadoop 用的程序还是
(14)实时 大屏接口 是做的大屏查询代码还是redis 指标数据

1)日志采集
(2)Kafka中数据如何写入数仓
(3)有多少分区,分区的原因
(4)为什么出现数据积压
(5)使用什么使数据不丢失
(6)ack 和副本的关系
(7)DataX用来做什么的,怎么实现同步,运行模式
(8)Hbase 什么时候用到的 ,怎么取得维度数据
(9)指标计算有参与嘛
(10)有设计到java的二次开发
(11)海豚监控器用来做什么的
(12)hive小文件哪里遇到过怎么处理
(13)离线 中能够kafka到hadoop 用的程序还是
(14)实时 大屏接口 是做的大屏查询代码还是redis 指标数据

1)介绍离线流程
(2)业务数据怎么做的。更新数据和历史数据怎么处理 ,如何合并
(3)ods层过来之后如何处理
(4)数仓各层都做了什么
(5)Dwd层是单事务还是多事务,都有哪些业务过程
(6)公司数据量

1)对spark做一个概述
(2)spark和hadoop区别
(3)spark的yarn任务提交流程
(4)spark重要组件
(5)spark算子分类
(6)转换算子和行动算子区别
(7)SparkSQL中RDD、DataFrame、DataSet
(8)Repartition和Coalesce区别
(9)reduceByKey与groupByKey的区别
(10)宽依赖和窄依赖概念
(11)spark广播变量和累加器,实际生产应用
(12)driver两种运行模式
(13)一种rdd算子实现Wordcount(Java/scala),口述,我直接口述的代码
(14)spark生产环境问题数据倾斜
(15)spark的OOM问题
1)什么时候会产生
2)在哪里查看
2)怎么解决
(16)Java方法重载和重写
(17)捕获异常、进程和线程区别
(18)jvm的oom问题
(19)另一个面试官,英语水平怎么样,听说读写那个强,用英语介绍一下您们的项目
(20)中间问了一些Linux常用命令
1)查看内存
2)查看进程
3)查看端口占用情况
4)查看某个进程内存
5)查看隐藏文件并排序

(1)上来先自我介绍  我串讲了五分钟实时
(2)你为什么要来成都 ?
(3)你在你们公司主要做什么 做哪一块
(4)就按照简历挨个问 一个一个问
(5)问完简历 大概半小时    然后问了kafka 选举机制
(6)你有什么想问的

1)先自我介绍
(2)项目串讲
(3)你在这个流程中做了那些内容呢  (我就说集群搭建起来以后主要写指标)
(4)用户流出率怎么做得呢
(5)MySQL 数据库删除数据的方式有哪些
(6)你们用MySQL 用的多吗

1)自我介绍
(2)项目介绍
(3)公司数据量,服务器
(4)写过最难的SQL
(5)hive小文件
(6)会不会linux

1)二分查找:
public int binary_search(int[] nums, int target) {
}

(2)sql 题目:如下的ODS层数据表结构和数据样例:

cust_id,event,desc,time_stamp
123,login,192.168.3.24,1234567890
123,visit,http://xxx.com.cn,1364817288
123,visit,xxxxxxxx,126738278356
123,exit,12:AB:34:21:CD:A5,221618817288
要求将其清洗为cust_id,event,ip,mac,time_stamp结构的标准表(假设忽略原始数据的质量问题),标准化的数据:
cust_id,event,ip,mac,time_stamp
123,login,192.168.3.24,12:AB:34:21:CD:A5,1234567890
123,visit,192.168.3.24,12:AB:34:21:CD:A5,1364817288
123,visit,192.168.3.24,12:AB:34:21:CD:A5,126738278356
123,exit,192.168.3.24,12:AB:34:21:CD:A5,221618817288

(3)spark提交流程
sprk出现数据倾斜,或出错误了,怎么解决

1)介绍实时项目
(2)yarn流程。
(3)hdfs小文件。
(4)hdfs怎么切片的。
(5)hive数据倾斜
(6)spark的map和mappartition。
(7)spark的cache和不知道说了个啥的区别。
(8)kafka的的生产者的同步和异步API,消费者怎么订阅主题的API。
(9)flink并行度。
(10)sql题    姓名,科目,成绩
查每个学生成绩最高的科目
(11)反压。
(12)公司负责什么。
(13)有什么想问的

1)先自我介绍
(2)hr开始问问题  为啥来成都  而现在北京  我看你之前是在杭州工作    问了好多细节 大概五六分钟
(3)面试官开始问   给我介绍你做过的项目 实现什么样的功能  具体展开讲讲
(4)你们的这一套架构是开源的吗  为什么没有用 cdh 后者说其他的集成组件
(5)拉链表用过吗  是个什么过程
(6)你们flink 是用来干什么了
(7)你们集群的搭建你参与了吗、 具体是那些呢

(1)自我介绍
(2)实时项目介绍
(3)flume中的source用的什么,端点续传的信息保存在哪里,如何修改断点续传的信息,数据采到一半不用续传?
(4) channel 用的什么,kafkachannel用的那些参数
(5)hive建表用的内部还是外部,创建外部表用了那些字段关键字,如何解析数据
(6)hive分割符指定的什么
(7)项目印象最深的技术问题,我说Flink 反压 数据倾斜
(8)Flink的检查点
(9)Flink的窗口函数
(10)java编程用的多吗

应聘者二 2022-11-26

(1)自我介绍
(2)Flink处理的过程,使用的什么算子
(3)Kafkasource如何使用
(4)Kafka如何保存偏移量
(5)Flink如何根据保存的偏移量继续读取
(6)SQL如何进行行转列
(7)sql使用过哪些系统函数
(8)linux系统指令:如何提取关键字
(9)如何查看cpu使用率

1)ClickHouse中有哪几种引擎?
(2)最常用的引擎?
(3)replacingmergetree的原理?
(4)Hbase怎么查询?
(5)rowkey设计?散列性为什么这样?怎么保证?
(6)Hbase、Hadoop规模多少?集群?数据的规模?容量?
(7)Hadoop多少台物理机?
(8)用过flinkCDC是吧,还有其他的相对应的技术?
(9)FlinkCDC能做到exactly once,保证数据不会丢,能大概讲讲这个事吗?
(10)kafka用的哪个版本?
(11)binlog增删改查,最终抽到10条,kafka有多个broker,有一台挂掉,不能精确offset的位置,offset可能往前复制一下,这个时候你复制的目标数据,我这个binlog可能会…掉,flink怎么避免这个问题?
(12)kafka主题有一个非常重要的概念,队列数,就是这个分区的概念,这个能大概讲讲吗?
(13)为什么需要分区?单分区什么的
(14)分区是越多越好吗?以一个什么样的规律去设计这个分区数呢?
(15)flink背压
(16)不见得所有节点都出现反压,某一个步骤出现反压,怎么去定位这个问题?
(17)收到股票的行情每3s出现一次,最多的话是1分钟产生一次,这种行情数据想把它合成分钟级的数据,想合成一个1分钟的宽表,这个时候窗口函数怎么写?
(18)我们要求在分钟上对齐,flink窗口它开闭(边界上)的时候是一个什么规律?   左闭右开
(19)股票数据要做到左开右闭怎么处理?
(20)窗口划分之后,后边要设及到窗口函数计算逻辑,选出这1分钟以内成交价格的最大、最小,这个时候你会选择用flink的哪一种window去做这件事?比如说rich…或者其他的什么窗口?
(21)richFunctionWindow里面有两个方法,是哪2个?
(22)统计某一个窗口和上一个窗口改变的量,比如上一个窗口改变的量100,今天的这个量是80,之间成交量的差异是-20,用什么东西保存窗口之间的状态?
(23)这个状态能在flink物理节点上共享吗?假设需要在集群上共享这个数据,怎么做?假设股票停牌了,需要告知所有节点,怎么做?
(24)广播有什么坏处吗?
(25)平时代码写的多吗?
(26)定义一张表,这个表从csv文件来的,这个表怎么写,比如createTable…后面怎么写?
(27)sink的目标存成csv文件,with后边有一大堆参数,你应该考虑哪些参数?(比如分区的参数)(源表和目标表的配置)
(28)sql题
学生表,Student(StudentId,StudentName,StudentSex),StudentSex码值:Male、Female
课程表,Course(CourseId,CourseName,CourseType),CourseType码值:MAIN-主科、SUB-副科
成绩表,Score(ScoreId,StudentId,CourseId,Score)

1、求各科的平均得分,输出课程名称及平均得分,按平均得分降序排列;
2、求所有女生的副科平均得分,输出课程名称及平均得分,按平均得分降序排列;
3、求主科平均分低于副科平均分的学生姓名;
4、求数学得分最高的各前十名男生、女生姓名及其得分;

1)离线介绍。
(2)实时dws层数据是在哪里。
(3)为什么选ck
(4)ck 的分叶
(5)ck是为啥是单节点。
(6)ck怎么备份
(7)ck的数据量   明细数据的20%`30%
(8)新老访客用户是怎么做的
(9)旁路缓存和异步IO是怎么做的
(10)为什么选用Hbase。
(11)ads层数据是怎么写的
(12)用户画像你做了什么   用户画像平台开发, 标签定义,  sql
(13)用户画像架构是什么
(14)你有什么要问的

1)开始先自我介绍一下
(2)笔试(不能用SQL相关的,可以用sparkcore,sparkstreaming,flinkapi)

题目:
1、数据类型
订单编号|商品分类|商品名称|订单金额
2、数据量:100w/s

要求:
1、统计结果
1)每个商品分类的总销售金额
2)每个商品分类的销售金额TOP10及金额

举例:
0111|手机|苹果13|13200
0112|电脑|华硕A14|5600

结果
1)
手机|300002
电脑|394843
2)
手机|苹果|234324
手机|小米|32423
手机|华为|3242
电脑|戴尔|432432423
电脑|华硕|323434232

1.左连接和右连接什么区别?左表 3 条记录,右表 2 条记录,2 个表做左连接,结果是几条记录?
2.数据库中有个员工表 emp,建表语句如下: create table emp_his (emp_id number, emp_name varchar(50)); 表中存在重复记录(根据 emp_id 来判断),用 SQL 如何查出存在重复的 emp_id?
3.有张 student_scores 表,存放每个学生,每门课程的分数,建表语句如下: create table student_scores (emp_id number ,course_name varchar(50) ,score number); 需要把每门课程按照学生分数降序排名并添加序号,sql 如何写?
4. 有表 emp_his,表 emp_inc,表结构一样,关联条件是 emp_id,建表语句如下: create table emp_his (emp_id number,emp_name varchar(50),age number); create table emp_inc (emp_id number,emp_name varchar(50),age number); emp_his 表存放历史数据,emp_inc 表存放有变化,或者新增的数据,如果要一个最新的全量数据,sql 如何写?
5. 订单表 orders(id,order_id ,member_id ,order_type,store_id,create_time,point) Id 主键 order_id 订单 id member_id 会员 ID order_type 订单类型 store_id 门店 ID ,create_time 创建日期 ,point 积分会员表(会员 id 唯一) members(member_id,name,member_level) member_id 会员 ID ,name 会员名称 ,member_level 会员等级门店表(store_id 唯一) stores(store_id,name,store_channel) store_id 门店 ID ,name 门店名称 ,store_channel 门店渠道 ① 查询门店名称包含“猎洋”的所有订单信息,统计出每个会员的总积分值; ② 查询门店名称为“婴童”,且获取总积分值大于 100 小于 600 的会员姓名和积分值; ③ 查询获得总积分最多的前 3 名会员名称和积分值; ④ 查询同会员‘张三’总积分相同的会员 ID;
6. 把字符串‘foothebar’中的 th 替换为‘22’
7. 字符串 'abc’,'def’,'gh’ 通过函数拼接起来;
8. Hive 中 order by ,sort by 区别,什么场景下使用?
9. Hive 表分区的作用?动态分区的做什么用的?
10.Java 中有哪几种集合?区别是什么?适用场景是什么?
11.写一下维度建模的理解?雪花模型和星型模型的差异?维度建模的优缺点?
12. Spark Streaming 和 Flink 的技术区别是什么?
13. Flume 和 Kafka 的技术栈是什么,适用场景是什么

1,自我介绍,你在公司都干啥
2,现在找ETL的工程师,sql写的怎么样,你干了那么长时间,都写哪些指标(建议说能体现水平的)
3,有这样一个场景,有两张用户表,一张昨天的,一张今天的,问怎么样得出新增,变化的人数(表里没有create_date字段),
让怎么修改表,怎么实现?

应聘者二 2022-11-18

1.离线框架介绍
2.写过什么指标
3.SQL优化怎么样?
4.DIM 建模展开说说
5.HIVE优化?小文件处理?HIVE数据倾斜
6.shell脚本写没写过
7.感觉面试官是干java的不太懂大数据

应聘者三 2022-11-18

1、自我介绍
2、离职原因
3、以后想要往哪方面发展
4、工作中主要负责的部分(大概介绍了一下实时数仓 说到数据调研)
5、数据调研是啥
6、比较擅长哪方面(擅长写sql)
7、sql的问题: 有张表有重复数据想去重
8、有的数据重复 有的数据没重复

应聘者四 2022-11-18

1.介绍一下你的项目,我介绍的实时
2.他给我介绍了他们的业务,是银行业务,想招离线的
3.问我在项目里干了什么
4.问了个sql题:
A   B 表分别是用户今天的全部信息和昨天的全部信息,
怎么求今天新增的,删除,变化的数据?
5.你有什么要问的?

应聘者五 2022-11-18

1、离职原因,期望薪资
2、最近一个项目架构,流程
3、Kafka数据保存多久,到期数据如何处理、Kafka优化、零拷贝解释
4、Flink CDC 是否用过、是否用过orcale、mpp数据库、Python、Shell脚本是否会写
5、数仓建模理论,星型模型和雪花模型区别,事实表类型,事务和周期快照事实表区别

1、clickhouse、flink、spark、spring在项目中的应用
2、clickhouse的优化,还有在clickhouse中表的变化
3、clickhouse的删除
他们的项目是clickhouse的分布式,我说我们是单点
我说删除是一个比较重大的操作,一般找业务不忙的时候

路径下面:文件
操作比较重
路径,将之前的数据迁移过来,迁移过程当中
对旧路径标记为inactive
Merttree合并时候,将旧路径删除

4、clickhouse即席查询用户留存率的一个实现

1、自我介绍
2、最近项目介绍,感受最深的地方
3、对加班态度、离职原因
4、技术介绍、用户画象是干啥的,我负责的部分
5、个人优缺点

1、自我介绍
2、实时项目介绍
3、业务数据那几块?数据复用的地方?
4、GMV是SQL还是算子计算,状态怎么存的
5、rocksDB 状态        然后他就问那rocksDb本地状态也是放在内存
6、生产中遇到反压吗
7、flink数据倾斜
8、乱序,watermark
9、实时数仓有多少主题?业务和日志分别有多少?
10、订单金额求过吗
11、checkpoint机制
12、两阶段提交
13、hbase的rowkey怎么设计
14、Kafka数据保存几天
15、问离线的hive这块是不是有同样的指标,是拉姆达架构还是kafka架构
16、指标的准确性怎么保证
17、有什么要问的

1、讲一下hdfs的优化、
2、讲一下namenode的RPC线程数的优化设置吧,跟什么有关
3、讲一下namenode的高可用,zkfailercontroller为什么不放到namenode里面为什么是单独的进程
4、做过安全配置么,系统怎么做的监控
5、讲一下kafka分区和副本是什么,用途,不看场景的话基础配置的数量怎么定
6、kafka生产者消费者分区数一般的数量对应关系
7、kafka如何不丢数据,讲一讲ack设置成-1的内部逻辑
8、如果一个follower挂掉会怎么样,多个follwer挂掉会怎么样
9、kafka的ISR和OSR讲一下

1、讲一下实时数仓
2、详细说一下数据怎么采集的
3、flume具体怎么配置的, 它怎么能取到数据文件的
4、flink怎么保证不丢数据的
5、flink程序提交的参数有哪些
6、你们flink任务内存怎么分配的
7、你们实时项目做出了什么东西
8、有没有做过增量与全量的对比
9、MR怎么实现去重,hql去重底层原理是什么

1、自我介绍
2、离线数仓介绍,负责内容,
3、日志数据是通过前端埋点产生的,是标准格式吗,通过逗号分割的吗?
{a:value, b:value}
4、Hadoop读写流程
5、NameNode元数据放在哪里?      我说的不知道
6、SecondNameNode作用
7、高可用脑裂问题       不太清楚,我说的两个存活的NameNode,zk会杀掉一个,
8、DataNode 和 NameNode之间的心跳机制
9、HDFS安全模式,数据不一致会进入安全模式,问这种情况出现过吗,什么情况下会进入安全模式?
10、Hadoop处理小文件问题
11、mr的shuffle
12、zookeeper选举机制
13、hive内外部表区别
14、数仓建模,数据模型有哪些;问我用的什么模型?
15、用过hive解析过json字符串吗,有没有通过自定义函数解决?
16、sort by 和order by区别
17、hive数据倾斜怎么排查的,解决方式
18、hive内置函数
19、hql转换为spark怎么转换的,hql解析
20、spark rdd持久化原理  
21、宽依赖和窄依赖
22、KafKa已经消费完的数据还能再次重复消费吗
23、Kafka怎么保证消息可靠性
24、Kafka消费能力不足,数据积压怎么办
25、离线时是主要写hql吗,做过spark吗  
26、Flume写过自定义拦截器吗?怎么实现
27、计算指标
28、每天多少数据量
29、实时是写flink的吗,是直接通过hbase shell操作的吗
30、Hbase里有索引吗  
31、hbase写数据
32、flink容错机制(检查点)
33、flink任务失败后,重新运行,怎么保证数据一致性?
34、想问的问题

1.Flume每日日志采集有多少数据量
2.Flume中配置了什么过滤器?
3.Flume到Kafka用的什么channel,做了哪些配置,
4.kafka你们配置了几台机器?
5.kafka假设三台机器,有一台不可抗力因素挂了,怎么保证其他两台正常运行?
6.Flink上游的数据是怎么采集来的?
7.七日内连续三天登录统计
8.你们Flink DWD的数据写到kafka后又写入了哪里
9.Clickhouse介绍一下
10.FlinkCDC干什么用的
11.未来有什么打算

1,介绍一下你们的架构,
2flink做了多久了
3flink都有哪些join,interv join 和 lookup join 有什么区别,
4具体在哪用到过  lookup join
5spark on hive 和 hive on spark 的区别
7维度建模 事务性事实表,周期型快照事实表, 累积性事实表,具体用到了哪些
怎么建的这些表

1)自我介绍
(2)介绍一下实时 数仓项目
(3)端到端一致性
(4)PV.UV具体怎么统计,我按照每层数据如何处理说的
(5)离线shell脚本怎么写的
(6)用过什么语言,不太会就别说他深挖
(7)用纯Java实现一个问题
// 一万条数据   tab键分割。 第一列是设备id, 第二列浏览页面
// 输出1: uv
// 输出2: top10 pv 的 设备id分别是什么

应聘者二 2022-11-26

(1)数据建模理论
(2)数据装载脚本的目的,为什么进行数据装载
(3)说说维度退化
(4)用户画像做了那些事,读取MYsql的标签表怎么设置的?
(5)和业务人员怎么沟通需求,沟通那些需求?
(6)数据校验过程怎么做的?最终指标提供他们对不对怎么判断?校验机制
(7)作出的和实际业务差异比较大的时候怎么办?
(8)你在项目中是主要做沟通的吗?
(9)实时数仓dws层宽表聚合,clickhouse的引擎?
(10)1clickhouse的字段怎么设置的?
(11)sql计算题:

表users:两列 name citys

原表: zs 上海

 zs 北京

 ls 杭州

结果   zs 上海 2

 zs 北京 2

 ls 杭州 1

1)hive小文件。
(2)flume底层。
(3)分层架构。
(4)hbase的读流程。
(5)hdfs的读流程
(6)hdfs优化
(7)redis穿透    数据是什么格式
(8)kafka重复
(9)maxwell的原理

1)实时简绍
(2)集群配置
(3)flume 挂了怎么办
(4)为什么要分层,那层做了哪些工作
(5)flume具体怎么配置的
(6)怎么控制数据速度
(7)异步io,旁路缓存怎么实现
(8)flink有哪些架构
(9)hbase怎么配置

1)clickhouse主键如何设置
(2)旁路缓存具体怎么实现的
(3)遇到过哪些问题
(4)kafka存几天,clickhouse存几天
(5)用户画像架构,做了那些事
(6)一道计数的简单sql
(7)给我介绍了下他们的项目

一面

(1)自我介绍:简单介绍下项目
(2)问了实时,可视化这块内容
(3)用的哪些组件
(4)介绍了项目中整个数据流程
(5)数据量大如何处理
(6)简单介绍了下公司业务
(7)场景题,汽车的启动,充电,等数据在数仓中的处理流程
(8)面试官简单介绍了下公司的情况,当前互联网部门的状态

二面

(1)自我介绍
(2)介绍实时项目
(3)问题:数据处理过程中数据量大如何处理(我回答的分区,压缩,分层建模处理)
(4)问题:你们可视化如何做的
(5)介绍了下公司团队情况
(6)公司前期工作地点能否接受

1)实时项目负责内容
(2)日志数据分流,写入kafka,发送的的流量多大,是一个flink app就完成了嘛
(3)flink部署方式standalone、yarn
(4)TaskManager几个并发,几核;整个任务的并发
(5)遇到过性能问题嘛,处理的慢或者写的慢,中间处理的过程,整个链路上的性能瓶颈问题
(6)反压在哪个阶段,怎么解决
(7)Kafka高效读写原理,写入partition是顺序写嘛?partition映射多少文件?
(8)零拷贝:应用层是不处理嘛?什么时候落盘的?

1)介绍离线  实时
(2)数据最后写到哪里   离线 实时
(3)yarn工作机制
(4)为啥离线不用ck   实时用ck?
(5)hbase rowkey     预分区
(6)habse 那些数据会写到1000-2000的分区中?
(7)flink 水位线
(8)hive优化
(9)hive数据倾斜
(10)spark什么情况会shuffle
(11)kafka的数据重复
(12)kafka数据丢失
(13)kafka的qps是多少

1.两个数据量非常巨大的表怎么Join,有多少解决思路
2.SQL优化

应聘者二 2022-08-02

1、介绍离线和实时项目,以及项目中遇到的问题。
2、flink水位线了解吗?讲解下。
3、flink检查点了解吗?讲解下。
4、kafka如何提高生产者吞吐量?
5、kafka如何保证数据有序,kafka有哪几种事务?
6、你们kafka一个topic有几个分区,这些数量的分区有什么依据吗?
7、有两张相同的大表,字段一致,都是时间戳和user_id,如何计算相同user_id,两张表数据30s内匹配上的数据,注意数据量特别大但没有倾斜。

应聘者三 2022-08-02

1.项目中用到java的地方有哪些
2.kafka的分区数怎么确定
3.kafka怎么保证有序
4.flink的时间语义
5.场景题,很大数据量的数据关联join,没有唯一标识,怎么提升速度

应聘者四 2022-11-26

(1)自我介绍
(2)两个hive大表join怎么优化
(3)讲讲clickhouse
(4)你们用的什么引擎

1.你们sql有什么规范,怎么让他可读性更高
2.项目介绍
3.sql流程
4.拿到需求怎么开发,怎么分析,介绍一下分析流程
5.主要就是sql离线相关的,到银行写sql
6.maxwell倒错数据怎么办?
7.kafka怎么不丢数?
8.我想要用户数据前三天的怎么办?
9.你们kafka数据保存几天?
10.你们kafka分区怎么弄的?

1.自我介绍
2.说一下实时项目
3.实时的ADS数据存储在哪里
4.说一下实时的指标做过哪些,然后自己挑几个进行实现
5.离线的DWD的宽表有多少
6.说一下DIM和DWD的建模
7.说一下维度表和事实表的区别
8.为什么实时使用Maxwell进行同步
9.维度建模使用的什么模型
10.说一下用户画像的架构
11.用户画像使用的是什么引擎
12.任务调度使用的是什么代码写的
13.说一下你写过哪些指标

应聘者二 2022-11-18

1.自我介绍
2.说一下最近做的项目
3.说一下维度表和事实表的区别
4.做过哪些指标,sql怎么写
5.Flink事件语义,窗口
6.为什么用Maxwell,sqoop了解吗能使用吗
7.做项目遇到哪些困难
8.写过哪些shell脚本

两道sql题:

表内容

a   b  c

2014  B  9

2015  A  8

2014  A  10

2015  B  7

问题一:多行转多列

问题描述:将上述表内容转为如下输出结果所示:

a  col_A col_B

2014  10   9

2015  8    7

问题二:如何将结果转成源表?(多列转多行)

问题描述:将问题一的结果转成源表,问题一结果表名为t1_2。

1.1自我介绍

1.2  Hive(Hadoop相关)

  1. HDFS的用户权限管理是怎么做的?文件夹权限744代表的是什么?
  2. HDFS的下载和上传命令是什么?如果我要下载HDFS上Yarn的错误日志该怎么做
  3. Hive的小文件问题遇到过吗,怎么处理的?
  4. Hive支持的文件格式有哪些?你们是怎么做的,为什么选这种?
  5. 集群的NameNode起不起来怎么办?一般是怎么排查的?
  6. 你们的集群是多大,每台配置是多少?为什么要这么配置,有没有做过服务器新增或者退役?
  7. 用过哪些窗口函数
  8. Hive的数据倾斜是怎么处理的
  9. 执行计划你们会用吗,一般怎么用(什么时候会用)?
  10. 你们hive用的是什么引擎?(回答用的hive on spark)为什么不用MR?那为什么shuffle过程会导致效率的下降?
  11. 你们的副本策略是什么?有几个副本?副本的存放都是怎么存放的?
  12. Yarn的提交流程
  13. hive的动态分区功能有没有用过?为什么要用这个功能?

1.3  Flink

  1. Flink的分区策略是什么?
  2. Flink的日志文件一般存储在哪儿

1.4 Kafka

Kafka是怎么保证不丢不重?

1.5  Hbase

  1. Hbase的写流程是什么样的?
  2. Rowkey设计是怎么设计的?

1.6  Spark

spark的宽窄依赖是什么?

  1. 抽象类和接口的区别
  2. 我看你说用了异步io,那新建线程有哪几种方式呢?

1.7  Linux

  1. 说说linux的常用命令?你们在什么时候会用top,top是看什么的?知道scp命令吗?会不会用?如果我要找关键字为err的文件日志要怎么找?具体命令是什么?
  2. vim常用吗?是干什么的?如果我要在一个很大的文件中找到port这个关键字,要怎么找?不区分大小写查找应该怎么做?怎么显示行号  :set nu
  3. var/usr分别是存储什么文件的?
  4. linux系统的配置文件一般存放在哪个文件夹?

1.8  MySQL

  1. 熟悉mysql库吗?(大数据相关的hbase和clickhouse这些更熟一点,mysql只使用一些最基本的功能)
  2. MySQL你们用的版本是什么?
  3. 知道min.ux这个函数吗?知道是什么吗?那lag函数呢?
  4. 自我介绍

    最近的一个项目

       框架

       每层做什么

    你日常在工作中干什么?

    1.hadoop的调优

    从HDFS 小文件

    shuffle

    这2个方面来回答

    2.实时 中选用Hbase存储维度表的数据?

     维度表的数通过Flinkcdc监控mysql Blog 的一个变化 得到

     不是马上使用  如果一直存在状态中 状态会越来越大 比如说5年前注册的一个用户,现在要下单 存在状态中 不太合适

     列举各种数据库的区别:

      mysql

      redis

      clickhouse

      hbase

    3.在项目中哪些地方用Clickhouse?

    实时 dws 存储和画像的标签库存储

    优点:

     列存  列读跟列写  比较快

     dws是汇总层 由维度数据跟事实数据汇总而来 一般做单表查询  单表查询clickhouse比较快

    画像中使用ck 来存储标签宽表和 bitmap表来做用户分群,极大提高我们的查询效率

    这是再扩展一下ck的bitmap的优势,和我们怎么用的

    4.在项目中 为什么使用maxwell / kfk 做一个中间件 不直接使用 Flinkcdc拉取数据?

     mxw:

      开始做离线的时候Flinkcdc还没有(2020年出来的)

      对离线架构的一个复用

      kfk:

        由于Hadoop的读写是有上限的 比如说我们搞活动的时候 数据量特别大 hadoop吃不消

        需要加一个中间件  进行一个缓冲

      补充:

        我们在项目中 使用Flinkcdc 监控Blog 的一个数据变化 来获取我们想要的一个维度数据

        也是使用到Flinkcdc这个技术的

    5.选用redis的一个原因是什么?

    分析:从旁路缓存来答问题 优点 如何实现的?

    旁路缓存 Flink与外部组件进行一个交互的时候速度比较慢

    选用redis 基于内存 查询维度表的数据的时候

    先去 redis中查  redis中没有 在去hbase中查

    6.由于某个表的数据量特别大,导致oom,节点挂了怎么处理?

    从几个点着手解决:

    1. Heap size 调整大一点,一般这个碰到的问题比较多

    2. Map端oom ,一般是处理的切片太大了

    3. Shuffle时候oom, 一般是map输出的数据量比较大

    4. Reduce的oom ,reduce 处理的数据量太大

    7.跑任务特别慢?

    mr任务:yarn 看状态 跟数据量的一个大小 以及运行的一个时间长度

    我说我最近的项目是实时:

    flink:

     flinkUI界面看是否出现反压以及数据倾斜的一个问题。

    8.hudi相关?  关于数据湖的问题 算是扩展问题 答的不好也没关系

    为什么要使用数据湖  优点  成本低 使用更平滑 可以存大量数据(结构与非结构)

    非技术类问题:

    离职的一个原因?

    日常有什么兴趣爱好?

  5. 1)自我介绍
    (2)介绍离线项目
    (3)dim和dwd建模过程比较重要比较核心的地方
    (4)多少个业务域,业务过程
    (5)有多少张维度表,怎么去考虑的
    (6)指标怎么去做管理,指标不断更新迭代,怎么去处理
    (7)同一个指标,不同人关注点不一样怎么处理
    (8)对外展示的是一个什么,针对主要人群是什么
    (9)看板上线,指标数据不对是什么原因造成
    (10)现在在职还是离职,离职时间及原因
    (11)分析什么样的业务
    (12)团队多少人,担任什么样的角色
    (13)有什么要问的

  6. 1)讲讲项目 我讲的离线 说kafka有几个问题 留的坑 然后他就问了我那几个坑
    (2)kafka一个topic几个分区 数据量大的时候几个分区
    (3)hdfs版本 四个进程 具体都是干啥的
    (4)dn nn 通信用什么 具体干啥的
    (5)clickhouse 单点还是集群 几个备份
    (6)redies单点还是集群
    (7)监控器了解嘛
    (8)中间器
    (9)数据到hdfs 用什么组件查看
    (10)yarn读写流程
    (11)linux3剑客 都是干啥的

    应聘者二 2022-11-26

    (1)自我介绍
    (2)问实时项目    问维度数据的每日数据量多少?为什么不用mysql
    (3)实时项目用的什么架构?什么是kappa架构和lambda架构,区别是什么?有什么优缺点
    (4)ck的一致性,去重底层原理?(我回答主键,只保留最新的)除了主键还有什么?怎么做的?
    (5)flink的算子链(除了并行度相同),告诉我还有keyBy之后有重分区有shuffle
    (6)subtasak和task的区别

  7. (1)自我介绍
    (2)介绍写Hadoop
    (3)Hadoop写流程
    (4)2NN的作用
    (5)集群拉取数据到本地那个命令
    (6)Hive分区怎么创建的,如何动态分区
    (7)Hive中的四个By
    (8)Hive三个排序,rank, dens_rank, rownumber
    (9)shell脚本后台启动任务怎么编写(具体到那个关键字,命令,函数)
    (10)自己启动的脚本任务如何为关闭(log日志中有 任务id, 具体用到那个shell函数,关键字)
    (11)快排跟归并排序是如何实现的
    (12)Java设计模式, 单例模式伪代码描述下
    (13)Java微服务了解吗(面试中问了多次)
    (14)Hive中的UDF, UDTF函数定义过那些,那些场景中年定义使用的
    (15)Spark宽依赖了解吗
    (16)spark中的shuffle具体是什么流程
    (17)spark部署的是集群还是客户端模式,有什么区别
    (18)sql题:     班级    姓名    分数
    求每个班级的前三名
    1. 开窗 rank
    2.  没有开窗如何处理
    (19)问了linux常用命令
    (20)Java多线程问题

    应聘者二 2022-11-26

    (1)自我介绍
    (2)介绍离线项目
    (3)hive和普通数据库的区别
    (4)orderby 和sortby的区别
    (5)hive数据倾斜
    (6)spark宽窄依赖
    (7)spark广播变量
    (8)hadoop常用命令
    (9)hadoop读写流程
    (10)数组和链表的区别
    (11)ArrayList扩容
    (12)hashmap扩容
    (13)volatile
    (14)java锁
    (15)sql:班级 姓名 成绩 求每个班级前三,不用开窗怎么做
    相关子查询
    Select  * from  TableA   where  成绩 > (select )

  8. 1)初始化线程池参数
    (2)post和get请求方法
    (3)线程和进程区别
    (4)FLink-per-job和application区别
    (5)Flink session和per-job区别
    (6)session和per-job,application的client在哪里
    (7)保证flink端到端一致性
    (8)flink checkpoint机制
    (9)olap数据库用了哪几种
    (10)spark 的shuffle及底层差别
    (11)职业规划
    (12)有什么想问的?

  9. 1)项目介绍
    (2)clickhouse,多节点多副本会造成什么问题
    (3)介绍一下拉链表的设计
    (4)zk 的半数选举
    (5)实时数仓 如何保证 双流 join 数据准确
    (6)hive 三种排序窗口函数的区别
    (7)spark 广播器、累加器
    (8)说一下 hdfs 的 mapreduce
    (9)一道 sql 场景题  求出 用户相互收藏
    一张表,列的信息:uid,fid(收藏对方的id)
    表与表自身关联
    A   B
    A.fid=B.uid  and B.fid=A.uid
    (10)工作地点可以接受吗?
    (11)预期薪资?
    (12)有什么要问我的

    应聘者二 2022-11-26

    三张表:部门表、人员表、订单表
    部门表:ID,名称
    人员表:ID,名称、部门ID(外键,对应部门表ID)
    订单表:ID,订单日期、人员ID(外键,对应人员表ID)、产品ID、产品名称、产品单价、产品数量

    1、用一个Select统计出每月部门销售额的TOP10(只用一个select,不用开窗,强调了两次)
    2、结果列表显示部门ID,部门名称、销售额、排序号

  10. 1、Linux常用命令

    2.1、flume你们是怎么用的,三个器用了哪些
    2.2 第二级flume hdfs sink出现过什么问题吗
    2.3 对于文件回滚的底层原理有了解了

    3.1 zookeeper底层了解多少,是只是用搭建分布式框架,还是对底层算法都了解
    3.2 那有没有使用过zookeeper的命令,或者看过zoopkeeper上的节点信息

    4.1 创建一个Kafka的主题,命令行怎么写命令,口述一下
    4.2 kafka的分区和副本有什么区别
    4.3 Kafka的分区能被多个消费者消费吗
    4.4 Kafka消费者和coordinator之间的心跳时间,这个知道吧,配置这个时间的参数是什么,你是怎么配置这个参数的
    4.5 写过Kafka的代码没有

  11. 1)数据的链路
    (2)为什么要做实时
    (3)怎么保证实时数据的准确性
    (4)误差一般是多少
    (5)kafka动态分区
    (6)flink中的数据倾斜
    (7)离线中数据倾斜的监控,比yarn更加具体点的
    (8)用户画像大概做了什么
    (9)离线数仓的中间层有什么用
    (10)为什么要做中间层
    (11)dwd表有几张
    (12)dwd,dim,dws怎么建立的
    (13)hbase在那里使用的
    (14)hbase里面rowkey的设计原则
    (15)一个字符串(12345)把奇数放在前面把偶数放在后面,不能改变原本的顺序(13524);
    (16)求商场销售总额的前10%的用户id
    一个uid,一个time(时间戳),一个ip。在15分钟内保证uid的ip不重复。

  12. 1、介绍一下最近做的项目(考察真实性,会问细节)
    2、flink用sql多还是api多
    3、离线和实时数据校对怎么处理
    4、实时和离线分别做过哪些优化
    5、两道sql,求平均、互相关注数量
    6、sql具体是怎么执行的,执行顺序

    应聘者二 2022-11-26

    (1)自我介绍
    (2)讲讲你们怎么做离线系统的
    (3)你们怎么跟BI对接啊,给BI发的文件是什么格式的。
    (4)写sql
    (5)求每个用户的最长连续下单天数
    要求:
    1、考虑多段连续下单的场景
    2、过滤掉非连续多天下单用户
    3、函数名如果忘记,可以随便写一个代替,最后解释一下即可
    4、请直接在下方写出实现SQL
    让你统计同一时间最大在线人数,表字段有用户id,登录时间,退出时间,说出思路即可

文章标签: 大数据面试题

你可能感兴趣的:(大数据,hive,hadoop)