加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

BAT大数据的口试题 快保藏!

发布时间:2018-09-12 14:04:44 所属栏目:教程 来源:千锋大数据开发学院
导读:9月15日技能沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖切磋精准运维! 1、kafka的message包罗哪些信息 一个Kafka的Message由一个牢靠长度的header和一个变长的动静体body构成 header部门由一个字节的magic(文件名目)和四个字节的CRC32(用于判定body
副问题[/!--empirenews.page--] 9月15日技能沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖切磋精准运维!

BAT大数据的口试题 快保藏!

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

4、spark集群运算的模式

Spark 有许多种模式,最简朴就是单机当地模式,尚有单机伪漫衍式模式,伟大的则运行在集群中,今朝能很好的运行在 Yarn和 Mesos 中,虽然 Spark 尚有自带的 Standalone 模式,对付大大都环境 Standalone 模式就足够了,假如企业已经有 Yarn 可能 Mesos 情形,也是很利便陈设的。

  • standalone(集群模式):典范的Mater/slave模式,不外也能看出Master是有单点妨碍的;Spark支持ZooKeeper来实现 HA
  • on yarn(集群模式): 运行在 yarn 资源打点器框架之上,由 yarn 认真资源打点,Spark 认真使命调治和计较
  • on mesos(集群模式): 运行在 mesos 资源打点器框架之上,由 mesos 认真资源打点,Spark 认真使命调治和计较
  • on cloud(集群模式):好比 AWS 的 EC2,行使这个模式能很利便的会见 Amazon的 S3;Spark 支持多种漫衍式存储体系:HDFS 和 S3

5、HDFS读写数据的进程

读:

  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的处事器。

6、RDD中reduceBykey与groupByKey哪本机能好,为什么

  • reduceByKey:reduceByKey会在功效发送至reducer之前会对每个mapper在当地举办merge,有点相同于在MapReduce中的combiner。这样做的甜头在于,在map端举办一次reduce之后,数据量会大幅度减小,从而减小传输,担保reduce端可以或许更快的举办功效计较。
  • groupByKey:groupByKey会对每一个RDD中的value值举办聚合形成一个序列(Iterator),此操纵产生在reduce端,以是势必会将全部的数据通过收集举办传输,造成不须要的挥霍。同时假如数据量异常大,也许还会造成OutOfMemoryError。

通过以上比拟可以发此刻举办大量数据的reduce操纵时辰提议行使reduceByKey。不只可以进步速率,照旧可以防备行使groupByKey造成的内存溢出题目。

7、spark2.0的相识

  • 更简朴:ANSI SQL与更公道的API
  • 速率更快:用Spark作为编译器
  • 更智能:Structured Streaming

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读