【Spark Streaming】2、Kafka入门

分布式消息队列Kafka

Kafka概述

Apache Kafka®是一个分布式流平台。

流平台具有三个关键功能:

  1. 发布和订阅记录流,类似于消息队列或企业消息传递系统。
  2. 以容错的持久方式存储记录流
  3. 处理流

Kafka常用于两种应用程序:

  1. 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据
  2. 构建实时流应用程序以转换或响应数据流

Kafka平台搭建

Kafka是采用scala语言开发,如kafka_2.11-0.9.0.0说明kafka版本是0.9.0.0,采用scala2.11开发

下载对应版本kafka,这里下载的是0.9.0.0,解压开,配置环境变量

export KAFKA_HOME=/home/hadoop/app/kafka_2.11-0.9.0.0
export PATH=$KAFKA_HOME/bin:$PATH

修改$Kafka_HOME/config/server.properties文件

## 修改broker.id 这个id要唯一
broker.id=0
listerers的端口号(如果是要配单机单broker 不需要修改端口号)
host.name(建议不要用localhost,如host.name=hadoop000)
log.dirs(默认存放在tmp目录下,需要修改,比如log.dirs=/home/hadoop/app/tmp/kafka-logs)
zookeeper.connect(默认是localhost:2181,可根据情况改为需要的地址如hadoop000:2181)

Kafka的启动需要依赖Zookeeper,因此前置条件是安装配置Zookeeper,因此Kafka启动前要保证Zookeeper启动

这里假设Zookeeper已经启动,接下来要启动Kafka了

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

创建topic

./bin/kafka-topics.sh --create --zookeeper hadoop000:2181 --topic test

查看所有创建的topic

./bin/kafka-topic.sh --list --zookeeper hadoop000:2181

查看具体的topic信息(不添加–topic 查看所有topic信息)

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

Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0

其中Replicas表示集群的数量 Isr表示集群中存活kafka实例的数量

使用kafka收发消息

### 启动生产者 向test消息队列发送消息
./kafka-console-producer.sh --broker-list hadoop000:9092 --topic test
## 启动消费者 消费test消息队列的消息
kafka-console-consumer.sh --bootstrap-server hadoop000:9092 --topic test --zookeeper hadoop000:2181 --from-beginning

注意:这里–from-beginning 表示每次启动消费者 就会把之前的消息重新消费一遍。要根据实际情况 选择是否需要带该属性

集群模式配置kafka

相较于单节点的配置,只需要把配置文件拷贝下,修改broker.id、listeners、log.dirs

zookeeper的配置不用改

## server-1.properties
...
 broker.id=1
 listeners=PLAINTEXT://:9093
 log.dirs=/home/kafka-logs-1
...
## server-2.properties
...
 broker.id=2
 listeners=PLAINTEXT://:9094
 log.dirs=/home/kafka-logs-2
...

启动时,分别启动(静默启动)

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

创建一个topic 并查看在集群中的情况

./kafka-topics.sh --create --zookeeper hadoop000:2181 --replication-factor 2 --partitions 1 --topic test2
./kafka-topics.sh --describe --zookeeper hadoop000:2181 --topic test2

Topic:test2 PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test2 Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2

可以看出Replicas: 1,2 Isr: 1,2 表示集群成功

发布了116 篇原创文章 · 获赞 23 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zyxwvuuvwxyz/article/details/104015301