全国服务热线:400-035-8011

位置:南宁优就业IT培训学校 > 学校动态 > 大数据常见问题解析

大数据常见问题解析

来源:南宁优就业IT培训学校时间:2021/4/1 13:47:43

  afka一直都是大数据面试题的考试点。因此,小编整理了有关kafka知识点的大数据面试题,主要针对kafka的定义、与传统消息系统的区别、kafka集群的安装与搭建问题,并附上了参考答案。需要梳理kafka知识点的同学可以看看。

  大数据kafka常见面试题

南宁优就业IT培训学校

  1、什么是kafka?
  Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
  Kafka初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
  Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来增加系统可用性
  2、kafka与传统消息系统的区别
  (1)在架构<http://lib.csdn.net/base/architecture>模型方面
  RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制。
  kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据;无消息确认机制。
  (2)在吞吐量
  kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。
  rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。
  (3)在可用性方面
  rabbitMQ支持miror的queue,主queue失效,miror queue接管。kafka的broker支持主备模式。
  (4)在集群负载均衡方面
  kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上。
  (5)kafka与activeMQ的区别
  Topic:主题,即一个标识,类似于map里面的key,通过它来给消息分类,消息根据Topic进行归类。
  共同点:都有生产者和消费者两大组件,生产者发送消息给各自的服务器,
  (发送消息是就会定义一个topic)并进行存储。不同点:
  activeMQ:消费者会提前订阅自己需要的topic,当该topic中有了消息以后,activeMQ服务器会发送消息给消费者,然后消费者再去服务器中拿到自己想要的数据。
  Kafka:消费者(指定topic)会定时去kafka服务器中拿该topic中的数据。
  (6)kafka的组件介绍
  producer:生产者,主要用于我们的消息的生产,通过producer将我们的消息push到kafka集群当中
  topic:某一类消息的高度抽象,可以理解成某一类消息的集合,一类消息,每个topic将被分成多个partition(区),在集群的配置文件中配置。broker:kafka的服务器,一个broker就代表一个服务器的节点partition:分区的概念,一个topic当中的消息,可以拆分成多个partition分区,存放在多个不同的服务器上,实现数据存放的横向扩展。
  repliaction:副本,所有的partition都可以指定存放几个副本,做到数据的冗余,增加数据的安全
  segment:每个partiiton由多个segment组成,segment又包含了两部分,一个.log文件,一个是.index文件
  .log:存放我们的日志文件,所有的数据,后都以日志文件的形式存放到了kafka集群当中
  .index:索引文件,所有的.log文件的索引都存放在了这里,便于我们查找某一条日志文件的
  consumer:消费者,消费我们kafka集群当中的消息,问题:如何知道消费者消费到了哪一条消息来了???可以通过记录的方式,记下来每次我们消费的位置。
  种记录方式:kafka的本地文件系统,比较慢,对应kafka的一个慢速消费的方式
  第二种记录方式:zookeeper当中的节点数据记录,比较快,对应kafka的一个消费的方式
  offset:偏移量,就是记录的我们消费到了哪一条数据来了。
  发布者发到某个topic的消息会被均匀的分布到多个part上,broker收到发布消息往对应part的后一个segment上添加该消息。
  3、kafka集群的安装与搭建
  步:下载上传压缩包
  第二步:解压
  第三步:安装包的分发第
  四步:修改配置文件
  台服务器修改配置文件
  第二台服务器修改配置文件第三台服务器修改配置文件第四步:三台服务器的启动三台服务器的启动
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3175/news/340941/违者必究! 以上就是南宁优就业IT培训学校 小编为您整理 大数据常见问题解析的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011