大数据面试葵花宝典之Kafka入门

大数据面试------Kafka入门

一、什么是Apache kafka?

答:Apache Kafka是一个发布-订阅开源消息代理应用程序,这个消息传递应用程序是用“scala”编码的。
基本上,这个项目是由Apache软件启动的。kafka的设计模式主要基于事务日志设计。
由Scala和Java编写的基于zookeeper协调的分布式流处理平台,
常见可以用于web日志、访问日志,消息服务等等

二、Kafka中有哪几个组件?

答:Kafka最重要的元素是:Topic、Producer、Consumer、Brokers
主题:Kafka主题是一堆或一组消息。生产者:在kafka生产者发布通信以及向kafka主题发布消息。
消费者:kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。
经纪人:在管理主题中的消息存储时,我们使用Kafak Brokers。

三、解释偏移的作用?

答:给分区中的消息提供了一个顺序ID号,我们称之为偏移量。因此,为了唯一的识别分区中的每条消息,
我们使用这些偏移量。

四、什么时消费者组和生产者?

答:消费者组的概念是Apache Kafka独有的。基本上,每个Kafka消费群体都由一个或多个共同消费一组订
阅主题的消费者组成。
生产者的主要作用是将数据发送到选择的主题上。基本上,他的职责是选择要分配给主题内分区的记录

五、Kafka主要功能可以用一下三句话概括?

答:1、生产者发送消息给Kafka服务器
2、消费者从kafka服务器读取消息
3、Kafka服务器依托zookeeper集群进行服务的协调管理

六、kafka常见的术语解释,方便读者理解kafka中的术语!

答:1、broker:中文:经纪人,代理人。理解:broker是表示kafka服务器;
2、message:消息,使用紧凑的二进制字节数据来保存消息,节省内存空间和传输效率;
3、topic:主题,代表了一类消息;
4、partition:分区,kafka采用topic-partition-message的三级结构来分散负载;
5、offset:位移,分区下每条消息都被分配一个位移值,表示消息在分区中的位置;
需要注意到是消息者也有位移的概念;
6、replica:副本,备份多份日志,防止数据丢失
7、leader和follower:领导者和追随者,通常leader对外提供服务,
follower只是被动地追随leader的状态,保持与leader的同步,
充当leader的候补,以便leader挂掉后被选举成新的leader接替它的工作;
8、ISR:表示与leader replia保持同步到replica集合
9、producers (生产者)consumer (消费者)

七、Kafka的使用案例

答:1、 安装kafka(启动之前首先安装JDK8)
2、启动zookeeper(zookeeper是为kafka提供协调服务的工具)
./zookeeper-server-start.sh (使用端口2181)
3、启动kafka服务器:./kafka-server-start.sh (服务端口9092)
4、kafka 查看所有的topic主题
bin/kafka-topics.sh --zookeeper master:2181 --list
5、创建Topic 主题
bin/kafka-topics.sh --zookeeper master:2181 --create --replication-factor 3 --partitions 1 --topic dahua
6、生产数据: producer
bin/kafka-console-producer.sh --broker-list master:9092 --topic dahua

bin/kafka-console-producer.sh --broker-list master:9092 --topic second
7、开启消费者
bin/kafka-console-consumer.sh --zookeeper master:2181 --from-beginning --topic dahua

bin/kafka-console-consumer.sh --zookeeper master:2181 --from-beginning --topic first
8、查看Topic的详情
bin/kafka-topics.sh --zookeeper master:2181 --describe --topic dahua

八、Kafka使用场景?

答:kafka以消息引擎闻名,他特别适合处理生产环境中的那些流式数据!
应用场景:
1、消息传输:kafka具备高吞吐量,高可靠性和高容错性,
特别适合于实现一个超大量级的消息处理应用
2、网站行为日志追踪:最早就是用于重建用户行为数据追踪系统的
kafka超级的吞吐量特性正好满足网站点击流数据量庞大的问题
3、审计数据收集:对多路消息进行实时收集,消息持久化方便后续离线审计
4、日志收集:kafka最常见的使用方式–日志收集汇总解决方案
使用kafka对日志进行全量收集,并集中送往分布式存储中(HDFS)
比主流的日志收集框架(Flume)具备更好的性能及可靠性
5、Event Sourcing:用不可变更的消息序列来抽象化表示业务消息
6、流式处理:全新的流式处理组件kafka streams

九、Flume和Kafka的区别?

答:同样是流式数据采集框架
flume一般用于日志采集,可以定制很多数据源,减少开发量,基本架构是一个flume进程agent
(source、拦截器、选择器、channel、sink),其中传递的是原子性的event数据;
使用双层Flume架构可以实现一层数据采集,一层数据集合;
kafka一般用于日志缓存,是一个可持久的分布式消息队列,自带存储,提供push和pull两种存储
功能数据功能;包括producer、kafkaCluster(broker、topic、partition)、consumer、依赖于Zookeeper
(brokerid、topic、partition元数据存在ZNode,partition选举leader依赖Zookeeper)
区别一:
flume和kafka的侧重点不同
flume追求的是数据和数据源,数据流向的多样性,适合对个生产者的场景;flume有自己内置的多种source
和sink组件,具体操作方式是编写source,channel和sink的.conf配置文件,开启flume组件的时候用命令
关联读取配置文件实现;
kafka追求的是高吞吐,高负载,同一topic下可以有多个partition,由于是pull模式拉取数据,
因此适合多个消费者的场景; kafka没有内置的produncer和consumer组件,需自己编写
区别二:
定位不同:
flume适合多个生产者
flume适合生产和消费数据、适合数据安全性要求不高的操作(数据没有备份,没有副本)、Hadoop生态圈对接的操作
kafka适合多个消费者
kafka适合数据安全性要求较高的操作,支持replication(多副本)、适合消费数据、kafka从磁盘读,并且只读Leader读
工作流程:
线上数据–>flume–>kafka–>HDFS–>hive/MR计算–>SparkStreaming计算

十、Kafka中的Broker是干什么的?

答:broker是消息的代理,Producers往Brokers里面指定Topic中写消息,Consumer从Brokers里面拉取指定Topic的消息,
然后进行业务处理,broker在中间起到一个代理保存消息的中转站。

十一、kafka系统工具有哪些?

答:1、Kafka迁移工具:它有助于将代理从一个版本迁移到另一个版本
2、Mirror Maker:有助于将一个kafka集群额镜像提供给另一个
3、消费者检查:对于指定的主题集和消费者组,它显示主题,分区,所有者

十二、kafka为什么快?

答:1、Cache Filesystem Cache PageCache缓存
2、顺序写 由于现代操作系统提供了预读和写技术,磁盘的顺序大多数情况下比随机写内存要快
3、Zero-copy 零拷技术减少拷贝次数
4、Pull拉模式,使用拉模式进行消息的获取消费,与消费端处理能力相符

十三、kafka的优点有哪些?

答:1、高吞吐量:我们在kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据,此外
他还可以支持每秒数千条消息的消息吞吐量
2、低延迟:Kafka可以轻松处理这些消息,具有毫秒级的极低延迟。
3、容错:kafka能够抵抗集群中的节点、机器故障
4、耐久性:由于kafka支持消息复制,因此消息永远不会丢失。
5、可扩展性:kafka可以扩展,而不需要通过添加额外的节点而在运行中造成任何停机

十四、kafka的缺点有哪些?

答:1、由于批量发送,数据并非真正的实时
2、对于mqtt协议不支持
3、不支持物联网传感数据直接接入
4、仅支持一分区内消息有序,无法实现全局消息有序
5、监控不完善,需要安装插件
6、依赖zookeeper进行元数据管理

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值