大数据学长面试京东面试题
学长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-dv 10-4-jd-dv
5-7-pv-click 5-7-pv-click
36-24-pv-uv
37-24-pv-uv 37-24-pv-uv
24-3-uv-mq 24-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、limit C、rownum D、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 a.id=b.id
table_id
id
1
2
table_id
id
name
1
wzb
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的理解做过哪些优化
)算法部分**
(1)用Idea写快速排序
手写代码部分
(1)手写Spark WordCount
6)项目部分
(1)整个业务数据的流向
7)场景部分
(1)现有两张大表所有字段都得保留不能再过滤了join操作就发生OOM怎么解决
(2)Session日志分析如何求出用户访问的Page路径
(3)三表的join求销量,order——id的统计(记得不了)就是三表join求统计吧
学长5
1)一面
(1)HDFS、MR、Yarn的理解
(2)MR的WordCount简单描述
(3)Kafka快的原因,零拷贝的原理
(4)Redis的数据类型
(5)Kafka的isr队列
(6)Spark的运行模式,WordCount的简单描述
(7)基本上是简历的东西
2)二面
基本上和简历无关,问的算法,我不懂,没办法整理
5.6 学长6
1)京东数科二面
(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)你有什么想问我们的。