2018最新bat大数据面试题

2018最新bat大数据面试题

ID:19626954

大小:24.95 KB

页数:15页

时间:2018-10-04

2018最新bat大数据面试题_第1页
2018最新bat大数据面试题_第2页
2018最新bat大数据面试题_第3页
2018最新bat大数据面试题_第4页
2018最新bat大数据面试题_第5页
资源描述:

《2018最新bat大数据面试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、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的offset0.9版本

2、以上,可以用最新的Consumerclient客户端,有consumer.seekToEnd()/consumer.position()可以用于得到当前最新的offset:3、hadoop的shuffle过程一、Map端的shuffle  Map端会处理输入数据并产生中间结果,这个中间结果会写到本地磁盘,而不是HDFS。每个Map的输出会先写到内存缓冲区中,当写入的数据达到设定的阈值时,系统将会启动一个线程将缓冲区的数据写到磁盘,这个过程叫做spill。  在spill写入之前,会先进行二次排序,首先根据数据所属的partition进行排序,然后每个part

3、ition中的数据再按key来排序。partition的目是将记录划分到不同的Reducer上去,以期望能够达到负载均衡,以后的Reducer就会根据partition来读取自己对应的数据。接着运行combiner(如果设置了的话),combiner的本质也是一个Reducer,其目的是对将要写入到磁盘上的文件先进行一次处理,这样,写入到磁盘的数据量就会减少。最后将数据写到本地磁盘产生spill文件(spill文件保存在{mapred.local.dir}指定的目录中,Map任务结束后就会被删除)。  最后,每个Map任务可能产生多个spill文件,在每个M

4、ap任务完成前,会通过多路归并算法将这些spill文件归并成一个文件。至此,Map的shuffle过程就结束了。二、Reduce端的shuffle  Reduce端的shuffle主要包括三个阶段,copy、sort(merge)和reduce。  首先要将Map端产生的输出文件拷贝到Reduce端,但每个Reducer如何知道自己应该处理哪些数据呢?因为Map端进行partition的时候,实际上就相当于指定了每个Reducer要处理的数据(partition就对应了Reducer),所以Reducer在拷贝数据的时候只需拷贝与自己对应的partition

5、中的数据即可。每个Reducer会处理一个或者多个partition,但需要先将自己对应的partition中的数据从每个Map的输出结果中拷贝过来。  接下来就是sort阶段,也成为merge阶段,因为这个阶段的主要工作是执行了归并排序。从Map端拷贝到Reduce端的数据都是有序的,所以很适合归并排序。最终在Reduce端生成一个较大的文件作为Reduce的输入。  最后就是Reduce过程了,在这个过程中产生了最终的输出结果,并将其写到HDFS上。4、spark集群运算的模式Spark有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则

6、运行在集群中,目前能很好的运行在Yarn和Mesos中,当然Spark还有自带的Standalone模式,对于大多数情况Standalone模式就足够了,如果企业已经有Yarn或者Mesos环境,也是很方便部署的。standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现HAonyarn(集群模式):运行在yarn资源管理器框架之上,由yarn负责资源管理,Spark负责任务调度和计算onmesos(集群模式):运行在mesos资源管理器框架之上,由mesos负责资源管理

7、,Spark负责任务调度和计算oncloud(集群模式):比如AWS的EC2,使用这个模式能很方便的访问Amazon的S3;Spark支持多种分布式存储系统:HDFS和S35、HDFS读写数据的过程 读:1、跟namenode通信查询元数据,找到文件块所在的datanode服务器2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件 写:1、根namenode通信请求上传文件,n

8、amenode检查目标文件是否已存在,父目录是否存在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。