kafka基本概念
1.1 Kafka的介绍
Apache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
就像是一个放鸡蛋的篮子。生产者生产鸡蛋放到篮子中,消费者从篮子中消费鸡蛋。
1.2Kafka的优势
它是分布式系统,易于向外扩展。
它同时为发布和订阅提供高吞吐量。
它支持多订阅者,当失败时能自动平衡消费者。
它将消息持久化到磁盘,因此可用于批量消费,允许多个消费者消费数据。
1.3 Kafka的角色
术语 | 解释 |
Broker | 安装了kafka的节点 |
Topic | 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处),发送消息必须有主题。 |
Partition | Partition是物理上的概念,每个Topic包含一个或多个Partition. |
Producer | 负责发布消息到Kafka broker |
Consumer | 消息消费者,向Kafka broker读取消息的客户端 |
Consumer Group | 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group) 当consumer去消费数据的时候,会有一个偏移量(offset),一个分区的数据,一个consumer只能消费一次。 |
replica | partition 的副本,保障 partition 的高可用 |
leader | replica 中的一个角色, producer 和 consumer 只跟 leader 交互 |
follower | replica 中的一个角色,从 leader 中复制数据,数据备份,如果leader挂掉,顶替leader的工作 |
controller | Kafka 集群中的其中一个服务器,用来进行 leader election 以及各种 failover |
1.4 Kafka的特性
(1)高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。
(2)可扩展性:kafka集群支持热扩展。
(3)持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。
(4)容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)。
(5)高并发:支持数千个客户端同时读写。
1.5 kafka的安装
1.5.1 将压缩包上传到虚拟机的/opt/software/目录下
15.2 解压并重命名为kafka
进到kafka的config目录下修改server.peoperties文件
修改如下:
将kafka文件分发给02 和03 虚拟机
注意需要修改02he03虚拟机的broker.id
02虚拟机改成1 ,03虚拟机改成2
1.6 以后台守护进程启动:
kafka-server-start.sh -daemon /opt/software/kafka/config/server.properties
查看进程
1.7 配置kafka一键启动
注意需要将修改kafka.sh与自己的路径一致
验证一键启动
可以看到可以成功启动
二 虚拟机安装saprk
1 上传压缩包并解压,解压以后将名字修改为saprk-yarn
2 修改/opt/software/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml目录下的配置文件
3 先将spark-yarn/conf/下的spark-env.sh.template重命名为spark-yarn,然后修改配置文件
在spark-env.sh尾部追加如下
启动如下
打开浏览器查看li01:8088
4 配置历史服务器
先将spark-defaults.conf.template 重命名为 spark-defaults.conf,修改 spark-default.conf配置 文件
5 在spark-env.sh文件添加如下
启动历史服务器
可以看到已经成功启动
浏览器搜索li01:18080