大数据组件-Kafka简介,术语,架构,安装搭建教程,kafka集群命令行操作

统一版本:
zk:
kafka:0.10.0.0
jdk:1.8

1.消息系统的分类

1.点对点

主要采用的队列的方式,如A->B 当B消费的队列中的数据,那么队列的数据就会被删除掉【如果B不消费那么就会存在队列中有很多的脏数据】

2.发布-订阅

发布与订阅主要三大组件
主题:一个消息的分类
发布者:将消息通过主动推送的方式推送给消息系统;
订阅者:可以采用拉、推的方式从消息系统中获取数据

2.kafka简介

apache kafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使能够将消息从一个端点传递到另一个端点,kafka适合离线和在线消息消费。kafka消息保留在磁盘上,并在集群内复制以防止数据丢失。kafka构建在zookeeper同步服务之上。它与apache和spark非常好的集成,应用于实时流式数据分析。

3.kafka四大核心

1.生产者API

允许应用程序发布记录流至一个或者多个kafka的主题(topics)。

2.消费者API

允许应用程序订阅一个或者多个主题,并处理这些主题接收到的记录流。

3.StreamsAPI

允许应用程序充当流处理器(stream processor),从一个或者多个主题获取输入流,并生产一个输出流到一个或 者多个主题,能够有效的变化输入流为输出流。

4.ConnectorAPI

允许构建和运行可重用的生产者或者消费者,能够把kafka主题连接到现有的应用程序或数据系统。例如:一个连 接到关系数据库的连接器可能会获取每个表的变化。

4.Kafka的术语

Broker:一台服务器就一个Broker,两台服务器就是两个Broker
Topic:每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic
Partition:Partition分区是一个物理上的概念,每个Topic包含一个或者多个Partition
Producer:就是一个消息的生产者
Consumer:消息的消费者,向kafka的broker中读取消息的客户端
Consumer Group:每一个Consumer消费者属于一个特定的Consumer Group消费组

5.Kafka架构图

在这里插入图片描述

  • 面试题:如果kafka消费速度过慢怎么办?
    调整topic中的分区个数,把partition个数调大一些
    因为这个partition数量决定了每个Consumer group中并发消费者的最大数量

6.Kafka集群环境搭建

1.集群规划

ip地址节点

2.初始化环境

jdk:1.8
zookeeper:
jdk,zookeeeper安装搭建教程

3.安装目录规划

安装包放置目录: /export/software
安装程序放置目录 /export/servers

三台机器统一执行命令进行创建

mkdir -p/exprot/servers
mkdir -p/export/servers

4.下载上传解压

  1. 下载
    kafka下载地址
  2. 上传
    使用shell的xftp进行上传,上传至/export/software
  3. 解压
 tar -zxvf kafka_2.11-0.10.0.0.tgz -C /export/servers/

5.修改配置文件

node01执行以下命令进入到kafka的配置文件目录,修改配置文件
在这里插入图片描述

  1. 修改以下内容
broker.id=0
log.dirs=/export/servers/kafka_2.11-0.10.0.0/logs
zookeeper.connect=node01:2181,node02:2181,node03:2181
  1. 在配置文件的结尾追加以下内容
delete.topic.enable=true  //表示允许删除topic
host.name=node01 //当前服务器主机名
  1. 创建一个kafka的数据存储文件名字叫logs
mkdir -p /export/servers/kafka_2.11-0.10.0.0/logs

6.安装包分发

cd /export/servers/
scp -r kafka_2.11-0.10.0.0/ node02:$PWD
scp -r kafka_2.11-0.10.0.0/ node03:$PWD

7.修改node02,node03的配置文件

broker.id=2
host.name=node02
broker.id=3
host.name=node03

8.kafka-前台启动

三台机器都输入以下命令

cd /export/servers/kafka_2.11-0.10.0.0
bin/kafka-server-start.sh config/server.properties 

9.kafka-后台启动

 nohup bin/kafka-server-start.sh config/server.properties 2>&1 &

在这里插入图片描述
所有日志都会输出到这个nohup.out这个文件夹中

7.kafka集群命令行操作

1.创建topic

创建了一个名字为test的主题, 有三个分区,有两个副本
node01执行以下命令来创建topic

cd /export/servers/kafka_2.11-0.10.0.0
bin/kafka-topics.sh --create --zookeeper node01:2181 --replication-factor 2 -- partitions 3 --topic test

2.查看topic

bin/kafka-topics.sh --list --zookeeper node01:2181

3.生产数据

模拟生产者来生产数据
node01服务器执行以下命令来模拟生产者进行生产数据

bin/kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic test

4.消费数据

bin/kafka-console-consumer.sh --from-beginning --topic test --zookeeper node01:2181,node02:2181,node03:2181

5.查看topic的描述信息

bin/kafka-topics.sh --describe --topic test --zookeeper node01:2181

6.修改topic属性

(1)增加top分区数

任意kafka服务器执行以下命令可以增加topic分区数

bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic test --partitions 8

(2)增加配置

刷新数据频率等于1

bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic test --config flush.messages=1

(3)删除配置

bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic test --delete-config flush.messages

(4)删除topic

bin/kafka-topics.sh --zookeeper node01:2181 --delete --topic test

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值