没有合适的资源?快使用搜索试试~ 我知道了~
首页2018最新BAT大数据面试题.docx
大数据这么火,但是从业人员也多啊,需要好好琢磨一下,充分准备。把这份题目分享出来,给面试的程序员参考用。就设为最低分值吧,大家拿去。 题目示例如下: 15、MapReduce 中排序发生在哪几个阶段?这些排序是否可以避免?为什么? 1)一个 MapReduce 作业由 Map 阶段和 Reduce 阶段两部分组成,这两阶段会对数据排序,从这个意义上说,MapReduce 框架本质就是一个 Distributed Sort。 2)在 Map 阶段,Map Task 会在本地磁盘输出一个按照 key 排序(采用的是快速排序)的文件(中间可能产生多个文件,但最终会合并成一个),在 Reduce 阶段,每个 Reduce Task 会对收到的数据排序,这样,数据便按照 Key 分成了若干组,之后以组为单位交给 reduce()处理。 3)很多人的误解在 Map 阶段,如果不使用 Combiner便不会排序,这是错误的,不管你用不用 Combiner,Map Task 均会对产生的数据排序(如果没有 Reduce Task,则不会排序,实际上 Map 阶段的排序就是为了减轻 Reduce端排序负载)。 4)由于这些排序是 MapReduce 自动完成的,用户无法控制,因此,在hadoop 1.x 中无法避免,也不可以关闭,但 hadoop2.x 是可以关闭的。
资源详情
资源评论
资源推荐

1、kafka 的 message 包括哪些信息
一个 的 由一个固定长度的 和一个变长的消息体 组成
部分由一个字节的 文件格式和四个字节的 用于判断 消息
体是否正常构成。当 的值为 的时候,会在 和 之间多一个字节的数
据:保存一些相关属性,比如是否压缩、压缩格式等等;如果 的值为
,那么不存在 属性
是由 个字节构成的一个消息体,包含了具体的 消息
2、怎么查看 kafka 的 oset
! 版本以上,可以用最新的 "#"#客户端,有 " $%"#
" &"#可以用于得到当前最新的 ':
3、hadoop 的 shue 过程
一、& 端的 (
& 端会处理输入数据并产生中间结果,这个中间结果会写到本地磁盘,而不是
)*+,。每个 & 的输出会先写到内存缓冲区中,当写入的数据达到设定的阈值时,系统
将会启动一个线程将缓冲区的数据写到磁盘,这个过程叫做 &。
在 & 写入之前,会先进行二次排序,首先根据数据所属的 &" 进行排序,然
后每个 &" 中的数据再按 来排序。&" 的目是将记录划分到不同的
上去,以期望能够达到负载均衡,以后的 就会根据 &" 来读取
自己对应的数据。接着运行 "如果设置了的话," 的本质也是一个
,其目的是对将要写入到磁盘上的文件先进行一次处理,这样,写入到磁盘的数
据量就会减少。最后将数据写到本地磁盘产生 & 文件& 文件保存在
-& .指定的目录中,& 任务结束后就会被删除。
最后,每个 & 任务可能产生多个 & 文件,在每个 & 任务完成前,会通过多路
归并算法将这些 & 文件归并成一个文件。至此,& 的 ( 过程就结束了。
二、 端的 (
端的 ( 主要包括三个阶段,&、和 。
首先要将 & 端产生的输出文件拷贝到 端,但每个 如何知道自己
应该处理哪些数据呢?因为 & 端进行 &" 的时候,实际上就相当于指定了每个
要处理的数据&" 就对应了 ,所以 在拷贝数据的时候
只需拷贝与自己对应的 &" 中的数据即可。每个 会处理一个或者多个
&",但需要先将自己对应的 &" 中的数据从每个 & 的输出结果中拷贝过来。
接下来就是 阶段,也成为 阶段,因为这个阶段的主要工作是执行了归并
排序。从 & 端拷贝到 端的数据都是有序的,所以很适合归并排序。最终在
端生成一个较大的文件作为 的输入。
最后就是 过程了,在这个过程中产生了最终的输出结果,并将其写到 )*+,
上。











安全验证
文档复制为VIP权益,开通VIP直接复制

评论0