kafka面试题简答

22 篇文章 0 订阅

1. kafka分区数如何设置?

默认情况下
1 指定分区,按你指定的分区
2 未指定分区,但是指定了key,依据key的hashCode计算分区
3 未指定分区,且没有指定key,依据轮询算法计算分区

2. kafka中消息传输一致中的最多一次、最少一次、恰好一次,是如何实现的?

恰好一次:acks=-1 ,幂等机制
最多一次:acks=0
最少一次:acks=-1 or acks=1

3. Spark Steaming拉取数据,如何实现恰好一次?

4. Spark为什么比Hadoop快?(不止是基于内存,需扩充)

1 hadoop每次shuffle操作后,数据必须写到磁盘. spark则不然,可以保存在内存中.
2 hadoop每次都要走MR流程,Spark则可以将shuffle结果缓存到内存中
3spark task启动时间快

1.消除了冗余的HDFS读写 Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存中,以便迭代时使用。如果操作复杂,很多的shufle操作,那么Hadoop的读写IO时间会大大增加。

2.消除了冗余的MapReduce阶段 Hadoop的shuffle操作一定连着完整的MapReduce操作,冗余繁琐。而Spark基于RDD提供了丰富的算子操作,且reduce操作产生shuffle数据,可以缓存在内存中。

3.JVM的优化 Spark Task的启动时间快。Spark采用fork线程的方式,Spark每次MapReduce操作是基于线程池的,只在启动时创建。而Hadoop采用创建新的进程的方式,启动一个Task便会启动一次JVM。

5. kafka为什么会发生数据丢失?

ack=0
生产者发送消息到leader后,就继续发送其他的消息,不需要等待leader的ack
缺点是数据可能丢失

ack=1
生产者发送消息到leader后,leader会将消息落地到磁盘,然后就向生产者发送ack
缺点是
数据可能丢失(leader落地了,并ack,但是follwer还未同步,数据不全)

6. Kafka数据丢失了如何解决?

为了保证数据不丢失,可以设置acks=-1.

7. Kafka与zookeeper选举机制间的区别?

8. Kafka的组成?

Producer:生产消息
Consumer:消费信息
Broker: 缓存消息
Zookeeper: 选举controller

9. kafka为什么快?

  • 写文件快,顺序存储
  • 读文件快,零拷贝

10. 监控kafka的文件?

常用的kafka监控工具有 KafkaOffsetMonitor 、Kafka Manager、Capillary、Kafka Eagle,经过测试,最后决定使用Kafka Manager

11. kafka的数据积压如何解决?

1 增加消费者数量,同时提高topic的分区数
2 提高每次poll的数据量,默认500,可以调大

12. Spark Streaming读取kafka数据的方式?

13. kafka的ISR列表

ISR表示存活的副本,存活的意思是

  • 和zookeeper保持连接
  • 副本的最后一条消息的offset与leader副本的最后一条消息的offset插件不超过某个指定值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值