加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (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

行使Kafka的高条理Consumer API来实现。receiver从Kafka中获取的数据都存储在Spark Executor的内存中,然后Spark Streaming启动的job会行止理赏罚那些数据。然而,在默认的设置下,这种方法也许会由于底层的失败而丢失数据。假如要启用高靠得住机制,让数据零丢失,就必需启用Spark Streaming的预写日记机制(Write Ahead Log,WAL)。该机制会同步地将吸取到的Kafka数据写入漫衍式文件体系(好比HDFS)上的预写日记中。以是,纵然底层节点呈现了失败,也可以行使预写日记中的数据举办规复。

Direct

Spark1.3中引入Direct方法,用来更换掉行使Receiver吸取数据,这种方法会周期性地查询Kafka,得到每个topic+partition的最新的offset,从而界说每个batch的offset的范畴。当处理赏罚数据的job启动时,就会行使Kafka的简朴consumer api来获取Kafka指定offset范畴的数据。

10、kafka的数据存在内存照旧磁盘

Kafka最焦点的头脑是行使磁盘,而不是行使内存,也许全部人城市以为,内存的速率必然比磁盘快,我也不破例。在看了Kafka的计划头脑,查阅了响应资料再加上本身的测试后,发明磁盘的次序读写速率和内存持平。

并且Linux对付磁盘的读写优化也较量多,包罗read-ahead和write-behind,磁盘缓存等。假如在内存做这些操纵的时辰,一个是JAVA工具的内存开销很大,另一个是跟着堆内存数据的增多,JAVA的GC时刻会变得很长,行使磁盘操纵有以下几个甜头:

  • 磁盘缓存由Linux体系维护,镌汰了措施员的不少事变。
  • 磁盘次序读写速率高出内存随机读写。
  • JVM的GC服从低,内存占用大。行使磁盘可以停止这一题目。
  • 体系冷启动后,磁盘缓存依然可用。

11、怎么办理kafka的数据丢失

producer端:

宏观上看担保数据的靠得住安详性,必定是依据分区数做好数据备份,设立副本数。

broker端:

topic配置多分区,分区自顺应地址呆板,为了让各分区匀称漫衍在地址的broker中,分区数要大于broker数。

分区是kafka举办并行读写的单元,是晋升kafka速率的要害。

Consumer端

consumer端丢失动静的气象较量简朴:假如在动静处理赏罚完成前就提交了offset,那么就有也许造成数据的丢失。因为Kafka consumer默认是自动提交位移的,以是在靠山提交位移前必然要担保动静被正常处理赏罚了,因此不提议回收很重的处理赏罚逻辑,假如处理赏罚耗时很长,则提议把逻辑放到另一个线程中去做。为了停止数据丢失,现给出两点提议:

  • enable.auto.commit=false 封锁自动提交位移
  • 在动静被完备处理赏罚之后再手动提交位移

12、fsimage和edit的区别?

  • 各人都知道namenode与secondary namenode 的相关,当他们要举办数据同步时叫做checkpoint时就用到了fsimage与edit,fsimage是生涯最新的元数据的信息,当fsimage数据到必然的巨细事会去天生一个新的文件来生涯元数据的信息,这个新的文件就是edit,edit会回滚最新的数据。

13、罗列几个设置文件优化?

1)Core-site.xml 文件的优化

  • a、fs.trash.interval,默认值: 0;声名: 这个是开启hdfs文件删除自动转移到垃圾箱的选项,值为垃圾箱文件破除时刻。一样平常开启这个会较量好,以防错误删除重要文件。单元是分钟。
  • b、dfs.namenode.handler.count,默认值:10;声名:hadoop体系里启动的使命线程数,这里改为40,同样可以实行该值巨细对服从的影响变革举办最吻合的值的设定。
  • c、mapreduce.tasktracker.http.threads,默认值:40;声名:map和reduce是通过http举办数据传输的,这个是配置传输的并行线程数。

14、datanode 初次插手 cluster 的时辰,假如 log 陈诉不兼容文件版本,那必要namenode 执行名目化操纵,这样处理赏罚的缘故起因是?

  • 1)这样处理赏罚是不公道的,由于那么 namenode 名目化操纵,是对文件体系举办名目化,namenode 名目化时清空 dfs/name 下空两个目次下的全部文件,之后,会在目次 dfs.name.dir 下建设文件。
  • 2)文本不兼容,有也许时 namenode 与 datanode 的 数据里的 namespaceID、clusterID 纷歧致,找到两个 ID 位置,修改为一样即可办理。

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 是可以封锁的。

16、hadoop的优化?

  • 1)优化的思绪可以从设置文件和体系以及代码的计划思绪来优化
  • 2)设置文件的优化:调理恰当的参数,在调参数时要举办测试
  • 3)代码的优化:combiner的个数只管与reduce的个数沟通,数据的范例保持同等,可以镌汰拆包与封包的进度
  • 4)体系的优化:可以配置linux体系打开最大的文件数估量收集的带宽MTU的设置
  • 5)为 job 添加一个 Combiner,可以大大的镌汰shuffer阶段的maoTask拷贝过来给长途的 reduce task的数据量,一样平常而言combiner与reduce沟通。
  • 6)在开拓中只管行使stringBuffer而不是string,string的模式是read-only的,假如对它举办修改,会发生姑且的工具,二stringBuffer是可修改的,不会发生姑且工具。
  • 7)修改一下设置:以下是修改 mapred-site.xml 文件

(编辑:湖南网)

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

热点阅读