Spark面试题2024(spark面试题及答案100道)

Spark面试题2024(spark面试题及答案100道)数据 试题以及答案整理 kafka 的 message 包括哪些信息 个 Kafka 的 Message 由 个固定长度的 header 和 个变长的消息体 body 组成 header 部分由 个字节的 magic 件格式 和四个字节的 CRC32 于判断 body 消息体是否正常 构成 当 magic 的值为 1 的时候 会在 magic 和 crc32 之间多 个字节的数据 attributes 保存 些相关属性

大家好,我是讯享网,很高兴认识大家。



⼤数据⾯试题以及答案整理(⼀)

kafka的message包括哪些信息

⼀个Kafka的Message由⼀个固定长度的header和⼀个变长的消息体body组成

header部分由⼀个字节的magic(⽂件格式)和四个字节的CRC32(⽤于判断body消息体是否正常)构成。当magic的值为1的时候,会在magic

和crc32之间多⼀个字节的数据:attributes(保存⼀些相关属性,⽐如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes

属性

body是由N个字节构成的⼀个消息体,包含了具体的key/value消息

怎么查看kafka的offset

0.9版本以上,可以⽤最新的Consumerclient客户端,有consumer.seekToEnd()/consumer.position()可以⽤于得到当前最新的offset:

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上。

spark集群运算的模式

Spark有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运⾏在集群中,⽬前能很好的运⾏在Yarn和Mesos

中,当然Spark还有⾃带的Standalone模式,对于⼤多数情况Standalone模式就⾜够了,如果企业已经有Yarn或者Mesos环境,也是

很⽅便部署的。

standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark⽀持ZooKeeper来实现HA

onyarn(集群模式):运⾏在yarn资源管理器框架之上,由yarn负责资源管理,Spark负责任务调度和计算

onmesos(集群模式):运⾏在mesos资源管理器框架之上,由mesos负责资源管理,Spark负责任务调度和计算

oncloud(集群模式):⽐如AWS的EC2,使⽤这个模式能很⽅便的访问Amazon的S3;Spark⽀持多种分布式存储系统:HDFS和S3

HDFS读写数据的过程

读:

1、跟namenode通信查询元数

小讯
上一篇 2025-04-25 16:33
下一篇 2025-06-10 09:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/162285.html