【一】kafka安装及基本使用

一、概述

kafka是一个分布式的流处理平台。它通常用于构建实时的数据管道,以及实时流处理。能够横向扩展,有容错机制,高速运行在生产上。

特性:

发布&订阅:像消息系统一样读写流数据。

处理:数据流能够高效的被处理,接近实时。

存储:数据流能够安全的在进行分布式中多副本的存储。

kafka架构:

producer:生产者

consumer:消费者

broker:存储容器。生产者生产数据放到broker中,消费者从broker中消费。

topic:主题。

kafka集群可以运行在一个或者多个服务器上。它能存储以topic分门别类的数据流记录。每一个记录由key    value timestamp组成。

二、安装

下载:

http://kafka.apache.org/downloads

1.单节点单broker的部署及使用

解压

tar -zxvf kafka_2.11-0.9.0.0.tgz

修改文件名称

mv kafka_2.11-0.9.0.0 kafka

配置环境变量

vi ~/.bashrc

export KAFKA_HOME=/app/kafka

export PATH=:$PATH:$KAFKA_HOME/bin

使配置文件生效

source ~/.bashrc

创建目录

mkdir /app/kafka/logs

修改配置文件

cd /app/kafka/config

vi server.properties

broker.id=0    每台机器的broker.id不能一样,这是唯一标识。同一台机器多个broker的ID也不能一样。

host.name=node1    指定当前机器IP

log.dirs=/app/kafka/logs    队列中消息存放的地方,多个看引用逗号隔开

zookeeper.connect=node1:2181,node2:2181,node3:2181    指明zookeeper集群所在的机器的IP和对应的端口

启动

bin/kafka-server-start.sh config/server.properties

后台启动

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

创建topic

bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 1 --topic test_topic

查看当前zookeeper上有多少个topic

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

发送消息

bin/kafka-console-producer.sh --broker-list node1:9092 --topic test_topic

9092是server.properties中配置的监听端口

消费消息

bin/kafka-console-consumer.sh --zookeeper node1:2181 --topic test_topic --from-beginning

--from-beginning的使用表示从头开始消费,新开一个控制台启动消费程序,会消费到以前的数据。

如果不要这个参数,指挥接收这个消费程序启动以后生产者发送的数据。

查看所有topic的详细信息

bin/kafka-topics.sh --describe --zookeeper node1:2181 

查看指定topic的详细信息

bin/kafka-topics.sh --describe --zookeeper node1:2181 --topic test_topic

2.单节点多broker的部署及使用

一个server.properties对应一个Broker。拷贝出3个server.properties

cd /app/kafka/config

cp server.properties server-1.properties

cp server.properties server-2.properties

cp server.properties server-3.properties

mkdir /app/kafka/logs-1

mkdir /app/kafka/logs-2

mkdir /app/kafka/logs-3

vi server-1.properties

broker.id=1    

listeners=PLAINTEXT://:9093

log.dirs=/app/kafka/logs-1

vi server-2.properties

broker.id=2    

listeners=PLAINTEXT://:9094

log.dirs=/app/kafka/logs-2

vi server-3.properties

broker.id=3    

listeners=PLAINTEXT://:9095

log.dirs=/app/kafka/logs-3

启动

bin/kafka-server-start.sh -daemon config/server-1.properties &

bin/kafka-server-start.sh -daemon config/server-2.properties &

bin/kafka-server-start.sh -daemon config/server-3.properties &

查看jps -m

创建topice,有3个副本

bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 3 --partitions 1 --topic test_3replication_topic

查看当前zookeeper上有多少个topic

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

查看topic

leader:3表示id为3的broker是主

replicas表示副本存在哪些broker上

isr表示哪些broker是活着的

发送消息

bin/kafka-console-producer.sh --broker-list node1:9093, node1:9094,node1:9095 --topic test_3replication_topic

消费消息

bin/kafka-console-consumer.sh --zookeeper node1:2181 --topic test_3replication_topic --from-beginning

3.kafka集群安装+zk 

zk集群安装:https://blog.csdn.net/jy02268879/article/details/80615189

每台机器都下载解压安装包kafka_2.12-2.0.0.tgz。

每台机器部署一个broker

每台机器都创建日志目录mkdir /app/kafka/kafka_2.12-2.0.0/logs

每台机器都创建数据目录mkdir /app/kafka/data

每台机器都修改配置文件vi /app/kafka/kafka_2.12-2.0.0/config/server.properties

broker.id=0 注意这里每台机器不一样,这是唯一标识    

log.dirs=/app/kafka/data

zookeeper.connect=172.20.10.8:2181,172.20.10.11:2181,172.20.10.10:2181 这里填的是ZK集群的地址

每台机器都启动一下

cd /app/kafka/kafka_2.12-2.0.0/bin

kafka-server-start.sh -daemon ../config/server.properties &

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值