美文网首页大数据学习交流大数据程序员
面试了10为大数据开发者,总结了几道常见面试题

面试了10为大数据开发者,总结了几道常见面试题

作者: 风火数据 | 来源:发表于2018-05-06 09:04 被阅读173次

    前言

    金三银四,金三已经过去,到了银四,根据统计,很多人都会选择在三月四月跳槽,原因有很多,企业年后会有大量员工离职,员工觉得老公司待遇不怎么样?薪资不够高,想换个新环境等等原因,所以,三月份就变成了招聘与跳槽的旺季

    前面一段时间给公司面试了10个大数据开发的人,自己总结了50道面试题,在此,我分享给大家,希望大家在五月份要找工作的朋友,我的这篇文章能给你有所帮助。

    大纲

    kafka的message包括哪些信息

    怎么查看kafka的offset

    一、Map端的shuffle

    二、Reduce端的shuffle

    spark集群运算的模式

    读:

    1、跟namenode通信查询元数据,找到文件块所在的datanode服务器

    2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流

    3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)

    4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件

    写:

    1、根namenode通信请求上传文件,namenode检查目标文件是否已存在,父目录是否存在

    2、namenode返回是否可以上传

    3、client请求第一个 block该传输到哪些datanode服务器上

    4、namenode返回3个datanode服务器ABC

    5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完成,逐级返回客户端

    6、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答

    7、当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。

    RDD中reduceBykey与groupByKey哪个性能好,为什么

    reduceByKey:reduceByKey会在结果发送至reducer之前会对每个mapper在本地进行merge,有点类似于在MapReduce中的combiner。这样做的好处在于,在map端进行一次reduce之后,数据量会大幅度减小,从而减小传输,保证reduce端能够更快的进行结果计算。

    groupByKey:groupByKey会对每一个RDD中的value值进行聚合形成一个序列(Iterator),此操作发生在reduce端,所以势必会将所有的数据通过网络进行传输,造成不必要的浪费。同时如果数据量十分大,可能还会造成OutOfMemoryError。

    通过以上对比可以发现在进行大量数据的reduce操作时候建议使用reduceByKey。不仅可以提高速度,还是可以防止使用groupByKey造成的内存溢出问题。

    spark sql怎么取数据的差集

    spark2.0的了解

    rdd 怎么分区宽依赖和窄依赖

    spark streaming 读取kafka数据的两种方式

    这两种方式分别是:

    kafka的数据存在内存还是磁盘

    怎么解决kafka的数据丢失

    答案


    由于答案太多,我做了一个word文档,由于简书不能上传文件,需要答案可以加小编的qq交流群710219868,邀请码风火在里面直接获取文档,也欢迎招聘者,找工作的来,提供一个更大的平台


    相关文章

      网友评论

      本文标题:面试了10为大数据开发者,总结了几道常见面试题

      本文链接:https://www.haomeiwen.com/subject/nomyrftx.html