黑马程序员技术交流社区

标题: 大数据面试经验分享——西安宏源视讯 [打印本页]

作者: 就业高冷派    时间: 2018-11-23 14:10
标题: 大数据面试经验分享——西安宏源视讯
本帖最后由 就业高冷派 于 2018-11-23 14:26 编辑

公司名称:西安宏源视讯设备有限责任公司
公司经营:视频、图形、图像的处理、控制、组合显示及传输等相关视讯产品的研发、生产和系统工程服务(http://www.hyvideo.com
注册规模:50-150人
公司地址:西安市高新区科技二路66号宏源大厦
公司图片:
人事小姐姐先进来聊了几句,大概内容无非就是了解一下性格呀,就普通聊天,也问到上家公司的一些情况,涉及到业务内容的都简单带过,有问到离职原因,这个自己可以结合自己的情况说一个。
人事简单聊完,等了一会来了一个技术组长,有问到一些问题,简单整理如下:

1.简单说一下hadoop和spark的shuffle相同和差异?
1)从 high-level 的角度来看,两者并没有大的差别。 都是将 mapper(Spark 里是 ShuffleMapTask)的输出进行 partition,不同的 partition 送到不同的 reducer(Spark 里 reducer 可能是下一个 stage 里的 ShuffleMapTask,也可能是 ResultTask)。Reducer 以内存作缓冲区,边 shuffle 边 aggregate 数据,等到数据 aggregate 好以后进行 reduce() (Spark 里可能是后续的一系列操作)。
2)从 low-level 的角度来看,两者差别不小。 Hadoop MapReduce 是 sort-based,进入 combine() 和 reduce() 的 records 必须先 sort。这样的好处在于 combine/reduce() 可以处理大规模的数据,因为其输入数据可以通过外排得到(mapper 对每段数据先做排序,reducer 的 shuffle 对排好序的每段数据做归并)。目前的 Spark 默认选择的是 hash-based,通常使用 HashMap 来对 shuffle 来的数据进行 aggregate,不会对数据进行提前排序。如果用户需要经过排序的数据,那么需要自己调用类似 sortByKey() 的操作;如果你是Spark 1.1的用户,可以将spark.shuffle.manager设置为sort,则会对数据进行排序。在Spark 1.2中,sort将作为默认的Shuffle实现。
3)从实现角度来看,两者也有不少差别。 Hadoop MapReduce 将处理流程划分出明显的几个阶段:map(), spill, merge, shuffle, sort, reduce() 等。每个阶段各司其职,可以按照过程式的编程思想来逐一实现每个阶段的功能。在 Spark 中,没有这样功能明确的阶段,只有不同的 stage 和一系列的 transformation(),所以 spill, merge, aggregate 等操作需要蕴含在 transformation() 中。
如果我们将 map 端划分数据、持久化数据的过程称为 shuffle write,而将 reducer 读入数据、aggregate 数据的过程称为 shuffle read。那么在 Spark 中,问题就变为怎么在 job 的逻辑或者物理执行图中加入 shuffle write 和 shuffle read 的处理逻辑?以及两个处理逻辑应该怎么高效实现?
Shuffle write由于不要求数据有序,shuffle write 的任务很简单:将数据 partition 好,并持久化。之所以要持久化,一方面是要减少内存存储空间压力,另一方面也是为了 fault-tolerance。

2.RDD机制?
rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。
所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。
rdd执行过程中会形成dag图,然后形成lineage保证容错性等。 从物理的角度来看rdd存储的是block和node之间的映射。

3.spark有哪些组件?
主要有如下组件:
1)master:管理集群和节点,不参与计算。
2)worker:计算节点,进程本身不参与计算,和master汇报。
3)Driver:运行程序的main方法,创建spark context对象。
4)spark context:控制整个application的生命周期,包括dagsheduler和task scheduler等组件。
5)client:用户提交程序的入口。

4.如何在一个不确定的数据规模的范围内进行排序?
为了提高效率,要划分划分,划分的范围并且是有序的
要么有序,要么降序?
水塘抽样:目的是从一个集合中选取,集合非常答,适合内存
无法容纳数据的时候使用
从N中抽取出K个,N是随机数

5.介绍parition和block有什么关联关系?
1)hdfs中的block是分布式存储的最小单元,等分,可设置冗余,这样设计有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的内容;2)Spark中的partion是弹性分布式数据集RDD的最小单元,RDD是由分布在各个节点上的partion组成的。partion是指的spark在计算过程中,生成的数据在计算空间内最小单元,同一份数据(RDD)的partion大小不一,数量不定,是根据application里的算子和最初读入的数据分块数量决定;3)block位于存储空间、partion位于计算空间,block的大小是固定的、partion大小是不固定的,是从2个不同的角度去看数据。

6.有可能使hadoop任务输出到多个目录中么?如果可以,怎么做?
在1.X版本后使用MultipleOutputs.java类实现
源码:
MultipleOutputs.addNamedOutput(conf, "text2", TextOutputFormat.class, Long.class, String.class);
MultipleOutputs.addNamedOutput(conf, "text3", TextOutputFormat.class, Long.class, String.class);
参考:http://my.oschina.net/leejun2005/blog/94706
发音:Multiple['m?lt?pl]--》许多的

7.如果没有定义partitioner,那么数据在被送达reducer前是如何被分区的?
Partitioner是在map函数执行context.write()时被调用。
用户可以通过实现自定义的?Partitioner来控制哪个key被分配给哪个?Reducer。
查看源码知道:
如果没有定义partitioner,那么会走默认的分区Hashpartitioner









作者: kdhdjdj    时间: 2019-2-19 10:27
6666666666666666666
作者: duanshaobo    时间: 2019-2-19 10:34
提起那宋老三,两口子卖大烟
作者: 从容微笑    时间: 2019-2-19 10:38
辛苦啦
作者: 淡写薰衣草的香    时间: 2019-2-19 10:41


作者: 小公举    时间: 2019-2-19 10:46

作者: 仙人掌sandy    时间: 2019-2-19 10:46

作者: 淡写薰衣草的香    时间: 2019-2-19 10:47

作者: ouweina    时间: 2019-2-19 11:00

作者: zhanghua342    时间: 2019-2-19 11:07
感谢分享
作者: 专找bug    时间: 2019-2-19 11:10

感谢分享
作者: 你不爱我    时间: 2019-2-19 13:08
黑马666666666666
作者: 小伙啊    时间: 2019-2-19 13:22
666666
作者: yy1134787753    时间: 2019-2-19 13:26
感谢分享
作者: 1098018910    时间: 2019-2-19 13:55
新年最后一波礼物!
作者: yangyifen    时间: 2019-2-19 13:55
666666666666666666666666
作者: 章鱼顶呱呱    时间: 2019-2-19 14:10
66666666666666666666666666666
作者: 李娟玲老师    时间: 2019-2-19 14:11
666666666666666666666666
作者: ruoquan    时间: 2019-2-19 14:14
厉害啊,点赞。。。。

作者: 疯子小花花    时间: 2019-2-19 14:17
6666666666666
作者: 二郎显圣真君    时间: 2019-2-19 14:18
66666666666666666666666666666
作者: zhuyanting    时间: 2019-2-19 14:20
太实用了,支持支持支持
作者: 温柔一刀!喵!    时间: 2019-2-19 14:20

作者: 多喝点热水~    时间: 2019-2-19 14:22
                                    
作者: 760486198    时间: 2019-2-19 14:23
新年最后一波礼物!
作者: 致橡树    时间: 2019-2-19 14:30
666666666666666666666666666666
作者: 半个程序员    时间: 2019-2-19 14:43
相聚是缘,且行且珍惜
作者: 独上兰舟    时间: 2019-2-19 14:52
66666666666666666666
作者: 举个栗子    时间: 2019-2-19 15:07
666666666666666666666
作者: 兮兮哈哈    时间: 2019-2-19 15:36
哈哈哈哈哈哈哈哈哈哈
作者: 零度☆黎明    时间: 2019-2-19 18:08
66666666666666666666666666666666666666666666666666
作者: fujiangbo    时间: 2019-2-19 18:14
666666666666666666666
作者: 殷凯老师    时间: 2019-2-19 18:16
66666666666666666666
作者: little_superman    时间: 2019-2-19 20:21
666666666666666666
作者: 18629541359    时间: 2019-2-19 21:10
很不错,谢谢分享!
作者: JavaEE风清扬    时间: 2019-2-19 21:48
不错不错加油.............
作者: 耙丫丫    时间: 2019-2-19 22:30

作者: JavaEE风清扬    时间: 2019-2-19 22:57
谢谢楼主,辛苦了...........
作者: superbaby    时间: 2019-2-19 23:03
棒棒哒 ..................... ..................
作者: 谢先森    时间: 2019-2-19 23:27
666666666666666666666
作者: yujq    时间: 2019-2-20 00:02

作者: zplxwl    时间: 2019-2-20 00:15
66666666666666666666
作者: 黑马程序员啊    时间: 2019-2-20 10:56
八千里路的云与月,全部在阅读中走进了我心灵的深处
作者: #风萧萧#    时间: 2019-2-20 11:57
八千里路的云与月,全部在阅读中走进了我心灵的深处
作者: jsnoob    时间: 2019-2-20 12:07
就需要这种干货!!
作者: 梅优良    时间: 2019-2-20 13:19

作者: py@py    时间: 2019-2-20 13:23
感谢分享
作者: SunYan    时间: 2019-2-20 13:41
作者棒棒哒
作者: 茶包哥    时间: 2019-2-20 14:11
学习到很多
作者: zhaosongzhi    时间: 2019-2-20 14:27
学习到很多
作者: 大智叔叔    时间: 2019-2-20 14:51
值得收藏!!!
作者: 竹竹竹竹    时间: 2019-2-20 16:27

作者: 小西西哦    时间: 2019-2-20 17:09
66666666666666666666666666666666666666666666
作者: jsnoob    时间: 2019-2-20 18:10

作者: json0314    时间: 2019-2-20 21:49
谢谢楼主,辛苦了...........
作者: mydorling11    时间: 2019-2-20 22:59
好好好。。。好好好。。。好好好。。。
作者: 哦嗨呦    时间: 2019-2-21 09:41
顶 !!!!!!!!!!!!!
作者: daoqin    时间: 2019-2-21 11:44
学习到很多
作者: zhaosongzhi    时间: 2019-2-21 12:10
感谢分享
作者: xiaoheizi    时间: 2019-2-21 13:02
66666666666666666666666666
作者: 小丹子    时间: 2019-2-21 15:24
辛苦辛苦!!!!!!
作者: 凯凯小王子    时间: 2019-2-21 15:43


棒棒哒,加油~
作者: SharkSSB    时间: 2019-2-21 16:38
学习到很多
作者: 同心筑梦1    时间: 2019-2-22 12:54
6666666666666666666666666
作者: 就业高冷派    时间: 2019-2-26 10:33
kdhdjdj 发表于 2019-2-19 10:27
6666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:33
duanshaobo 发表于 2019-2-19 10:34
提起那宋老三,两口子卖大烟

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:33
从容微笑 发表于 2019-2-19 10:38
辛苦啦

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:33
淡写薰衣草的香 发表于 2019-2-19 10:41

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:33
小公举 发表于 2019-2-19 10:46

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
仙人掌sandy 发表于 2019-2-19 10:46

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
淡写薰衣草的香 发表于 2019-2-19 10:47

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
ouweina 发表于 2019-2-19 11:00

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
zhanghua342 发表于 2019-2-19 11:07
感谢分享

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
专找bug 发表于 2019-2-19 11:10
感谢分享

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
你不爱我 发表于 2019-2-19 13:08
黑马666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
小伙啊 发表于 2019-2-19 13:22
666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
yy1134787753 发表于 2019-2-19 13:26
感谢分享

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:34
1098018910 发表于 2019-2-19 13:55
新年最后一波礼物!

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
yangyifen 发表于 2019-2-19 13:55
666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
章鱼顶呱呱 发表于 2019-2-19 14:10
66666666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
李娟玲老师 发表于 2019-2-19 14:11
666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
ruoquan 发表于 2019-2-19 14:14
厉害啊,点赞。。。。

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
疯子小花花 发表于 2019-2-19 14:17
6666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
二郎显圣真君 发表于 2019-2-19 14:18
66666666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
zhuyanting 发表于 2019-2-19 14:20
太实用了,支持支持支持

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:35
温柔一刀!喵! 发表于 2019-2-19 14:20

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
多喝点热水~ 发表于 2019-2-19 14:22

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
1467584 发表于 2019-2-19 14:23

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
760486198 发表于 2019-2-19 14:23
新年最后一波礼物!

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
致橡树 发表于 2019-2-19 14:30
666666666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
半个程序员 发表于 2019-2-19 14:43
相聚是缘,且行且珍惜

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:36
独上兰舟 发表于 2019-2-19 14:52
66666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:37
举个栗子 发表于 2019-2-19 15:07
666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:37
兮兮哈哈 发表于 2019-2-19 15:36
哈哈哈哈哈哈哈哈哈哈

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:37
零度☆黎明 发表于 2019-2-19 18:08
66666666666666666666666666666666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:37
fujiangbo 发表于 2019-2-19 18:14
666666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:37
殷凯老师 发表于 2019-2-19 18:16
66666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:38
little_superman 发表于 2019-2-19 20:21
666666666666666666

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:38
18629541359 发表于 2019-2-19 21:10
很不错,谢谢分享!

继续努力,加油~
作者: 就业高冷派    时间: 2019-2-26 10:38
JavaEE风清扬 发表于 2019-2-19 21:48
不错不错加油.............

继续努力,加油~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2