没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
19页
大数据工作面试练习题 2018最新BAT大数据面试题 Hadoop、kafka、HDFS、Spark、MapReduce 【内容大纲-共25道题目】 1、kafka的message包括哪些信息? 3 2、怎么查看kafka的offset? 3 3、hadoop的shuffle过程是? 3 4、spark集群运算的模式? 5 5、HDFS读写数据的过程? 5 6、RDD中reduceBykey与groupByKey哪个性能好,为什么 6 7、spark2.0的了解 7 8、rdd怎么分区宽依赖和窄依赖 7 9、spark streaming 读取kafka数据的两种方式 8 10、kafka的数据存在内存还是磁盘 8 11、怎么解决kafka的数据丢失 9 12、fsimage和edit的区别? 10 13、列举几个配置文件优化? 10 14、datanode首次加入 cluster 的时候,如果 log 报告不兼容文件版本,那需要namenode 执行格式化操作,这样处理的原因是? 11 15、MapReduce 中排序发生在哪几个阶段?这些排序是否可以避免?为什么? 11
资源推荐
资源详情
资源评论
2018 最新 BAT 大数据面试题
目录
2018 最新 BAT 大数据面试题 ............................................................................. 1
1、kafka 的 message 包括哪些信息? ................................................................ 3
2、怎么查看 kafka 的 offset? ............................................................................. 3
3、hadoop 的 shuffle 过程是? ............................................................................ 3
4、spark 集群运算的模式? ................................................................................ 5
5、HDFS 读写数据的过程? .............................................................................. 5
6、RDD 中 reduceBykey 与 groupByKey 哪个性能好,为什么 ...................... 6
7、spark2.0 的了解 ............................................................................................... 7
8、rdd 怎么分区宽依赖和窄依赖 ....................................................................... 7
9、spark streaming 读取 kafka 数据的两种方式 ............................................... 8
10、kafka 的数据存在内存还是磁盘 .................................................................. 8
11、怎么解决 kafka 的数据丢失 ......................................................................... 9
12、fsimage 和 edit 的区别? ............................................................................ 10
13、列举几个配置文件优化?.......................................................................... 10
14、datanode 首次加入 cluster 的时候,如果 log 报告不兼容文件版本,那
需要 namenode 执行格式化操作,这样处理的原因是? ...................................... 11
15、MapReduce 中排序发生在哪几个阶段?这些排序是否可以避免?为什
么?.............................................................................................................................. 11
16、hadoop 的优化? ......................................................................................... 12
17、设计题.......................................................................................................... 14
18、有 10 个文件,每个文件 1G,每个文件的每一行存放的都是用户的
query,每个文件的 query 都可能重复。要求你按照 query 的频度排序。 还是典
型的 TOP K 算法, .................................................................................................. 15
19、在 2.5 亿个整数中找出不重复的整数,注,内存不足以容纳这 2.5 亿
个整数。...................................................................................................................... 16
20、腾讯面试题:给 40 亿个不重复的 unsigned int 的整数,没排过序的,然
后再给一个数,如何快速判断这个数是否在那 40 亿个数当中?........................ 16
21、怎么在海量数据中找出重复次数最多的一个?...................................... 18
22、上千万或上亿数据(有重复),统计其中出现次数最多的钱 N 个数据。
...................................................................................................................................... 18
23、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出
现的前 10 个词,给出思想,给出时间复杂度分析。............................................ 18
24、100w 个数中找出最大的 100 个数。 ........................................................ 19
25、有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。
请用 5 分钟时间,找出重复出现最多的前 10 条。................................................ 19
1、kafka 的 message 包括哪些信息?
一个 Kafka 的 Message 由一个固定长度的 header 和一个变长的消息体 body
组成
header 部分由一个字节的 magic(文件格式)和四个字节的 CRC32(用于判断
body 消息体是否正常)构成。当 magic 的值为 1 的时候,会在 magic 和 crc32 之
间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等
等);如果 magic 的值为 0,那么不存在 attributes 属性
body 是由 N 个字节构成的一个消息体,包含了具体的 key/value 消息
2、怎么查看 kafka 的 offset?
0.9 版本以上,可以用最新的 Consumer client 客户端,有 consumer.seekToEnd()
/ consumer.position() 可以用于得到当前最新的 offset
3、hadoop 的 shuffle 过程是?
一、Map 端的 shuffle
Map 端会处理输入数据并产生中间结果,这个中间结果会写到本地磁盘,而
不是 HDFS。每个 Map 的输出会先写到内存缓冲区中,当写入的数据达到设定
的阈值时,系统将会启动一个线程将缓冲区的数据写到磁盘,这个过程叫做 spill。
在 spill 写入之前,会先进行二次排序,首先根据数据所属的 partition 进行
排序,然后每个 partition 中的数据再按 key 来排序。partition 的目是将记录划分
到不同的 Reducer 上去,以期望能够达到负载均衡,以后的 Reducer 就会根据
partition 来读取自己对应的数据。接着运行 combiner(如果设置了的话),combiner
的本质也是一个 Reducer,其目的是对将要写入到磁盘上的文件先进行一次处理,
这样,写入到磁盘的数据量就会减少。最后将数据写到本地磁盘产生 spill 文件
(spill 文件保存在{mapred.local.dir}指定的目录中,Map 任务结束后就会被删除)。
最后,每个 Map 任务可能产生多个 spill 文件,在每个 Map 任务完成前,会
通过多路归并算法将这些 spill 文件归并成一个文件。至此,Map 的 shuffle 过程
就结束了。
二、Reduce 端的 shuffle
Reduce 端的 shuffle 主要包括三个阶段,copy、sort(merge)和 reduce。
首先要将 Map 端产生的输出文件拷贝到 Reduce 端,但每个 Reducer 如何知
道自己应该处理哪些数据呢?因为 Map 端进行 partition 的时候,实际上就相当
于指定了每个 Reducer 要处理的数据(partition 就对应了 Reducer),所以 Reducer
在拷贝数据的时候只需拷贝与自己对应的 partition 中的数据即可。每个 Reducer
会处理一个或者多个 partition,但需要先将自己对应的 partition 中的数据从每个
Map 的输出结果中拷贝过来。
接下来就是 sort 阶段,也成为 merge 阶段,因为这个阶段的主要工作是执行
了归并排序。从 Map 端拷贝到 Reduce 端的数据都是有序的,所以很适合归并排
序。最终在 Reduce 端生成一个较大的文件作为 Reduce 的输入。
最后就是 Reduce 过程了,在这个过程中产生了最终的输出结果,并将其写
到 HDFS 上。
剩余18页未读,继续阅读
资源评论
passionSnail
- 粉丝: 407
- 资源: 5624
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功