吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!

文章目录

  • 前言
  • 京东面试题
  • 58面试题
  • 新浪面试题
  • 搜狐面试题
  • 360面试题
  • 小米面试题
  • 顺丰面试题
  • OPPO面试题
  • VIVO面试题
  • 华为面试题
  • boss直聘面试题
  • 搜狗金融面试题
  • 瓜子二手车面试题
  • 猎豹移动面试题
  • 作业盒子面试题
  • 每日优鲜
  • 美团面试要求
  • 快手面试题
  • 新美互通面试题
  • 金山云面试题
  • 图新瀚合面试题
  • 中创软件面试题
  • 清华同方面试题
  • 柠檬微趣面试题
  • 量化派面试题
  • 天阳科技面试题
  • 泰康保险面试题
  • 软通动力面试题
  • 乐元素面试题
  • 北京国信博飞面试题
  • 知因智慧面试题
  • 考满分公司面试题
  • 亿联银行(石景山瑞达广场)面试题
  • 洋葱科技面试题
  • 北京卓越讯通面试题
  • 环信面试题
  • e代驾面试题
  • 小麦公社面试题
  • 中关村在线面试题
  • 思特奇面试题
  • 快看漫画面试题
  • 金和网络面试题
  • 一下面试题
  • 造数面试题


前言

第二波面试题来了,上一波是BAT超大厂面试题,这波50+企业,真的珍贵!!!收藏收藏!!
学长们都要面疯了
上一篇BAT大厂面试题链接:https://blog.csdn.net/weixin_48143996/article/details/118081994?spm=1001.2014.3001.5501

京东面试题

学长1

1)笔试部分

(1)列举几种数据倾斜的情况,并解释为什么会倾斜,以及如何解决?

(2)解释一下sql运行步骤,是否有优化空间,如果有,如何优化:
SELECT a.id, b.name FROM a LEFT OUTER JOIN b ON a.id = b.id WHERE a.dt = ‘2016-01-01’ AND b.dt = ‘2016-01-01’;

(3)已知表a是一张内部表,如何将它转换成外部表?请写出相应的hive语句

(4)用select做查询是,用哪个函数给值喂null的数据设置默认值?

(5)Hive中,建的表为压缩表,但是输入文件为非压缩格式,会产生怎样的现象或者结果?

(6)订单详情表ord_det(order_id订单号,sku_id商品编号,sale_qtty销售数量,dt日期分区)任务计算2016年1月1日商品销量的Top100,并按销量降级排序

(7)某日志的格式如下:
pin|-|request_tm|-url|-|sku_id|-|amount
分隔符为‘|-|’,
数据样例为:
张三|-|q2013-11-23 11:59:30|-|www.jd.com|-|100023|-|110.15
假设本地数据文件为sample.txt,先将其导入到hive的test库的表t_sample中,并计算每个用户的总消费金额,写出详细过程包括表结构

(8)test.log日志中内容如下左列所示,使用awk输出右列4行数据
10-3-jd-dv
2-4-jd-dv10-4-jd-dv
5-7-pv-click5-7-pv-click
36-24-pv-uv
37-24-pv-uv37-24-pv-uv
24-3-uv-mq24-3-uv-mq

(9)storm的分组策略有哪些?

学长2
1)笔试部分
(1)hiveSQL语句中select from where group by having order by的执行顺序

(2)hive中mapjoin的原理和实际应用

(3)写出你常用的hdfs命令

(4)使用Linux命令查询file1里面空行的所在行号

(5)有文件chengji.txt内容如下:
张三 40
李四 50
王五 60
请使用Linux命令计算第二列的和并输出

(6)在Linux环境下有文件/home/dim_city.txt如何加载dim_city外部表中,HDFS路径/user/dim/dim_city

(7)请列出正常工作的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别是什么,尽可能写的全面些

(8)数据仓库的整体架构是什么,其中最重要的是哪个环节

学长3
1)笔试部分(京东金融)
1)数据按照业务含义可以分为时点数和时期数,在一般情况下,下列哪些数据属于时点数?
A.昨天的订单量B.昨天的库存量
C.昨天的点击量D.昨天的访问次数

2)About hadoop map/reduce,The right answer is?
A.reduce的数量必须大于零
B.reduce总是在所有map完成之后再执行
C.combiner过程实际也是reduce 过程
D.Mapper的数量由输入的文件个数决定

3)Hive中的元数据不包括?
A.表的名字B.表的外键
C.表的列D.分区及其属性

4)Hive中如何限制查询条数?
A、TOP B、limitC、rownumD、only

5)关于hivesql以下说法正确的是:
A.cluster by不会对字段进行排序
B.order by只保证每个reducer的输出有序,不保证全局有序
C .sortby是全局有序
D .distribute by制定规则字段,将相同组数据分发到同一reducer

6)下面sql的运行结果是什么?
Select a.id,b.name from (select id from table_id) a left semi join (select id, name from table_nm) b on 吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!_第1张图片

A 、(a,ok) B、(2,null) C、(1,ok & & 2,null) D、以上结果均不对

7、你处理过的最大数据量是多少?处理时是否遇到问题,采取了哪些优化的方案?

8、列举Hive几种数据倾斜的场景以及解决方案?

学长4
1)技术部分
(1)你们spark哪个版本

(2)sparkStreaming如何和Kafka对接

(3)Kafka消费过的消息如何再消费

(4)redis版本多少

(5)cdh版本多少

(6)集群怎么部署的

(7)数据倾斜怎么处理

(8)mr和spark的shuffle的区别

(9)mr环形数组怎么设置最大能设置多大

(10)redis分布式锁怎么实现

(11)rdd和dateset的区别

(12)说说Scala伴生对象

(13)解释Scala的模式匹配

(14)谈谈Scala隐士转换

(15)yarn的组件说说他们的功能

(16)spark一个excutor给多大内存

(17)spark几种部署模式还有他们的区别

(18)你运行程序是client还是cluster 为什么

(19)说出git的几个常用命名

(20)git如何切换分支

(21)对hive的理解做过哪些优化

4)算法部分
(1)用idea写快速排序

5)手写代码部分
(1)手写Spark WordCount

6)项目部分
(1)整个业务数据的流向

7)场景部分
(1)现有两张大表所有字段都得保留不能再过滤了join操作就发生oom怎么解决

(2)Session日志分析如何求出用户访问的Page路径

(3)三表的join求销量,order——id的统计(记得不了)就是三表join求统计吧

学长5
一面
1.hdfs,mr,yarn的理解

2.mr的wordcount简单描述

3.kafka快的原因,零拷贝的原理

4.redis的数据类型

5.kafka的isr队列

6.spark的运行模式,wc的简单描述
基本上是简历的东西

二面
基本上和简历无关,问的算法,我不懂,没办法整理

学长6
京东数科二面
1.最近一两年内你做过感觉最有趣或者让你记忆深刻的项目,挑一个说一说。我说的是SparkStreaming实时计算(李老师讲的在线教育那个项目,我给稍微改了改成电商项目了)。

2.有关于spark、kafka、MySQL的项目你感觉那个比较熟练一点。我回答我的是对spark比较感兴趣。

3.做这个项目用的是spark的哪个版本?

4.这个版本里用kafka用的是那种消费方式。

5.可以简单讲一下direct大概的一个设计套路。

6.如果说我每隔一百条或者一千条,记录偏移量,如果跑到八百条宕掉了,有可能重复消费,针对receiver优势能不能解决这一点?

7.如果dsteam方式去拉取reduce拉取出去,那有多少个线程从kafka里拖数据?

8.平时除了用spark比较多,用hive也不少,平时会涉及到调参优化方面有哪些?

9.你能介绍一下flume的架构或者设计。

10.用代码实现一个类似于flink水位线的机制。

11.有做过依赖调解的工作吗?比如说有没有碰到问题说引用自己一个依赖,但是在别的地方用了一个其他的依赖由于版本不统一,不能兼容该怎么办

12.最近为什么会想到说换一个工作。(离职原因)

13.你有什么想问我们的。

58面试题

学长1
1)笔试部分(基础题)
(1)请用图形的方式表示出Java运行时数据区

(2)以上哪些数据区在空间不足的情况下会抛出异常?

(3)Java工程出现内存泄露如何排查?请写出你知道的排查工具以及方法

(4)以下代码的输出结果是什么?
String str1=new StringBuilder(“58”).append(“ganji”).toString();
System.out.println(str1.intern == str1);
String str2=new StringBuilder(“ja”).append(“va”).toString();
System.out.println(str2.intern == str2);

(5)在scala中有一种函数其参数可以为参数,这样的函数称为高阶函数,请参照scala中常见map函数实现一个名为mymap的高阶函数,mymap接收两个参数值,第一个函数(x:Int)=>3*x,第二个为Int型数据。在mymap函数体内将第一个参数作用于第二个参数。

2)笔试部分(算法)
(1)给定两个只含有0和1字符的字符串,实现二进制加法。如:
String str1 = “101”
String str2 = “11”
实现binarySum(String s1,String s2),使得输入以上字符时返回字符串"1000"。

(2)给定一个整型数组array(没有重复元素),再给出一个目标值target,数组array中有两个元素的加和等于target,要求返回这两个元素的下标。如array = {1,2,4,6,3} target = 8,则返回[1,3]。

3)笔试部分(大数据相关)
(1)现有一张hive表,表里面有两个字段uuid和ts,分隔符为\001分别表示用户唯一标识和用户来访的时间戳。
有如下需求
(a)要求计算每个用户的最后一次来访时间,用mapreduce实现(写完整的代码)
(b)你所写的代码有没有优化的空间?如果有,请写出优化方法。

(2)用spark实现WordCount。

(3)spark-streaming+kafka实现实时计算这种方案中通过什么方式保证数据的准确性?

(4)分别列举hadoop和spark中的文件缓存方式。

(5)HDFS的一致性是指什么?有几种语义?

(6)基于yarn的推测执行是怎么实现的?描述其大致算法。
QUESTION NO:1
publicclass Test1{
public static void changeStr(String str){
str=“welcome”;
}
public static void main(String[] args)(
String str=“1234”;
changeStr(str);
System. out. println(str);
}
}
输出结果:
QUESTION NO:2
public class Test2{
static boolean foo(char c){
System out print©;
return true;
}
public static void main(String[] argv){
int i=0;
for(foo(‘A’);foo(‘B’) &&(i< 2);foo(‘C’)){
i++;
foo(‘D’);
输出结果:

学长2
6.2.1 一面(学长面)

1)技术部分
(1)HashMap如何遍历。(这个忘了,百度了一下是用EntrySet)

(2)SparkStreaming窗口操作的3个时段设定分别是什么,问到倍数这块(第二轮也问到了)

2)项目部分
(1)讲了一下推荐项目怎么回事

(2)因为是招数仓这块的,所以三轮数仓都问了(第二轮的数仓问题比较偏,我写到第二轮总结里)

3)算法部分

(1)快排或冒泡排序,我讲的是快排

4)情景部分

(1)设定了一个情景,手写SQL,比较简单吧

二面
1)技术部分

(1)flatMap和map的区别

(2)A表joinB表,用MR是如何处理的(这个真没看过,百度了之后才知道的)

(3)Yarn的资源调度

(4)Hbase有put方法,那如何批量put数据进hbase里,用什么方法(这个也没答上,面试的时候想不起来了)

(5)NameNode的HA,一台挂掉之后,另一台会丢失数据吗,挂掉之前有一部分日志为更新(这个我答的是edits会保存下来,和之前的镜像一起加载,所以不会丢)

(6)问了kafka的消费速度(这个我说的几十兆每秒,群里已经发了,是1G每秒,可自由发挥)

(7)Kafka分区(我说的5个,有点多了,应该说2个或者3个吧)

(8)问了HDFS的块你们设置的是多大(我说的128M,他有疑惑,我说默认是128M,他也表示疑惑)

(9)问了Spark版本,说一直是这个版本吗(我说现在用的是2.0,之前用的1.6)

(10)Sparksql什么时候不能读到Hive的数据(这个也没答上来)

2)项目部分

(1)你们数仓之间的数据是怎么调度的(我说直接写sql,他就问说你怎么知道你的数据已经存储成功了,当时尬了一会,我说用crontab调度的,他问我这用crontab合适吗,我说那设置Oozie可以设置一段程序执行完再执行下一条程序,这块基本就聊炸了吧,我不知道hive内部数据调度还需要这样调,我以为直接读)

3)情景部分

(1)设置了一个情景,让写SQL,也相对简单吧

6.2.3 三面(项目组负责人)

(1)要招数仓和算法的,所以主要问了数仓。

(2)数仓的DM为何不由数据组来设计封装(因为我说的是指负责设计下面三层,然后由不同的业务组区数仓里调数据),你觉得是数据组封装有什么不妥吗

(3)HBase里面你们都存了具体哪些业务数据(这个我说了大概的存哪类型的数据,他问的非常深,必须说出存的具体是什么数据,我后来说每个商品的点击次数统计,实时更新,),他说这些数据我觉得存到redis或者mysql中也行呀,为什么要非要用HBase(我说HBase查的块,他说我觉得这样的数据量redis,mysql查的也不慢吧),然后问了我你认为多少的数据量适合用HBase(我说的几百万)

(4)结合你这个HBase里存储的数据,说一下你们的rowkey怎么设计的(这块说的不好,因为前面说的不好,感觉这边说就强行设计了)

学长3
1)技术部分

(1)对hadoop各组件之间通信Rpc协议了解

(2)Hadoop的读数据流程

(3)传输过程中DataNode挂掉怎么办

(4)Hbase源码

(5)Hbase构建二级索引如何保证索引与数据的一致

(6)JVM架构,堆内存,GC算法,问平时会不会调GC算法

(7)-Xms和-Xmx设置一个和设置两个而且两个设置的都是一样有什么区别吗

(8)查看当前java内存各个代的内存比例

(9)查看线程堆栈的命令

(10)查看java进程里边对象的大小,

(11)堆内存泄露怎么看,除了Dump出来用MAT还有什么简单的方法

(12)Java进程用户反馈请求服务很慢,但是代码不是你开发的你怎么排查问题,

(13)多线程,实现线程同步的方法

2)算法部分

(1)问对数据结构和算法了解吗,堆栈和链表什么的

新浪面试题

学长1
一面
1)自我介绍
叫什么名字,来自哪里,本科哪个学校,硕士哪个学校,大数据做了多长时间,对Hadoop生态圈以及Spark生态圈中的哪些技术比较了解(很简单的一句就带过了),说完大概2min

2)技术部分

(1)让我介绍下sqoop,说他没见过
我说sqoop我用的不熟,知道怎么用,可以简单地给他介绍一下。然后就说sqoop是hdfs、关系型数据、hbase它们三者之间传输数据用的,很方便。

(2)让我介绍MapReduce的运行过程
二话不说要笔要纸,手绘MapReduce从InputFormat到OutputFormat的流程,一边画图一边说。

3)项目部分

(1)让我介绍项目我都是给他要笔要纸,手绘架构图。
离线:data->flume->kafka->hdfs->hadoop/spark->mysql->前端展示
实时:data->flume->kafka->Spark Streaming->mysql->前端展示
kafka到hdfs是自定义的consumer

(2)为什么要使用kafka,可不可以用flume直接将数据放在hdfs上
我说可以用flume将数据直接放在hdfs上,但是很少有人这么干,为什么要用kafka我没有深入研究过(当时没想到咋说)

(3)让我介绍下项目中的指标,都是怎么实现的
我就挨个把我写上的项目指标说了下是什么意思,是怎么实现的(我简历上每个项目就写了几个指标,我感觉比较熟的),最后我说还有其他的很多指标,我做的就这些。

4)手写算法部分

(1)让我写链表的反转
我说链表没咋接触过,老师换个吧

(2)接下来让我手写单例
分分钟写了个双端检测单例

5)是否有问题问面试官
(1)最后说有没有问题要问他
问1:我就问他们大数据是做什么,一天的数据量有多大
答1:他给我说他们是做反垃圾的,一天的数据量上T了
问2:我就又问他们怎么定义的垃圾数据
答2:他就给我说一切影响用户体验的数据都是垃圾数据,比如说在用户的评论下面打广告之类的
然后我就说暂时没有了,他就让我在那等着了

二面
1)自我介绍

还是一面那一套

2)技术部分

(1)介绍MapReduce的运行过程
还是上面的一套。不过在我一边画图一边说的时候有人给他发消息,貌似挺着急,然后我就停下来了,他说不好意思他回个消息,我就说不着急,等您忙完咱再聊。

3)项目部分

(1)项目框架介绍
老一套

(2)问我写的公司做什么的
我说做电商的

(3)他又问具体都卖什么
我说什么都卖,就跟京东和淘宝似的,只不过规模小很多

(4)问我上家公司做大数据的有多少人
我说十多个吧

(5)问我公司在哪
我说在丰台

(6)问我一天的数据量有多大
我说APP端有十多个G,将近20多个G,浏览器端大概有四五十G

(7)又问我一天的访问量有多少
我当时心里就按照费老师说的10w个人1G的量大概算了下,说了个数

4)手写算法部分
(1)手写二分查找
二分是基于一个排好序的数组,我就问他数组排序用不用写,他说不用,然后就分分钟写完,最后我还说用不用手写MapReduce的WordCount以及Spark的WordCount的,一点问题没有。

(2)让我用shell写一个脚本,对文本中无序的一列数字排序
我说shell简单的我可以,比如说写个脚本,crontab周期性调度一下,复杂的我得查下资料,也就没写

5)是否有问题问面试官
(1)最后说他没问题了,我有什么要问他的没
我说要我不,他笑了,然后他说除了这个

(2)我当时也没想到什么问题,就问了嘴他们的集群有多大
他说成千上万台

三面
1)自我介绍
(1)自我介绍
老一套

(2)问我哪一年毕业的,公司有多少人
我实话实说,说还没有毕业就去实习了,我说二三百人

2)技术部分
(1)问我kafka用的那个版本
0.11

(2)问我ZooKeeper的常用命令
我说status(基本全忘了,就这个记得很清楚),他说还有呢,我说ls,然后我又说忘的差不多了,但是我知道它的命令和Linux命令差不多,都是那一套,那老师也就没再问。

(3)问我myisam和innodb的区别
我就按照阳哥讲的,先说了下myisam不支持主外键,不支持事物,它是表锁,不适合高并发,而innodb则不是,然后他又问我还有没,我说了解就这么多,他也没再问

(4)他又问我一句如果单线程访问,myisam和innodb那个性能好一点
我说myisam吧,因为它不支持事物,要快一些
然后他又问我一个问题,我没答上来,我忘了那个问题是啥了

(5)问我redis常用的命令
我顿了一两秒甩了一句keys*,他笑着说可以可以

(6)问我为什么要用redis
我就说redis是内存型数据库,以前访问量没那么大的时候关系型数据库完全可以胜任,但是在高并发的情况下访问量一大,关系型数据就不行了,所以就有了redis

(7)问我了解hbase不
我说了解不多,就知道它是一个非关系型数据库,它也就没再问

(8)然后问我机械硬盘和SSD硬盘的差别了解不
我说SSD读写快,然后他说是,他又问我底层了解不,为什么SSD读写快,我没答出来,他又说从硬盘读取数据首先要干什么,我说寻址(然后突然一下子好像明白了,就跟他扯了扯)

(9)然后他又问我机械硬盘每秒读取次数多少知道不
我说我不知道,没研究这么深,但是我说我知道我们大数据读取数据的时候寻址不超过10ms(我当时心里这样想的,这些东西我没接触过,我要往大数据上靠,要引导他去问我大数据的东西),结果他说知道这个能算出来机械硬盘1秒能读多少次,然后我好想明白了,就1s/10ms呗,他说是,也就100来次

3)项目部分
(1)问我一天的数据量有多大
我还是按照原来的那个说的,他说不到100G单机就能搞定吧,我说公司就这么定的,然后尴尬不失礼貌地笑了笑(跟尽际老师学的)
然后就看着简历问了一些问题

(2)问我Azkaban一天调度多少个任务
我说三五百个吧

(3)然后他问我这么一个问题,他说你做这些项目需要埋点日志的对吧,然后说如果后台的人不愿意给你加这个埋点,嫌麻烦,你怎么办
我愣了一会,随口说了句,吃顿饭,那老师当场笑了,然后他说这算是个办法,他又说如果这个人没时间,没工夫跟你吃饭,你怎么办,我当时傻笑了两下,没回答。

4)场景题,手写SQL
场景1:是这样的,一张表三个字段,分别是学生名字、科目名字、科目得分,让我用sql把总分最高的找出来
我说我数据掌握不太好,试着写写。
我用了个子查询,先按学生分组,然后求每个学生的总分数
然后在外部查询中求最大的
我一开始在子查询中直接对用聚合函数求的sum_score排序了,他看了以后说能这么做么,我说我忘了,然后我又说子查询不行的话咱们就在外部查询排序呗,然后反问他可以吧,他说可以的

5)平时学习习惯
CSDN、博客园、Apache官网

6)是否有问题问面试官

(1)最后他说他差不多了,我有什么要问他的没
我问了下他业务方面的一些,也没想到啥,随便问的

(2)最后我又问他,他刚才问我埋点日志后台的人不给加怎么办
他给我说这个需要各个组协调好,不然别干活了,就扯了一会

四面
1)自我介绍

老一套

2)技术部分

(1)介绍MapReduce的运行流程
本来我说给他手画的,他不让,说介绍就行。我就从InputFormat开始到OutputFormat给他说了一遍
然后他就说按着简历来问

(2)让我说下myisam和innodb的区别
老一套

(3)然后看着简历说你知道HDFS的存储过程,我说需不需要我说一下
然后我就把海哥hadoop存储过程那几个图给他说了一遍

3)项目部分

让我介绍下我写的三个项目都是干啥的,我就没画图,给他介绍了下每个项目具体是做啥的,怎么做的(什么领导层要看指标啊啥的)

4)平时学习习惯

还是CSDN、博客园、Apache官网,说都是晚上和周六周天自己学的

(1)问我喜不喜欢技术

我说很喜欢,我说了以后他说为什么喜欢,我就说我搭建起来一个集群很有成就感,能在我女朋友面前炫耀一番。。。

(2)问我喜欢跟人打交道还是喜欢跟机器打交道
我按照实际情况说了下,说比较宅,比较喜欢跟机器打交道,还说从小就比较喜欢玩小霸王游戏机之类的。。。

五面HR
教训:和HR接触不要激动,不要表现的很倾向来她们公司,因为后面工资可能不好谈,要不到理想的价位。

1)自我介绍

老一套

2)人事高频问题

(1)有没有别的offer,面试几家了
我说这周一开始投的简历,在等百度的offer,上午面试的58到家,但是58到家做Hive比较多,我了解不多

(2)问我什么时候辞职的
我说十一月初

(3)问我为什么现在才找工作
说回家一趟,大半年没回家了,这两天刚回来

(4)上家薪资多少
我就按照我心里的想法和马老师说的大概说了个数
然后说什么他们很严格,如果不行会马上辞退啥的,最后说看我能力可以,问我啥时候可以上班,让我准备下薪资流水和离职证明

学长2
1)技术部分

(1)Kafka吞吐量怎么优化

(2)Hive底层,SQL、表关联、窗口函数、聚合函数、一堆场景题

(3)Join对应的MR

(4)一张小表Join一张大表 在MR上怎么JOIN

(5)map()阶段聚合

(6)spark job流程

2)项目部分

(1)上个月用户访问次数最大的IP

(2)topN

(3)日活实时统计

(4)SparkStreaming的活动窗口大小,数据重复怎么办?

(5)数据仓库ODS-》DWD 用什么写的脚本?

3)算法部分

(1)二分查找

(2)字符串反转

学长3
1)技术部分

(1)hdfs的小文件处理。

(2)Hive调优,数据倾斜问题

(3)spark任务提交流程

(4)mr任务提交yarn流程

(5)HDFS的读写流程,Shuffle流程,Shuffle过程的归并排序具体怎么做。

(6)是否用了currenthashmap,高并发问题就高枕无忧了

(7)线程池了解吗?

(8)怎么判断一个kafka消费者挂了

(9)了解redis,mysql吗,mysql的索引了解吗?

(10)select。。。for update是什么锁?

(11)mysql底层文件存储

(12)读过哪些框架的源码?

(13)JVM底层原理

(14)Spark的distinct()算子底层

(15)布隆过滤器

(16)zookeeper的作用,zookeeper单独的事务,nginx的作用,只做收集数据吗?

(17)说一下kafka的架构,描述hw leo,kafka的优化,怎么做幂等,你们做业务幂等性,为什么消费者怎么看到hw。消息的一致性能解决什么问题,kafka事务怎么理解。

(18)Spark的shuffle过程

(19)hbase怎么预分区

(20)redis有多少曹,redis的持久化,你们在项目中怎么用redis的,如何防止雪崩。

(21)mysql update一条语句,需要走那些流程。

(22)了解es吗?

(23)yarn执行一个任务用了多少core

(24)produce给kafka的一个topic发送消息,topic的一个分区挂掉,他的副本也全部挂掉,这个topic还能用吗

(25)有没有用javaapi去读kafka的数据

(26)spark读取kafka数据的方式?

(27)hive的内表和外表的区别,hive为什么要做分区,hive的元数据存在哪?

(28)列式存储和关系型数据库的区别

(29)java中正则表达式用到哪些类?

(30)unlock和synchronzed的区别?

(31)编写sparksql的步骤?

2)项目部分

(1)写实时项目遇到了哪些问题

(2)拉链表的创建,连续三天登陆

(3)你们公司日活,月活,留存多少?你们团队多少人?

(4)为什么加最后一层flume,不能直接flume到hdfs吗?

(5)分析指标,对app有什么影响。提升了百分之多少?

(6)有没有访问kafka的所有topic的权限

(7)有没有做Hive表的权限管理。

3)算法部分

(1)归并排序

(2)删除单链表的一个节点

4)情景题:

(1)Spark:如果消费Kafka中的数据时,某个分区内数据因为种种原因丢失了一条(也可理解成因为某些条件被过滤了),现在需要重新把这条数据纳入计算结果中。怎么解决?

(2)a left join b on a.id = b.id and b.age = 20
a left join b on a.id = b.id where b.age = 20
的结果有什么区别

5)平时学习习惯

(1)你最近在研究什么?

学长4
1、介绍一下项目,你主要负责哪部分,最精通什么

2、hdfs读写机制,DataNode怎么保证数据可靠性,原理是什么(答副本,说不对)

2、MR的过程详细说一下

3、使用MR写出join过程

4、日常开发哪里用到java多线程,怎么写

5、说一下并发和同步,单例必须加同步锁么?为什么

6、说一下MR的底层源码,你研究了哪部分?

7、说说spark的底层源码吧

搜狐面试题

1)笔试部分
(1)hdfs原理,以及各个模块的职责

(2)MR的工作原理

(3)shell脚本里如何检查文件是否存在,如果不存在该如何处理?Shell里如何检查一个变量是否是空?

(4)Shell脚本里如何统计一个目录下(包含子目录)有多少个java文件?如何取得每一个文件的名称(不包含路径)

(5)哪个程序同城与nn在一个节点启动?哪个程序和DN在一个节点?如果一个节点脱离了集群应该怎么处理?

(6)列出几个配置文件优化hadoop,怎么做数据平衡?列出步骤

(7)有序数组的二分查找

(8)编写快速排序(QuickSort)或者归并排序(MergeSort)

(9)整数数组寻找满足条件的点对

(10)给定整数数组A[N],求两个下标(i, j)且0<=i

(11)该(i, j),使得A[i] + A[i] + … + A[j] 最大

(12)要求:时间复杂度尽量低,空间复杂度O(1)

(13)请:1.写出思路的简要描述 2.用你熟悉的语言,定义函数,完成编码和测试用例

2)项目部分

搜狐面试的小伙伴注意,广告变现的业务,会问到flume监控的问题,必问,二面理论比较强,居然问缓慢变化维,我问一下数据仓库有拉链表么?

360面试题

学长1
1)技术部分

(1)常用的linux命令,shell的awk、sed、sort、cut是用来处理什么问题的?

(2)Hive有自带的解析json函数,为什么还要自定义UDF、UDTF

(3)Json的格式,json存的具体数据

(4)MapReduce过程

(5)Shuffle源码?其中reduce的分区是怎么设置的,针对每个key,怎么把它放到对应的分区中?

(6)你了解的hadoop生态圈的框架,及其大概在怎样的一个位置?

(7)mapreduce、tez和spark的区别?

(8)Spark读取文件如果内存不够的话,怎么处理?

2)手写部分

(1)自己写过MapReduce吗?怎么写的?

(2)最近七天连续三天活跃用户怎么实现的?手写一个各区域top10商品统计程序?

(3)平时遇到的数据倾斜的问题,怎么解决的?

(4)大表join大表怎么解决?

(5)每一层大概有多少张表?表的字段也需要记

(6)UDF、UDTF、UDAF区别?

3)算法部分

(1)二叉树的前中后序遍历?

(2)排序算法了解过吗?

(3)快排的时间空间复杂度?快排原理

(4)冒泡的时间空间复杂度?原理

4)情景部分

写一个程序获取ip(123.123.123.123)的地理位置信息,读取配置文件,返回结果ip \t loc_nation \t loc_pro \t loc_city
ip_num_start ip_num_end loc_nation loc_pro loc_city ISP
1910946943 1910946945 中国 辽宁 沈阳 联通
1910946947 1910946949 中国 辽宁 沈阳 联通
1910946950 1910946950 中国 辽宁 鞍山 联通
1910946951 1910946953 中国 辽宁 沈阳 联通
1910946959 1910946965 中国 辽宁 沈阳 联通
1910946966 1910946966 中国 辽宁 盘锦 联通
1910946967 1910946985 中国 辽宁 沈阳 联通
1910946986 1910946986 中国 辽宁 大连 联通
1910946995 1910947033 中国 辽宁 沈阳 联通

sc.read(“input/.txt”)
.mapPartition(data=>{
val splitdata = data.split("\t")
ip_num_start = splitdata(0)
ip_num_end = splitdata(1)
loc_nation = splitdata(2)
loc_pro = splitdata(3)
loc_city = splitdata(4)
ISP = splitdata(5)
(ip_num_start, ip_num_end, loc_nation, loc_pro, loc_city)
})
.map(data=>{
if(ip ){
(data.loc_nation,data.loc_pro,data.loc_city)
}
})
针对上面代码的一些问题:
(1)上面那段代码中,如果文件是一个很大的文件,spark读取的时候用一个任务处理(单机),怎样可以让它读取的效率更高一点?

(2)MapPartition的原理是什么?

学长2
1、常用的linux命令,shell的awk、sed、sort、cut是用来处理什么问题的?

2、hive有自带的解析json函数,为什么还要自定义UDF、UDTF

3、json的格式,json存的具体数据

4、写一段代码:
写一个程序获取ip(123.123.123.123)的地理位置信息,读取配置文件,返回结果ip \t loc_nation \t loc_pro \t loc_city
ip_num_start ip_num_end loc_nation loc_pro loc_city ISP
1910946943 1910946945 中国 辽宁 沈阳 联通
1910946947 1910946949 中国 辽宁 沈阳 联通
1910946950 1910946950 中国 辽宁 鞍山 联通
1910946951 1910946953 中国 辽宁 沈阳 联通
1910946959 1910946965 中国 辽宁 沈阳 联通
1910946966 1910946966 中国 辽宁 盘锦 联通
1910946967 1910946985 中国 辽宁 沈阳 联通
1910946986 1910946986 中国 辽宁 大连 联通
1910946995 1910947033 中国 辽宁 沈阳 联通

sc.read(“input/.txt”)
.mapPartition(data=>{
val splitdata = data.split("\t")
ip_num_start = splitdata(0)
ip_num_end = splitdata(1)
loc_nation = splitdata(2)
loc_pro = splitdata(3)
loc_city = splitdata(4)
ISP = splitdata(5)
(ip_num_start, ip_num_end, loc_nation, loc_pro, loc_city)
})
.map(data=>{
if(ip ){
(data.loc_nation,data.loc_pro,data.loc_city)
}
})
针对上面代码的一些问题:
1、 上面那段代码中,如果文件是一个很大的文件,spark读取的时候用一个任务处理(单机),怎样可以让它读取的效率更高一点?
答:提高并行度?

2、 MapPartition的原理是什么?

5、mapreduce过程

6、自己写过mapreduce吗?怎么写的?

7、shuffle源码?其中reduce的分区是怎么设置的,针对每个key,怎么把它放到对应的分区中?

8、你了解的hadoop生态圈的框架,及其大概在怎样的一个位置?

9、mapreduce、tez和spark的区别?

10、spark读取文件如果内存不够的话,怎么处理?

11、最近七天连续三天活跃用户怎么实现的?手写一个各区域top10商品统计程序?

12、平时遇到的数据倾斜的问题,怎么解决的?

13、大表join大表怎么解决?

14、每一层大概有多少张表?表的字段也需要记

15、UDF、UDTF、UDAF区别?

16、二叉树的前中后序遍历?

17、排序算法了解过吗?

18、快排的时间空间复杂度?快排原理

19、冒泡的时间空间复杂度?原理

学长3
1、常用的linux命令,shell的awk、sed、sort、cut是用来处理什么问题的?
作用:— 截取文本字符串,获取某些内容
— 写脚本

2、hive有自带的解析json函数,为什么还要自定义UDF、UDTF

3、json的格式,json存的具体数据

4、写一段代码:
写一个程序获取ip(123.123.123.123)的地理位置信息,读取配置文件,返回结果ip \t loc_nation \t loc_pro \t loc_city
ip_num_start ip_num_end loc_nation loc_pro loc_city ISP
1910946943 1910946945 中国 辽宁 沈阳 联通
1910946947 1910946949 中国 辽宁 沈阳 联通
1910946950 1910946950 中国 辽宁 鞍山 联通
1910946951 1910946953 中国 辽宁 沈阳 联通
1910946959 1910946965 中国 辽宁 沈阳 联通
1910946966 1910946966 中国 辽宁 盘锦 联通
1910946967 1910946985 中国 辽宁 沈阳 联通
1910946986 1910946986 中国 辽宁 大连 联通
1910946995 1910947033 中国 辽宁 沈阳 联通

sc.read(“input/.txt”)
.mapPartition(data=>{
val splitdata = data.split("\t")
ip_num_start = splitdata(0)
ip_num_end = splitdata(1)
loc_nation = splitdata(2)
loc_pro = splitdata(3)
loc_city = splitdata(4)
ISP = splitdata(5)
(ip_num_start, ip_num_end, loc_nation, loc_pro, loc_city)
})
.map(data=>{
if(ip ){
(data.loc_nation,data.loc_pro,data.loc_city)
}
})
针对上面代码的一些问题:
1、 上面那段代码中,如果文件是一个很大的文件,spark读取的时候用一个任务处理(单机),怎样可以让它读取的效率更高一点?
答:提高并行度?

2、 MapPartition的原理是什么?

5、mapreduce过程

6、自己写过mapreduce吗?怎么写的?

7、shuffle源码?其中reduce的分区是怎么设置的,针对每个key,怎么把它放到对应的分区中?

8、你了解的hadoop生态圈的框架,及其大概在怎样的一个位置?

9、mapreduce、tez和spark的区别?

10、spark读取文件如果内存不够的话,怎么处理?
Spark并不是完全基于内存,当内存不够的话,会将一部分数据进行落盘

11、最近七天连续三天活跃用户怎么实现的?手写一个各区域top10商品统计程序?

12、平时遇到的数据倾斜的问题,怎么解决的?

13、大表join大表怎么解决?
1.空KEY过滤
有时join超时是因为某些key对应的数据太多,而相同key对应的数据都会发送到相同的reducer上,从而导致内存不够。此时我们应该仔细分析这些异常的key,很多情况下,这些key对应的数据是异常数据,我们需要在SQL语句中进行过滤。
2.空key转换
有时虽然某个key为空对应的数据很多,但是相应的数据不是异常数据,必须要包含在join的结果中,此时我们可以把a中key为空的字段赋一个随机的值,使得数据随机均匀地分不到不同的reducer上。

14、每一层大概有多少张表?表的字段也需要记
Ods:start_log,event_log
Dwd:事件日志基础表、11张事件表、启动日志表
Dws:日周月活表、每日新增、用户留存、沉默用户、本周回流、流式用户、最近3周连续活跃的用户、最近7天内连续3天活跃用户数等指标+宽表
Ads:对应dws

15、UDF、UDTF、UDAF区别?

16、二叉树的前中后序遍历?

17、排序算法了解过吗?

18、快排的时间空间复杂度?快排原理

19、冒泡的时间空间复杂度?原理

小米面试题

学长1
大家可以投一下小米的推荐算法。

一面:问两个有序大数组合并成一个数组的最佳方法,还有快排,问了所有项目。

二面:是问推荐算法的业务实现,还有如果你自己做一个推荐,你会怎么选择模型、算法。

三面:数据结构的查找,新增,删除的时间复杂度、还有各种数学问题,然后写了二叉树的查找、还有根据算法题写了一个递归,差不多就这样就过了

1)技术部分

(1)Java8的新特性?

(2)Java8的hashMap为什么采用数组+链表+红黑树?

(3)垃圾回收的算法,CMS和G1的比较,用什么监控JVM?

(4)Kafka对接sparkstreaming?

(5)线程池好处是什么,什么场合用?

(6)zookeeper的选举机制,以及我们还可以用zookeeper做些什么?

(7)flume采集数据的优缺点,还有什么可以代替它,也可以通过自己公司的业务情况自己开发。

(8)spark streaming和storm,Flink的比较,以及各自的优势?

(9)怎么从10亿条数据中计算TOPN?

学长2
面试地点:小米6期
面试时长:共2个半小时

一面(下午3点30分到4点10分):
自我介绍

Spark Streaming和Flink区别

MR和Spark引擎的区别

引起Shuffle的算子有哪些?

Flink+Kafka保证精确一次消费相关问题(记不清了):我说的两阶段提交

Zookeeper的应用

Java中HashMap和TreeMap区别(记不清是不是这个问题了)

SparkStreaming保证精确一次消费

给出数据倾斜解决方案

被问到任务划分的源码(DAGScheduler划分)

给一个整形数组,找出最大的连续子集

给一个数组,一个值,找出第一次出现的两个数的和等于这个值的下标并存入List中(好像Letcode第一道题,双层for循环)

Spark中划分宽窄依赖的底层原理:只说shuffle划分stage没用

二面(下午4点25分到5点10分):
自我介绍
手写SQL:(看着你写,注意)
表t1
页面id 点击 浏览 日期
page_id view visiable date
00/10/1
10/10/1

表t2
品类id 页面id
border_id page_id
a0
b 1
a 3
a4
b 0

找出各个border_id的view,visable个数 (join group by where count(if)…)
JVM内存和调优

Redis数据类型,事务(凭印象说的multi,exec,watch),持久化方式和区别,redis中zset底层实现是什么?

Redis问的很细

跑任务用的什么(Azkaban)?定点定时跑还是周期性跑?

手画星座模型
业务过程,维度,事实
手写单例模式
实时统计过的指标
如何从0到1搭建数据平台?

三面(下午5点10分到5点30分):
自我介绍

B+树和B树底层,与二叉树的区别(手画) 不太会

给你两个矩阵(txt文件,以\t分隔),让你用MapReduce实现两个矩阵相加并输出(每行打行号标记)
… …

四面:(下午5点35分到5点50分)

了解上家公司情况

入职相关事情

学长3
笔试:
1、链表两两反转(搞定)

2、验证二叉树是否符合以下条件:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。(我说我对二叉树不咋熟悉)

3、求一个序列中的最长上升子序列的长度(搞定)

面试:

1、flink的状态后端

2、说说rockdb状态后端,rockdb做状态后端有啥好处和缺点

3、说说hdfs状态后端,它是怎么存储的状态的

4、说说flink中的keystate包含哪些数据结构

5、redis常用数据类型

6、sparkstreaming是如何处理数据积压的,说说反压机制的令牌桶算法

7、简单谈谈jvm辣鸡处理的算法,了解多少,分别是什么

8、谈谈jvm内存的分布,方法区中都存些什么

学长4
第一部分 语言基础:

1:String类可以被继承吗?为什么?

2:HashMap,HashTable,ConcurrentHashMap的异同?

3:Java单例模式 Scala语言如何实现?

4:实现快速排序算法

5:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

第二部分 Hive

1:把每科最高分前三名统计出来 --成绩表Score(student_name,student_no,subject_no,score)

2:找出单科成绩高于该科平均成绩的同学名单(无论该学生有多少科,只要有一科满足即可) --成绩表Score(student_name,student_no,subject_no,score)

3:一个表 test(name,price),构建一个新表,将name相同的,price所有价格合并到一个字段里面

4:如何将题3中price合并后的prices 字段再拆分为多条记录?

第三部分 Spark

1:用户访问日志文件有两列,分别为日期和用户ID:(date,user_id),使用Spark统计每天的访问的记录数和用户数。

2:在spark中,代码的执行位置:
dstream.foreachRDD { rdd =>
val where1 = “执行位置1”
rdd.foreachPartition { partition =>
val where2= “执行位置2”
partition.foreach { record =>
val where2 = “执行位置3”
}
}
}

学长5
1月10号:
面试地点:小米6期
面试时长:共2个半小时

一面(下午3点30分到4点10分):
自我介绍

Spark Streaming和Flink区别

MR和Spark引擎的区别

引起Shuffle的算子有哪些?

Flink+Kafka保证精确一次消费相关问题(记不清了):我说的两阶段提交

Zookeeper的应用

Java中HashMap和TreeMap区别(记不清是不是这个问题了)

SparkStreaming保证精确一次消费

给出数据倾斜解决方案

被问到任务划分的源码(DAGScheduler划分)
给一个整形数组,找出最大的连续子集
给一个数组,一个值,找出第一次出现的两个数的和等于这个值的下标并存入List中(好像Letcode第一道题,双层for循环)

Spark中划分宽窄依赖的底层原理:只说shuffle划分stage没用

二面(下午4点25分到5点10分):

自我介绍
手写SQL:(看着你写,注意)

表t1
页面id 点击 浏览 日期
page_id view visiable date
00/10/1
10/10/1

表t2
品类id 页面id
border_id page_id
a0
b 1
a 3
a4
b 0

找出各个border_id的view,visable个数 (join group by where count(if)…)
JVM内存和调优

Redis数据类型,事务(凭印象说的multi,exec,watch),持久化方式和区别,redis中zset底层实现是什么?

Redis问的很细
跑任务用的什么(Azkaban)?定点定时跑还是周期性跑?

手画星座模型
业务过程,维度,事实
手写单例模式
实时统计过的指标
如何从0到1搭建数据平台?

三面(下午5点10分到5点30分):
自我介绍

B+树和B树底层,与二叉树的区别(手画) 不太会
给你两个矩阵(txt文件,以\t分隔),让你用MapReduce实现两个矩阵相加并输出(每行打行号标记)
… …

四面:(下午5点35分到5点50分)

了解上家公司情况
入职相关事情

学长6
笔试:

语言基础:

1:String类可以被继承吗?为什么?

2:HashMap,HashTable,ConcurrentHashMap的异同?

3:Java单例模式 Scala语言如何实现?

4:实现快速排序算法

5:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

Hive

1:把每科最高分前三名统计出来 --成绩表Score(student_name,student_no,subject_no,score)

2:找出单科成绩高于该科平均成绩的同学名单(无论该学生有多少科,只要有一科满足即可) --成绩表Score(student_name,student_no,subject_no,score)

3:一个表 test(name,price),构建一个新表,将name相同的,price所有价格合并到一个字段里面

4:如何将题3中price合并后的prices 字段再拆分为多条记录?

Spark
1:用户访问日志文件有两列,分别为日期和用户ID:(date,user_id),使用Spark统计每天的访问的记录数和用户数。

2:在spark中,代码的执行位置:
dstream.foreachRDD { rdd =>
val where1 = “执行位置1”
rdd.foreachPartition { partition =>
val where2= “执行位置2”
partition.foreach { record =>
val where2 = “执行位置3”
}
}
}

面试:

1.Scala中以下几个的区别

  1. spark UDF与 hive UDF区别

  2. spark广播出去的信息可以修改吗?比如我广播的是配置信息,怎么改呢。

顺丰面试题

学长1
第一面是做实时推荐同事,针对项目和知识点来问,特别喜欢问spark,因为他用kafka和spark多,认真准备一下这关好过。

第二面是大数据这块的女总监,光跟你怼spark,全是细节,细致到你传了那些参数

学长2
1)技术部分
(1)Kafka原理,数据怎么平分到消费者

(2)flume hdfs sink小文件处理

(3)flink与spark streaming的差异,具体效果

(4)spark背压机制具体原理实现

(5)spark执行内存如何分配,执行任务时给多大内存

(6)sparksql做了哪些功能

(7)讲一下Flink

(8)状态编程有哪些应用

(9)端到端exactly-once如何保证

(10)flink checkpoint机制

(11)Yarn调度策略

2)项目部分

(1)离线指标、数据量、用户量

(2)介绍一下实时项目,哪些指标,怎么算的

(3)SparkStreaming遇到什么问题,如何解决

(4)sparkstreaming实现什么指标,怎么算的

(5)实时当天日活怎么累加

(6)集群规模

(7)一天的指标会用SparkSQL吗

(8)Spark手动设置偏移量,如果数据处理完后,offset提交失败,造成重复计算怎么办

(9)项目中ES做了哪些工作、es实现原理、es倒排索引怎么生成

(10)任务调度

(11)讲一下Hbase、项目中哪些地方用了Hbase、Hbase写入流程、不同列族之间文件怎么划分

(12)kerberos安全认证过程

学长3

问一下,数仓建模有没有更详细的文档说明?

还有hbase的rowkey在生产环境下怎么设计?

三个原则 唯一性 长度原则 散列原则

hbase表做预分区 评估半年到一年的数据量

一年之内不能自动切分 (10g数据)
求出分区数量
最后再设计自己的分区键值 01| 02| 03|
rowkey前缀(分区号) 01_ 02_ 03_
后面拼接常用字段 或者 时间戳
在一个分区内 先查询什么字段,就要把那个字段拼接到前面 分区号_要查询的字段_时间戳(保证唯一性)

电商 分区号—订单号-时间戳

OPPO面试题

学长1
OPPO -实时处理工程师。一面试官陈泉,他拿了多个人的简历,边翻边问。
1)技术部分

(1)sparkstreaming消费方式及区别,spark读取hdfs的数据流程

(2)Kafka高性能

(3)Hive调优,数据倾斜

(4)Zookeeper怎么避免脑裂,什么是脑裂。

(5)Redis的基本类型,并介绍一下应用场景

(6)最后会问一些linux常用命令,比如怎么查进程,查io运行内存等。还真有人问啊

2)项目部分

(1)Hive的分层设计

(2)还有一些flume和kafka的问题,为什么要把离线和实时搞在一起,可以做成两套系统。

学长2

1.介绍你做的所有项目

2.在项目中你负责什么

3.数仓的数据量是多少

4.MapReduce的shuffle过程

5.Spark与Flink的区别

6.平常会自己去学一些技术吗

7.你们公司的大数据组的人员配置

8.你为什么离职

9.工作中遇到哪些困难

10.怎么使用Redis实现分布式锁

11.Zookeeper的HA原理?

12.两个业务有关联,某个业务的数据量有可能暴增崩溃,怎么保证另外的业务数据不受影响?

13.MapReduce怎么去实现Hive中的mapjoin?

14.sparkStreaming中Kafka的offset保存到MySQL中去实现的精准一次性消费,假如业务逻辑处理完,在提交offset时程序崩溃,处理完的数据怎么解决?

学长3
1、讲一讲什么是CAP法则?Zookeeper符合了这个法则的哪两个?
答:强一致性、高可用性、分区容错性;zk符合强一致性、高可用性!

2、你们的Flink怎么提交的?使用的per-job模式吗?为什么使用yarn-session的模式?有什么好处?
答:我说的yarn-session,可以避免重复申请资源(蒙的)
yarn-session提交有监控功能

3、讲一讲Flink的分界线对齐原理,有什么作用?
答:我说是checkpoint算法保证Operator状态一致性的基础

4、了解过Flink的两阶段提交策略吗?讲讲详细过程。如果第一阶段宕机了会怎么办?第二阶段呢?
答:把流程大致讲了,后面的不是很懂,糊弄过去的

5、如果Spark在跑任务的途中,Driver直接挂掉了,但是executor还在继续跑,你该如何解决这个问题?
答:面试官说考的是checkpoint机制
driver挂掉以后,spark程序直接停止

6、如何查看linux中线程的内存、CPU占用、磁盘的消耗等?具体的参数讲一下
答:我说的top/IOtop/df -h,但是具体参数不懂

7、讲讲HFile在hdfs中存储的具体格式
答:我说具体的没有看过,不过好像会建索引
kv键值对

8、讲一讲Spark和Flink的checkpoint机制异同
spark将状态数据存到checkpoint指定的路径下,一个分区一个文件,所以会造成大量的小文件

VIVO面试题

学长1
面试的数仓岗
一面
1)项目部分

(1)大概介绍一下你之前的工作

(2)做过哪些指标,怎么实现的(说出去的指标一定要会写sql,会一个个问你怎么实现的)

(3)有没有做过留存用户,比如一个月,1到30天的留存用户

(4)Hive优化

(5)统计一个月内,连续登陆7天用户

2)情景部分

现场出了个sql题
uid event dt
1 点击 t1
2 收藏 t2
… … …
统计会话session :同一个用户事件时间间隔小于1分钟,算一次会话

二面

1)项目部分

(1)从数据源头开始问

(2)你们的数据源是什么,怎么埋点的,数据的格式是怎么样的

(3)是一次点击生成一个日志?,事件日志为什么会出现套json

(4)启动日志和行为日志是怎么区分的

(5)多次点击是算一个事件还是多个,比如多次点赞,有没有做过类似点击次数的统计,你通过这个日志做了哪些指标

(6)除了用户方面的,事件类的指标做过哪些,这些指标是怎么做的

(7)工作中有什么指标很难的,怎么实现的

vivo,好像会根据你的简历侧重,分配岗位,实时或者数仓,做好准备吧,骚年

学长2
面试Spark开发岗。大家如果有去vivo的,一定要把简历上写到的知识点都搞懂。面试官是带着你的简历过来的,他事先有分析过你的简历。

1)项目部分

(1)先介绍你的项目,我介绍采集平台,刚说到kafka。问双层flume,第二层flume怎么对日志类型分类,分多少个类。如果一层flume新增了一个topic,怎么处理。

(2)Hive表中的每层的血缘关系怎么查询

(3)每天业务量,问简历上的指标是怎么做的。

(4)hive中用什么写sql,hue。

(5)case class和class的区别

(6)SparkStreaming精准一次性消费,会问到你们用的什么版本的kafka和SparkStreaming 。然后就是根据版本,这里offset的问题会展开详聊。

(7)写了redis缓存,会问你缓存机制。

(8)写了Hive配置MySql高可用,会问你怎么配置的。

学长3
忘记录音了,能记起来这几个不太常规的,大家分享分享见解,其他的问题还比较常规

想要考察我Java基础,但是说了用的scala,他就虐我scala了

Scala创建多线程的方式?

Scala 闭包的概念、应用?

Spark并行度由什么决定的,引导我好久,我的回答他都不满意。。。

blackmanager是什么?

Flink实现实时uv统计怎么实现,全流程代码解析包括数据读取算子使用这种

Flink有哪几种窗口(5种),分别是什么

想考察我flinksql但是没用,就考察了几个hiveSQL,比较常规

学长4
vivo(外包 1面 & 2面)

1、SparkStreaming稳定性的确保
(我答了学的3个:背压 优雅关闭 控制写入数据量,好像面试官还是有些不满足,可能实际生产中有其他的优化吧)

2、Spark OOM的本质。
可能是从两方面:map执行时oom,shuffle后oom
参考:https://www.cnblogs.com/jiangxiaoxian/p/7442022.html

3、你了解ES的分页吗?一般到一千页后,就会很慢,怎么解决?
了解,我们公司没有一千页的数据,没操作过。

学长5
1.生产环境中谁提需求,谁验收数据,具体的业务需求流程是什么样的
项目经理 领导 测试经理

2.曝光量有多少、

3.实时计算男女比例和年龄比例有什么用,这种指标用离线计算一天统计一次不是更好吗?

4.实时统计热门商品topN的意义在哪里呢?
仓库备货,调度

5.你是不是培训班的?不是
类加载器的种类,有什么机制,机制有何用处
垃圾回收g1和cms怎么选择

flink的精准一次消费

flink的五种窗口

学长7-外包
1面:
给了任务指标,不知道表的结构的情况下,如何进行分析,解决
回答:维度表,事实表 做一个分类,不知道怎么解决

你们数仓怎么怎么建模的,举一个具体指标说明一下?
回答:星形模型,星座模型,商品维度和人员信息维度和订单事实表做关联,关联字段分别为sku_id,和mid

2面:给了很多指标,很相似,很多任务,如何做一个有效率的管理这些指标
回答:Atlas还是宽表都不能解决,不知道如何解决
业务中台,数据中台,算法中台,技术中台

学长8-AI项目外包
1.数仓中分了哪些主题?

2.请谈谈你对数仓的理解,它有什么优势?
数据分层,解耦,数据备份,避免了重复工作

3.如果让你来设计数仓,你有什么思路?为什么这样做?
阿里官方数据仓库分层架构

4.谈谈你对sparkstreaming的理解,对spark的理解,对hive的理解
谈谈自己项目中使用的,送分题,多做准备

华为面试题

学长1
1)华为非外包岗位,比较看重学历,要求985,如果学历过了,技术基本不怎么卡。

2)外包总部d1区:
(1)namenode内存满了,如何进行扩容,调什么参数。

(2)linux命令怎么查看mr任务的jobid

(3)kafka消费者消费数据的流程,细节到进程和线程这一层。

(4)生产中遇到过哪些OM的情况,怎么解决

(5)namenode设置多目录,在哪个配置文件里面设置,设置哪个参数?

学长2
介绍一下最近做了两个项目,你主要做了什么?
回答:回答了实时的组件和离线的组件,自己主要负责hql和sql的指标书写

boss直聘面试题

1)技术部分
(1)hadoop二次排序

(2)小表关联大表怎么实现的|切片,shuffle,reduce阶段,map阶段,Yarn流程

(3)combiner使用场景 | 环形缓冲区为什么是环形的 | ETL细节| reduce阶段是怎么下载到本地

(4)hadoop 实现TopN

(5)kvBuffer

(6)说一下你了解的JVM模型算法。为什么要使用复制算法(优势,劣势) 怎么查看full gc日志出现的问题。什么时候发生full Gc。栈存储索引的大小。如何查看当前进程的GC

(7)full GC和old GC区别

(8)javaEE说一下你擅长的框架

2)算法部分

(1)sort快排手写

(2)io模式 算法

(3)设计模式:单例模式、工厂、代理,代理与装饰模式区别,适用场景以及理解

(4)手写:冒泡、二分法

3)项目部分

(1)你的项目的亮点

搜狗金融面试题

在茶水间面试,有很多求职者,都是一对一,并且不同面试官很可能是不同的大数据方向
1)技术部分

(1)RDD是什么?

(2)MySQL的索引如何理解?常用引擎是什么?有什么区别?比较Redis和MySQL的区别?说一下各自的持久化机制…

2)项目部分

(1)Kafka的offset、flume的组成,项目中为什么用了两层?如何实时统计pv和uv?

(2)给定一款产品,如何评价它的性能?

(3)对于自己统计出来的结果,如何评价结果的正确性?

(4)介绍主要的业务线,现在有没有offer,职业规划是什么,对加班的看法,是否能接受数仓的工作…

3)手写部分
(1)手写代码1:将两个无序数组合并,并保证合并后的数组有序,不允许用Arrays的方法

(2)手写代码2:手写wordcount,然后比较flatmap和map的区别、groupByKey和reduceByKey的区别

(3)手写HQL:给定两个表,查找a中有但是b中没有的元素
(select * from a left join b on a.id=b.id where b.id is null)
说明上述方式产生了几个job?

4)算法部分

(1)将一个栈变成一个队列,至少用几个栈?

5)感受部分
面试大约2个小时,最后面试官介绍业务时才知道主要是做数仓,并且他问的这些问题,除了项目和后面的产品相关内容,基本上每一个问题都会落到数据结构上(RDD、索引、栈、队列、包括groupByKey和reduceByKey…)

瓜子二手车面试题

1)技术部分
(1)优化必问 hive/spark

(2)为什么kafka可以实现高吞吐?单节点kafka的吞吐量也比其他消息队列大,为什么?

(3)如果写了JVM调优:堆内存溢出如何查看解决,用的那些命令工具;CMS和G1有什么不同?

(4)hive自定义那些udf函数

(5)spark那些算子是在map端聚合的

(6)kafka的偏移量offset存放在哪儿,为什么?

(7)linux命令 查看内存 磁盘 io 端口 进程

2)算法部分

(1)链表转置/二叉树转置

3)情景部分

(1)一个字符串"jasonbbtomccjackddfftomkk",如果相邻两个字符相同视为一个切分点,实现wordcount(注意会有多个连续相同的情况如aabbccdd,还有要问清出现三个或者多个怎么算)

猎豹移动面试题

1)技术部分

(1)对Java的理解

(2)Java线程的理解

(3)对池的了解(线程池、数据库连接池),Java线程池是怎么实现的,Java线程池都有哪些组件,具体作用是什么

(4)对Spring框架的理解

(5)WebServer端收集的日志放在哪里

2)项目部分

(1)介绍下项目,项目中用的那些技术点

3)手写部分

(1)手绘Hadoop架构

作业盒子面试题

1)手写部分

(1)写一个sql将每个月的top3 取出来 我用了三个子查询做出来不行

2)项目部分

(1)讲一下最近做的项目

(2)还有项目的session字段

(3)项目中的如何分辨数据(错误日志,正确日志)

(4)Hive中的表的创建(项目中的表如何构建,创建的字段的组成)

(5)Hive的优化,mysql的优化

(6)Scala算子的实际用法,场景

每日优鲜

数仓岗
1)项目部分

(1)为什么用双层flume

(2)日志标准化在哪里做最好

(3)hive海量数据(一个分区)怎么导入MySQL

(4)遇到过那些坑,自己认为做过有价值的地方

(5)MapReduce

(6)怎样可以让运维自己做查询

美团面试要求

1)技术部分

(1)HDFS架构理解(基础)

(2)HDFS源码/工作原理(高级)

(3)MapReduce架构理解(基础)

(4)MapReduce源码/工作原理/shuffle原理(高级)

(5)MapReduce二次排序(编程,必选)

(6)YARN架构理解(基础)

(7)YARN源码/工作原理(高级)

(8)HBase架构理解(基础)

(9)HBase源码/工作原理(高级)

(10)HBase性能优化(高级)

(11)Hive原理理解(基础)

(12)Hive性能优化(高级)

(13)Flume架构理解(可选)

(14)Kafka架构理解(可选)

(15)Spark RDD理解(基础)

(16)Spark reduceByKey与groupByKey区别(基础)

(17)Spark Broadcast与Accumulator功能(基础)

(18)Spark工作原理(高级)

(19)Spark shuffle原理(高级)

(20)Spark源码理解/贡献(高级)

(21)Spark性能优化/数据倾斜(高级)

2)项目部分
2.1)数仓理论

(1)数据仓库分层架构(初级)

(2)事实表与维度表(初级)

(3)星型模型与雪花模型 (初级)

(4)日增量表与日全量表 (初级)

(5)拉链表 (初级)

(6)缓慢变化维 (初级)

(7)两种建模理论(初级)

(8)data-vault理论(高级)

2.2)数仓周边系统
(1)血缘关系

(2)调度系统

(3)展示,olap(kylin)

(4)指标管理

(5)数据质量管理 (高级)

(6)元数据管理,调度系统元数据,任务运行数据,表存储数据,数据字典等

3)手写SQL部分
(1)点:窗口函数,行列转换,聚合函数
加一点复杂的:collect_set, split, case when,聚合函数, union 等

(2)函数考察
eg: rank, dense_rank, row_number区别 (基础)
行列转换 (基础)
sort by, distribute by, order by, clustered by 区别

(3)3个表关联,写下大概的mr过程 (中级)

(4)去重,2个写法的区别:
select count(distinct id) from t1;
select count(1) from ( select id from t1 group by id) a (高级)
map join 原理 (基础)
bloom filter去重,原理(高级)
hive tunning

4)场景部分
(1)Job,Reduce长时间百分之99;

(2)Reduce的3个阶段,Reduce百分之90+,又降下去,反复几次

(3)map一直百分之90多,之后报错

学长1 上海科锐国际外派美团点评

面试前hr给的重点

Sql要强;

分层是否有参与;

熟悉哪些框架;

项目的数据量有多少;

调度工具用到哪些;

数据源在哪里;

数据可视化怎么做;

跟java怎么对接;

面试官还会现场出一些题目,现场做

正式面试:
一面一位女士:牛客面试,会有一道笔试题。

问spark,flink优劣势,

flink如何处理乱序数据,

flink内存溢出怎么办,

flink有没有试过优化,

flink精准一次消费,

建模理论,用过什么模型,雪花和星型的分别解决什么问题。

用过什么工具进行数据迁移,导入导出。

数仓大体干了什么,自己做了哪些指标,

sql题:用hive解析json字符串 或者 七天连续登陆用户

二面:一位男士:基本和一面相似内容,主要问问项目方面,难度一般。

基本情况:去了是帮美团点评做和银行对接的数据仓库,数据量大,面试是完全和美团点评面试,签合同是和科瑞国际签约。
(听内部消息说尚大好像已经进去了两个,目前hr说还缺两个数据开发岗位)

快手面试题

学长1
快手:视频面试
一面:50分钟
介绍项目
Flink为什么用aggregate()不用process()
自定义UDF,UDTF实现步骤,有哪些方法?UDTF中的ObjectInspector了解吗?
Flume丢不丢数据?PUT,TAKE事务
SQL题:
1.id department salary manager_id 找出员工薪水比领导薪水高的人员(单表join)
2.student course score 找出哪些学生课程比平均课程成绩高?(记不太清了,用到子查询)

快手的数仓分了3层,OLAP用的是Druid,数据量每天达到PB级,上千个指标,
平均每个人跑几百个指标吧。
二面:1小时

手撕SQL
①A-天极增量表
uid,module_name,location,date
目标-B全量表
uid,module_name,first_entry_date,first_location
找出两个第一次插入到B表

②user:uid,age,date
order:order_id,order_money,location,date
其中location:{“city”,“xx”}
双十一场景,找出北京市双十一年龄范围在20-25岁的人中
的人数,人均销售额大于1000的人

Java:
③URL:
http://www.a.com/home?key1=v1&key2=v2
?后面的数据做切分,存放到一个JSON中返回,要求用UDF函数

④找出一个List中的最大值和最小值并返回

问到了几个场景题
Flink设计题
HBase使用场景
Redis使用场景
Druid的一些东西

最后问到了职业规划,闲聊

学长2
快手:视频面试【DA应用】
面试周期:3天
面试次数:2次
未通过原因:他们是个离线部门,离线经验不是特别丰富,简历侧重于实时了。。
投简历之前根据侧重点投。
一面:50分钟 2.17号
介绍项目
Flink为什么用aggregate()不用process() 简历写的
自定义UDF,UDTF实现步骤,有哪些方法?UDTF中的ObjectInspector了解吗?
Flume丢不丢数据?PUT,TAKE事务
SQL题:
1.id department salary manager_id 找出员工薪水比领导薪水高的人员(单表join)
2.student course score 找出哪些学生课程比平均课程成绩高?(记不太清了,用到子查询)

了解到:快手的数仓分了3层,OLAP用的是Druid,数据量每天达到PB级,上千个指标,平均每个人跑几百个指标吧。

二面:1小时 2.19号
count(distinct)和group by再count的区别
手撕SQL
①A-天极增量表
uid,module_name,location,date
目标-B全量表
uid,module_name,first_entry_date,first_location
找出两个第一次插入到B表

②user:uid,age,date
order:order_id,order_money,location,date
其中location:{“city”,“xx”}
双十一场景,找出北京市双十一年龄范围在20-25岁的人中
的人数,人均销售额大于1000的人

Java:
③URL:
http://www.a.com/home?key1=v1&key2=v2
?后面的数据做切分,存放到一个JSON中返回,要求用UDF函数

④找出一个List中的最大值和最小值并返回

问到了几个场景题
Flink设计题
HBase使用场景
Redis使用场景
Druid的一些东西:segment的划分,有两条相同的数据如何去重
最后问到了职业规划,闲聊

学长3

  1. 自我介绍

  2. 问了下离线数仓的架构

  3. 问了hive四层架构

  4. 问了业务系统8张表的更新方式

  5. 问了模型

场景题:
1.使用SQL或者sparkrdd写出代码

  1. 两张表,怎么使用sparkrdd的方式实现join,代码
    Table1
    uid ,dept_id
    Table2
    dept_id,dept_name

3.使用MR或者spqrk实现countdistinct(例如求uid数量)

新美互通面试题

简单的自我介绍一下?
这个地方我标红了,别看只是个自我介绍,这第一个问题我就栽了,因为自己心急,直接介绍完自己就把项目也一起说了,语速是相当快,就让人感觉是在背或者在照着读(禁忌),
自我介绍一定要简洁明了!!!!!!!一定要切记面试是一问一答的形式,千万不要答非所问,我的问题就出在这里!这第一印象就0分了!!!

用的什么架构?都用了哪些件?

Flume你了解得多吗?

是你来维护Flume吗?

面试官:我们公司没用过Flume,以后的话可能会用到,有这个计划。

为什么前面Flume不直接到hdfs上,中间要用kafka呢?

原始文件在hdfs上,那数据应该清洗格式化之后才能放到hive吧?

中间是写的mr吗?

Hbase一般放什么数据?

整个流程都是你一个人维护吗?

你们的数据量是多大?

HDFS的集群的物理机有多大?

面试官:我们不做国内的数据,做国外的数据。
你有没有做过数据计算方面的任务,统计方面的任务,自己去调研自己的数据是否合理类似于这种计算?

计算资源不够的问题?

Spark计算写的多吗?

你代码写的多吗?还是主要写SQL?还是写脚本?

你为什么离职呢?

我之前说有组长带我,组长很厉害,面试官就说你们老大不是很厉害吗,你跟他能学到不少东西,怎么还离职呢?

你对下一份工作有什么要求吗?

全乘22分钟,面试官是个小姐姐,跟我说电话面试时间太长不太好,因为是分阶段的,先聊到这,之后如果可能的话会有HR联系你。自我感觉开局跪,可能没机会了。

金山云面试题

学长1
金山云2.21号下午4点:电话面试
部门主要是做数据平台,二次开发改源代码
面试时长:1小时
Java部分:
HashMap,HashTable,ConcurrentHashMap区别,HashMap扩容;注解的使用和内部原理

Spark部分:
Spark 任务划分,Job提交流程;
(DAGScheduler将Job划分为多个Stage,划分的原则为Shuffle算子 宽依赖)

Linux部分:
根据进程名杀死进程;查看端口号占用情况;( netstat -nltp | grep process_number )
ps -ef | grep process_name | grep -v grep | awk ‘{print $2}’ | xargs kill -

Flume部分:
Flume如何保证数据不丢;TairDir如何保证数据完整性;记不清了,是读取一个Postion

Flink部分:
Flink如何保证exactly-once语义;Flink和Spark的区别;

OLAP部分:
Kylin和Druid的使用场景和原理;CDH集群监控相关问题;
性能调优:
介绍调节Kafka速率和开启背压机制;广播变量原理;项目性能调优(调参一直被怼);一些集群部署的事情

JVM部分:
JVM的参数调优;GC种类和算法(讲讲标记-清除原理);
算法题基础题:
两个数组找出中位数;两个线程交替打印递增自然数;

金山云2.25号上午11点:电话面试
介绍一个最擅长得项目,用到哪些大数据组件

用Azkaban和其他调度工具的优劣,如何保证某个job挂掉后断点继续跑任务?

Spark用过的算子

Presto了解吗?

HashMap和HashTable的区别?ConcurrentHashMap了解多少?一面和二面都被问到

对网络编程,NIO,BIO等并发相关的理解。

八个硬币找出最重的(分两组二分查找)

一个N阶楼梯,可以步长为1/2的走,有多少种走法?(斐波那契数列)

图新瀚合面试题

1.linux的操作指令,问的比较多,都是比较难记的

2.shell脚本,bash的含义,以及简单的说自己写过的脚本

3.离线实时部分,偏简历的项目,主要讲述自己做的部分,

4.spark参与过的调优,运行模式,与flink的对比,flink的watermark机制和状态一致性

中创软件面试题

数据库的东西比较多oracle,db2还有几个没记住,偏存储过程,没整理,主要没听懂

清华同方面试题

1.公司的集群架构,每台部署了什么东西

2.公司的数据量,离线数据仓库每层的数据量有多大

3.关于hadoop相关的调优

4.kafka manager

5.azkaban任务的调度,每天多少指标等等

6.数据仓库每层都报村的是什么数据,如何存储,存储到哪

7.数据治理,我就简单的说了一下格里芬

8.剩下的就是简历上的业务,偏离线,讲逻辑和实现过程

柠檬微趣面试题

1.scala语言的特质,闭包,模式匹配,变量,抽象

2.spark的rdd的特点

3.精准一次性消费如何实现,如何手动维护

5.为什么选用direct,以及他的并行度是怎么回事

4.场景题,如何在大量数据中快速抓取某类数据

5.算法加数据结构加链表,没整理,听不懂也答不上来

量化派面试题

学长1
1月9号:
面试地点:互联网金融中心-11层量化派,金融公司。
面试时长:约2个半小时
面试次数:5次
一面:(30分钟)
Spark Core内容。

RDD的容错性,窄依赖,宽依赖怎么进行容错。

RDD的数据从哪来?RDD的五个特性(说不上来)

Partitioner的几个:hash和ranger???

说说Hbase的架构

手写代码:二分查找

Java基础:
List:ArrayList,LinkedList

List调用add方法后发生了什么?满了后怎么扩容?

Map:HashMap和TreeMap区别

红黑树底层(不会)

快排,二分以及复杂度

OLAP 是否用过这个:doris
数据一致性

二面:大数据老大(1个小时左右)
比较难
一些细节刨根问底

OLAP中Presto和Druid,Impala区别等问题

数仓的整个过程,每层的细节

实时的指标一些细节

HBase设计原则

HBase场景题

手写代码的环节:
单例模式

中序非递归遍历二叉树(只会写递归),我写了递归

三面: 应该是个小主管,聊人生(20分钟)
1月15日量化派复试:

四面: 技术负责人(35分钟)
问了一些flink和spark,分析Spark TOPN复杂度问题 答得不好

元数据管理和数据治理

五面hr(20分钟):
质疑工作经历,问的很细,一周内等消息(没等到)

学长2
笔试题
用java写出单例模式(多种方法加分)

写一种常见的排序算法并分析时间复杂度

输入字符串输出判断输入是否是一个数字
例如:3.5->true
Ooo->false;

文本文件Filef里面存放公司各个部门人员的工资明细 数据格式如下:
DeptIdnamesalary
1001张三012000
1002李四022500
1003张三053000
1002王五012600
用java程序写出各个部门的平均工资并倒序输出

面试中问到的题:
udf的种类
reduceByKey和groupByKey的区别

spark的job的提交,处理过程

sparkStreaming UpdateStateByKey底层是如何实现保存数据原来的状态的

还有一些关于你项目的具体问题

你是如何实现flume数据传输的监控的

给你一个数组里面有奇数、偶数,写一个算法实现奇数全在最左侧偶数,全在最右侧

写一个算法实现一个二叉树的各层节点的个数

天阳科技面试题

  1. HashMap和Hashtable区别

  2. Kafka会不会丢失数据

  3. 工作中每天都做些什么

  4. 在工作中遇到过什么问题

  5. Sparksql如何调优

  6. 简述Flink watermark概念

泰康保险面试题

学长1
1.先做一下自我介绍

2.你负责那些项目

3.说自己的项目经历

4.你对公司的了解

学长2
之前用spark streaming后来为什么用flink

解释一下flink的水位线,多流join水位线怎么确定

flink的cep

flink的join类算子有哪些,flink流处理怎么实现两个流的join的

flink的重启策略

flink 1.10有没有关注,哪些点你比较关注

flink用scala写?你java是不是不熟

spark的join算子有哪些

kafka producer产生数据的流程, 数据顺序怎么保证,场景:要保证一个人的所有信息有序,怎么做

kafka的ack

flume的拦截器做了什么

Hbase读写流程

awk -F的作用

linux 的inode干嘛用的

软通动力面试题

面试总结:
8. 都用过哪些技术?

  1. 会用Linux吗?我说会用但太底层的没多大研究,只是一些日常的操作,那问几个常用命令

  2. Hive优化

  3. Sqoop优化

  4. Sqoop在导入数据的时候数据倾斜

  5. 每天sqoop跑多大的数据量

  6. 数据采集架构

  7. Hive常用文件格式介绍一下Orc和Parquet

  8. 都分析过哪些指标

  9. Java的一些操作,我说我们公司java开发不是我负责的,掌握的只是一些基础,没有像java程序员那样研究的那么透彻

乐元素面试题

第一面:
聊了之前公司的架构 因为是基础架构的 主要问了基础架构人数等

问了一下使用的语言 java基础问题 包括线程 集合类原理

问了kafka的原理和使用

第二面:

首先询问了一下之前的公司的业务范围 数据量大小 团队规模

问了为什么离职,自己未来有什么规划打算

问了一些hive sql问题 是否有了解scala编程 具体有没有使用过sparkstreaming flink等流式计算引擎

问了大数据相关,包括之前的公司的主要技术架构,技术选型有什么考虑 数据量 延迟多少 对原来公司的技术架构问的比较细

如果给定数据量每天1T的数据,设计数仓 实时和离线的 要求延迟小于5分钟 让你设计一套架构

北京国信博飞面试题

  1. 自我介绍

  2. 项目中你主要负责哪些部分?

  3. 小文件的处理

  4. 不同数据源的标准化问题,具体怎么执行的?

  5. 对数据建模的理解?

  6. 为什么用Sqoop导入业务数据?

  7. 元数据怎么管理的?

  8. 采集数据的时候针对不同的表分别是怎么处理的?

  9. 除了做宽表和降维,还有哪些方法来提高查询的效率

  10. Oracle用过吗?

  11. 数据中台?

知因智慧面试题

学长1

  1. 自我介绍

  2. Hadoop是自己搭的吗,用的什么版本?hadoop、flume、kafka、sqoop、spark版本号

  3. 多少台服务器?为什么?

  4. 你们公司多少人?大数据组多少人?

  5. 离线数据从哪儿来的?

  6. 网站访问量多大?

  7. 并发峰值多少?大概哪个时间点?

  8. 加班多吗?

  9. Hadoop启动的时候都有哪些进程?

  10. namenode、datanode、secondnamenode怎么协作的?

  11. 介绍一下Java中的Map?Map、set和list的区别?

  12. GC垃圾回收?

  13. HQL用的过程中对SQL的一些优化、hive 的优化?

  14. MapJoin的底层是怎么做的?

  15. 小表join大表,多大的表算小表,多大算大表?为什么?

  16. SQL语句做过哪些优化?orderby、sortby区别?

  17. 临时表和视图用过吗?说一下

  18. 分区表用过吗?什么情况下用的?

  19. 用的是动态分区吗?动态分区的底层原理是什么?

  20. 分区和分桶都用了吗?

  21. 场景:现在有张码表,需要很多次join,这个SQL要怎么写?用什么函数来解决这个问题,直接join不是最好的解决办法?

  22. 用Spark做过什么?RDD、dataFrame、dataSet有什么区别?

  23. 你是怎么理解RDD的?

  24. 在Spark处理过程当中,影响执行效率的参数都有哪些?并行度你们设置的多少,输入的数据量多大?

  25. Sqoop用来做什么?Sqoop遇到哪些问题?

  26. Hive里边字段的分隔符用的什么?为什么用\t?有遇到过字段里边有\t的情况吗,怎么处理的?为什么不用Hive默认的分隔符,默认的分隔符是什么?

  27. ES怎么用的,用来做什么?为什么用ES?ES最大的优点,最适合解决什么样的问题?ES集群是几个节点?

  28. OLAP和OLTP的区别?

  29. impala用过吗,什么情况下用?知道impala为什么快吗?

  30. Hive都用过哪些引擎?Tez用的时候设置的容量有多大?设置了哪些参数?
    Spark和Tez
    Tez优化:

  31. 未来的规划?数据仓库、数据分析、底层维护、数据的标准化?

  32. 在培训机构待过吗?

  33. 为什么离职?期望薪水?

  34. 你有什么想要了解的吗?
    11.1 学长1
    CTO给面试,
    APP40万的下载量,日活10万。

你们一天数据量有多大:行为日志—10G(按1G/万人)
你们的数据有多少维度:
每个字段有多大:
你们有多少个服务器:27台有左右

Flume 4-5 Agent在后台服务器一块
Kafka 4-5 和Flume Collect共用,数据保留7天
ZK 3 可单独部署也可放在数据节点
Hadoop 12-15 数仓(Hive分层)
Spark 7-8 实时运算的

你们一天数据分配到每个服务器,数据量有多大:
Flume和kafka数据能达到2到3G
Hadoop每台数据达到1G

考满分公司面试题

面试中问到的题:

1.1 Hadoop是什么

1.2 Java的特性

1.3 设计模式

1.4 怎么理解scala的函数式编程

1.5 tcp,udp的区别

1.6 网络七层和网络四层,它们的区别是什么

1.7 数据库存储数据的具体文件是什么,有几种

1.8 myisam和innodb的区别

1.9 数据库锁的类型

1.10 数据库explain和show profile的具体应用

1.11 redis的五种基本类型,redis的AOF是什么,redis的sentinel哨兵模式

1.12 flume有哪些组件,flume的source、channel、sink具体是做什么的(5.9)

1.13 kafka的balance是怎么做的(6.18)

1.14 kafka的消费者有几种模式(6.19)

1.15 hadoop的块大小,从哪个版本开始是128M

1.16 Hadoop数据倾斜问题(1.5.2)

1.17 ETL是哪三个单词的缩写(1.3.22)

1.18 RDD、DataFrame、DataSet的区别

1.19 spark中driver和worker的通信框架

1.20 akka和netty通信框架的区别

1.21 spark算子类型,它的工作机制

1.22 Linux常用命令(12.2)

1.23 CentOS查看版本的命令(12.1)

1.24 你对于Spark官网哪里印象比较深刻

1.25 用英语介绍下Spark官网

亿联银行(石景山瑞达广场)面试题

1 技术总监面试
技术问题特点是,从你的项目描述入手,问技术细节

2、 画出项目流程图,你负责哪一块业务

3、 flume配置参数 flume每分钟产生的数据

4、hdfs的小文件优化

5、 sparkstreaming消费Kafka的偏移量怎么维护

6、spark的UDAF函数

7、 对hive的理解和优化策略

8、 Hive有没有自己写过UDF函数

9、sparkstreaming的窗口函数

10、 Redis在哪用 Redis mysql的区别 为什么用Redis,如果没有redis包 该怎么打 解决办法

11、 Storm 生产上用过吗 你们提交的是全量的jar包 还是 分开 jar包有依赖包 storm里

12、 HDFS拷贝到Hive 数据做了哪些处理

洋葱科技面试题

1 技术总监面试

2、1 Java中单例模式有哪几种 饿汉式 懒汉式 具体 哪个线程安全 不安全的怎么处理 同步锁怎么加 锁在什么时候会释放

3、 == equals的区别

4、 Scala 样例类怎么使用 Scala 上层的类是什么 (相当于Java中的Object 的类)

5、HDFS存储很多小文件的话,会有什么影响 如何处理小文件的问题 (压缩技术的例子 压缩之后是否支持分块 )

6、 Yarn调度器

7、 描述HDFS写数据的流程

8、Hive中使用的数据格式

9、Hbase热点问题 读写请求会集中到某一个RegionServer上 如何处理

10、 linux 查看端口调用

11、 SparkStreaming 哪几种方式读取kafka数据 (receiver 和 direct)

12、 SparkStreaming 读取kafka时如何保证实时数据不丢失的问题 至多 至少(数据多一点) 精确一次

13、如果没有实现精确一次,实现至少一次 会有重复的数据进入下游MySQL数据库 如何解决

北京卓越讯通面试题

学长1
1、 JAVA支持的数据类型有哪些?什么事自动拆装箱?

2 、AtomicInteger和Volatile等线程安全操作的关键字的理解个使用

3 、创建线程有几种不同的方式?你喜欢哪一种?为什么?启动线程调用什么方法?

4、 什么是死锁(deadlock),如何确保N个线程可以访问N个资源同时又不导致死锁?

5、 JAVA中的HashMap的工作原理是什么?

6、 GC算法有哪些、垃圾回收器有哪些、如何调优JVM?

7、 JAVA中堆和栈有什么区别?

8、 Spring有哪些不同类型的IOC(依赖注入)方式?

9、 判断下列表达式是否相等
String a = “abc”;
String b = “abc”;
String c = new String(“abc”);
String d = “ab” + “c”;

10、 常用的spring mvc 注解有哪些?

11 、Spring 框架中的单例bean是线程安全的吗?为什么?

12 、Mysql单表数据量过大可以采取什么措施进行性能调优?

13、 请写出二叉树的遍历算法

14、 写出一个单例模式

面试题1
pv量,数据量,集群规模

ES分片

Spark Streaming 特点

项目组件的选择,为什么用spark streaming 不用storm

ALS模型参数调优

学长2

做大数据多久?

用过ES、OZ吗

ES集群多大?配置怎么样?服务器配置?数据量?处理速度?ES做过什么优化?主要负责那个模块?项目的架构和工作流?

你们的Flume怎么做数据监听?有没有做ETL?

有没有自己写过UDF函数?写的是什么UDF函数 功能?

HiveSQL 转MapReduce join 实现怎么处理join关系。写程序,怎么实现两个表join

数据分析有没有用过算法?

在项目中主要的工作是什么

整个工作流,架构的设计,集群搭建 ETL 数据展示能否独立完成

协同过滤、随机森林、能不能靠自己经验完成?

项目中遇到的问题 特别的 怎么解决 哪个Bug 印象最深的部分

wordCount 机制

MapReduce怎么解决数据均衡问题 如何确定分区号

提升多少效率 ?数据倾斜 使用随机数 + key 打散 原有的key

项目中使用Hive的作用?建的是外表?

有没有试过OZ调度Sqoop

集群的监控用的什么

有没有用过HDP CDH

有没有使用OZ调度hadoop任务

学长3
公司的集群架构,每台部署了什么东西

介绍离线数仓的架构

HDFS读写流程

都做了哪些需求,最难的是哪个需求

离线数仓,都有什么进程

HQL常用的函数,HQL调优

SparkStreaming集群架构

数据洪峰怎么解决

最难的是哪个需求,怎么做的

怎么优化的,遇到过什么故障,怎么解决的

用什么采集数据库的,遇到过哪些问题

为什么要用Flink

做过哪些需求,那个最有难度

Flink项目遇到过什么难题,怎么解决的

延迟大约多少

FlinkSQL了解吗?

ES用过吗,架构

ES规模,文件存储机制,设置几个副本

Flink需求,都实现精确一致性了吗?怎么实现的,有没有什么漏洞

Phoenix二级索引用法,原理

某张表,分库存储的,怎么采集?可能会遇到什么问题,怎么解决?

哪里用过Redis,为什么要用Redis

环信面试题

介绍项目,项目中用到的技术点

一天10多个G的数据量使用Spark累加器是否合适

myisam和innodb的区别

zk的watch观察机制、选举机制

mr的工作机制

mr扔到集群,具体的执行过程

手写Spark的WordCount

Spark有哪两种算子,为什么遇到action操作的算子才会执行
四十一 和讯网面试题
和讯网面试的小伙伴注意:这家公司问得全是业务问题,面试的伙伴注意一定要把项目的业务讲好,技术一点没问。

e代驾面试题

笔试
有一张很大的表:TRLOG,该表大概有2T左右
CREATE TABLE TRLOG
(PLATFORM string,
USER_ID int,
CLICK_TIME string,
CLICK_URL string)
row format delimited fields terminated by ‘\t’;
数据:
PLATFORMUSER_IDCLICK_TIMECLICK_URL
WEB123323212013-03-21 13:48:31.324/home/
WEB123323212013-03-21 13:48:32.954/selectcat/er/
WEB123323212013-03-21 13:48:46.365/er/viewad/12.html
WEB123323212013-03-21 13:48:53.651/er/viewad/13.html
……………………
把上述数据处理为如下结构的表ALLOG:
CREATE TABLE ALLOG
(PLATFORM string,
USER_ID int,
SEQ int,
FROM_URL string,
TO_URL string)
row format delimited fields terminated by ‘\t’;
整理后的数据结构:
PLATFORMUSER_IDSEQFROM_URLTO_URL
WEB123323211NULL/home/
WEB123323212/home//selectcat/er/
WEB123323213/selectcat/er//er/viewad/12.html
WEB123323214/er/viewad/12.html/er/viewad/13.html
WEB123323211NULL/m/home/
WEB123323212/m/home//m/selectcat/fang/
PLATFORM和USER_ID还是代表平台和用户ID:SEQ字段代表用户按时间排序后的访问顺序,FROM_URL和TO_URL分别代表用户从哪一页跳转到哪一页。某个用户的第一条访问记录的FROM_URL是NULL(空值)。两种办法做出来:

1、实现一个能加速上述处理过程的Hive GenericUDF,并给出此UDF实现ETL过程的Hive SQL

2、实现基于纯Hive SQL的ETL过程,从TRLOG表生成ALLOG表:(结果是一套SQL)
hdfs原理,以及各个模块的职责
mr的工作原理
shell脚本里如何检查文件是否存在,如果不存在该如何处理?Shell里如何检查一个变量是否是空?
Shell脚本里如何统计一个目录下(包含子目录)有多少个java文件?如何取得每一个文件的名称(不包含路径)

哪个程序同城与nn在一个节点启动?哪个程序和DN在一个节点?如果一个节点脱离了集群应该怎么处理?

列出几个配置文件优化hadoop,怎么做数据平衡?列出步骤

谈谈数据倾斜,如何发生的,并给出优化方案?

Hive跟hbase的区别是什么?

什么是埋点?流程是什么样的?

现有海量日志数据保存在一个超级大的文件中,该文件无法直接读入内存,要求从中提取出某天访问新浪次数最多的那个IP

已知一个表STG.ORDER,有如下字段:Date,Order_id,User_id,amount。请给出sql进行统计:数据样例:2017-01-01,10029028,1000003251,33.57。

  1. 给出 2017年每个月的订单数、用户数、总成交金额。

  2. 给出2017年11月的新客数(指在11月才有第一笔订单)
    public class Foo{
    Public static void main(String[] args){
    Try{
    badMethod();
    System.out.print(“A”);
    }catch(Exception ex){
    System.out.print(“C”);
    }finally{
    System.out.print(“B”);
    }
    System.out.print(“D”);
    }
    Public static void badMethod(){
    Throw new Exception();
    }
    }
    输出结果是什么?

A.CBDB.BC.BDD.编译失败
Public class Foo{
Public static void main(String[] args){
Integer a = new Integer(1);
Integer b = 1;
If(a == b){
System.out.println(“OK”);
}else{
System.out.println(“NO”);
}
}
}
输出结果是什么?为什么?

详细描述HashMap的内部实现。

分别描述ThreadLocal、Volatile、Synchronized的含义以及应用场景

MyBatis中#和$的区别是什么?

Redis的数据类型有什么?如何使用Redis实现分布式锁?

Spring中IOC和AOP的含义?底层是如何实现的?

小麦公社面试题

面试

Scala中协变逆变的应用场景。

Spark中隐式转化的应用场景

Spark中基于standalone还是Yarn?计算引擎是什么?

Jdk1.7hashmap怎么设计的,为什么引入红黑树?链表的查找方式和红黑树的查找方式有什么不同?

Java并发安全是怎么理解的?

Map和 FlatMap区别 对结果集的影响有什么不同

对RDD的理解

Transformation和action的区别

常用的RDD?HadoopRDD MapPatitionRDD

对DAG怎么理解的?怎么形成的?划分不同的stage的依据是什么?

对DAGSchedular 和TaskSchedular的理解?

Spark里面怎么提交job的 大概涉及到哪些类 怎么提交的

Spark2.11默认的消费引擎是什么?

Shuffle是一个挺消耗资源的操作,对shuffle有什么优化措施?如何避免数据倾斜?产生数据倾斜的原因是什么?什么情况下会进行重新分区?重新分区调用什么方法?如何做到既能重新分区又不产生shuffle?

SparkStreaming怎么做到流式计算?工作原理是什么?DSStream是一个什么样的结构?里面有哪些对象?

Kafka里面用的什么方式 拉的方式还是推的方式?如何保证数据不会出现丢失或者重复消费的情况?做过哪些预防措施,怎么解决以上问题的?Kafka元数据存在哪?

在Standalone模式中Master worker driver三者是怎么协同的?程序出错了会跟谁汇报?

Yarn模式下,资源是怎么分配的

Hive做过哪方面的优化?Spark中怎么优化?BroadCast广播变量

SparkSQL底层对catalyst做了哪些优化

千万级的数据落地到MySQL中,MySQL查询比较慢,落地到ES中,检索快。

中关村在线面试题

18.1 笔试
下面哪个操作会使数据行数变大?
A.map B.flatmap C.reduceByKey D.zipWithIndex
“sc.parallelize([(1,2),(1,3),(2,3),(2,4),(3,1)]).reduceByKey(lambda x,y:x+y).count”操作中会产生()个stage?
A.1 B.2 C.3 D.5
Spark streaming 中的DStream不支持的操作是()
union B.filter C.foreach D.updateStateByKey
Spark streaming中用于调试输出数据的命令是?

如何减少spark运行中的数据库连接数?

如何减少spark运行中的分片(partitions)数?

有日志如下,请写出代码求得所有用户和活跃用户的总数及平均年龄。(活跃用户指连续两天都有访问记录的用户)
日期 用户 年龄
11,test_1,23
11,test_2,19
11,test_3,39
11,test_1,23
11,test_3,39
11,test_1,23
12,test_2,19
13,test_1,23

hbase查询一条记录的方法是什么?Hbase写入一条记录的方法是什么?

HDFS如何保证数据安全性?

Kafka如何保证不同的订阅源都收到相同的一份内容?

写出你知道的协同过滤算法的名称。

写出你知道的聚类算法和分类算法名称。

现有文章若干和用户已有的文章阅读日志,请描述思路为用户推荐未读过的10篇文章

思特奇面试题

笔试
在hadoop中定义的主要共用InputFormats中,哪一个是默认值:()
(A) .TextInputFormat
(B) .KeyValueInputFormat
© .SequenceFileInputFormat
两个类TextInputFormat 和TextInputFormat 的区别是什么?
在一个hadoop任务中,什么是InputSplit?
hadoop框架中文件拆分是怎么被调用的?

参考下面的MR系统的场景:
–hdfs块的大小为64MB
–输入类型为FileInputFormat
–有三个文件的大小分别是:64KB 65MB 127MB

Hadoop框架会把这些文件拆分为多少块?

Hadoop中RecordReader的作用是什么?

Map阶段结束后,Hadoop框架会处理:Partitioning Shuffle和Sort,在这个阶段都发生了什么?

如果没有定义partitioner,那数据在被送达reduce前是如何被分区的?

分别举例什么情况使用cmbiner,什么情况不会使用?

Hadoop中job和Tasks之间的区别是什么?

Hadoop中通过拆分任务到多个节点运行来实现并行计算,但某些节点运行较慢会拖慢整个任务的运行,hadoop采用何种机制应对这个情况?

流API中的什么特性带来可以使map reduce任务可以以不同语言(如Perl,ruby,awk等)实现的灵活性?

有可能使HashMap任务输出到多少个目录中么?如果可以,怎么做?

如何为一个hadoop任务设置mapper的数量?

如何为一个hadoop任务设置要创建reducer的数量?

快看漫画面试题

笔试

SQL中LEFT JOIN的含义是____,如果tbs_user表记录了学生的姓名(name)和学号(id),tbs_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(id)和考试成绩(score)以及考试科目(subject),要想打印出所有及格(每一天都大于60分)学生的姓名及其各科总成绩,则可以用SQL语句______.
请描述hadoop2.x中HDFS的高可用架构(high availability)是如何实现的。
请简要描述spark任务中的“宽窄依赖”是什么?每个spark任务的stages是怎么划分的?

有一个体积较大的HDFS文件,文件每一行的格式为:作品ID,用户ID,用户性别。请用一个spark任务实现以下功能:统计每个作品中,所有不同用户的性别分布。输出格式如下:作品ID,男性用户数量,女性用户数量。

实现一个方法,传入整数n这个参数,输出所有和为n的连续整数序列。
例:输入n=15,输出:
1,2,3,4,5
4,5,6
四十七 乐窗面试题
HDFS中的block默认保存几份?
哪个程序负责HDFS数据存储?
HDFS默认Block Size
集群通常最主要的瓶颈是什么?

关于SecondaryNameNode哪项是正确的?
A. 它是NameNode的热备
B. 它对内存没有要求
C. 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间
D. SecondaryNameNode应与NameNode部署到一个节点
一副牌52张(大小王已去掉),从中抽取两张牌,一红一黑的概率是多少?
简述Apache原生Hadoop,CDH,HDP的区别。
通过spark sql 将下表中的preservel字段拆分成2列,spark sql如何书写。
ID
Ips_did
preservel
1
006CFDAIB916
Time 06/20/45 item 2017155
2
HZG02GYQ
Time 06/20/46 item 731462
注:preservel中的分隔字符为普通的空格。

下表是班级的考试成绩表,查询班里地理成绩第2名的姓名和ID。简述查询思路,并写出SQL查询语句。
ID
姓名
课程
成绩
1
张三
地理
95
……

金和网络面试题

编写表达式,判断一个正整数n是不是2的幂
字符串”jhddata”的二进制哈夫曼编码有几位?
请用shell脚本写出查找当前文件夹(/home)下所有的文本文件内容中包含有字符”a”的文件名称
请用sql写出商品分类表中一级分类下面所有的分类数据(描述:商品分类表中不确定有多少级,可能有2级,可能有3级,4级)表字段:id:分类id,parentid:父类id,currentlevel:处于的当前的级别,
分类id
Name
父类id
currentlevel

请用sql写出所有用户中在今年10月份第一次购买商品的金额,表ordertable字段(购买用户:userid,金额:money,购买时间:paymenttime(格式:2017-10-01),订单id:orderid)
怎样决定一个job中的map和reduce的数量
简述一下MapReduce运行原理(写要点)
请说一说对数据可视化的理解
简要描述一下自己对以下名词ORCFile、RCFile、TextFile、SequenceFile的认识(写要点)
试说明Yarn中运用程序的基本流程
什么是数据倾斜,数据倾斜是怎么产生的,并给出优化方案

一下面试题

面试题

  1. hashMap和hashTable的区别。

  2. 怎样实现数组的反转。ArrayList arrayList=new ArrayList();
    arrayList.add(“A”);arrayList.add(“B”);

  3. 请用]ava实现二分查找。

  4. 描述hbase的rowkey的设计原理,

  5. hbase中compact的用途是什么,什么时候触发,分为哪两种,有什么区别。

  6. hive的sort by和order by的区别

  7. 用任何一种语言书写wordcount

  8. 描述一种方式解决kafka到sparkStreaming的数据重复与数据丢失问题。

9描述一下kmnans算法原理。

10.jvm在gc时产生了oom你是如何解决的?

造数面试题

  1. 使用c语言实现一个stremp 函数

  2. 什么是堆和栈

  3. unix中进程间通信的方法有哪些

  4. 多进程和多线程有什么区别

  5. tcp和udp有什么区别

  6. cookie和session的区别

7.https比较http有什么优势,缺点

哇,真的太多了,整理这么久点个赞嘛!!
吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!_第2张图片

吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!_第3张图片

你可能感兴趣的:(大数据,面试,大数据)