常见面试题①

常见面试题①

  • 1、kafka中zookeeper中只存储Broker id和消费者offsets偏移量,但不存在生产者信息

  • 2、kafka压力测试一般都是IO先出现瓶颈

  • 3、kafka消息堆压,消费者无法处理怎么办

    • ① 通过增加Topic和消费者数量来解决
    • ② 通过增大每次的拉去数据量,生成速度远远大于拉取速度也会导致数据的堆压
  • 4、kafka过期数据的清理方式:

    • ① 策略一:delete删除策略
    • ② 策略二:compact压缩策略(配置)
  • 5、kafka中的数据是有序的吗?

    • 单分区内有序
    • 多分区,分区与分区之间无序
  • 6、kafka多种选举机制:

    • 1、broker选举:kafka可以是多个或一个broker,故从选取一个broker控制器,选举是通过zookeeper内创建一个临时节点,之后便有次Broker管理分区和副本等状态,包括副本leader的选举,更新ISR集合的元数据信息
    • 2、分区leader选举:选举是由控制器来实行,(创建分区/分区上线)先查找第一个存活的副本,并且这个副本再ISR队列中。
    • 3、GruopCoordinator选举:小组协调员的选举是为了使得消费组均匀分配,通过找到分区leader副本所在的节点,此节点则作为小组协调员节点,消费组分区分配方案或消费组唯一信息都将汇报到此节点
    • 4、消费组Leader的选举:通过消费者组协调员进行选举,在小组内进行选组,很简单直接谁现进组那么谁就是leader

  • 7、HBase与Hive

    • 首先在应用场景方面:Hive与HBase是一个协作的角色,比如海量数据的随机查询,先由Hive对数据进行ETL后交给HBase进行数据查询
    • 功能方面:Hive是一个基于MapReduce的将非结构化数据转换成二维表的提供简单的HQL计算的架构是Hadoop的数据仓库。HBase则是一个列式存储的数据库主要适用于海量数据的随机查询

  • 8、Spark的groupByKey 和reduceByKey之间的区别?

(1)ReducByKey再Map端时会对数据进行combine,再Map端先进行一次聚合会使得reduce端压力大大降低,如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DOshVOaP-1644974808434)(kafka基础面试题.assets/image-20220216090752433.png)]

(2)当采用groupByKey时,由于它不接收函数,spark只能先将所有的键值对(key-value pair)都移动,这样的后果是集群节点之间的开销很大,导致传输延时。整个过程如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F8L6dOLO-1644974808435)(kafka基础面试题.assets/image-20220216091751071.png)]

因此,在对大数据进行复杂计算时,reduceByKey优于groupByKey。比如实际应用中,比如用groupByKey对用数据进行计算(数据量30亿条数据),可能需要1个小时,甚至内存溢出,运行失败,但是换成reduceByKey只需要十几分钟。

另外,如果仅仅是group处理,那么以下函数应该优先于 groupByKey :
  (1)、combineByKey 组合数据,但是组合之后的数据类型与输入时值的类型不一样。
  (2)、foldByKey合并每一个 key 的所有值,在级联函数和“零值”中使用。

wordCountsWithReduce和wordCountsWithGroup与上一样


  • 9、为什么惰性价加载
    • 即为了划分stage,stage内部都是窄依赖,提高并行度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每日小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值