kafKa 安装
依赖于zookeeper环境,需要安装zookeeper
一、安装zookeeper
(2) 解压 zookeeper-3.4.6.tar.gz 到 /www/instl/zookeeper/zookeeper-3.4.6.tar.gz ,解压后文件为 /www/instl/zookeeper/zookeeper-3.4.6
(3)配置环境变量: vi /etc/profile
export ZK_HOME=/www/instl/zookeeper/zookeeper-3.4.6
export PATH=$PATH:$ZK_HOME/bin
|
配置生效 source
/etc/profile
(3)配置
/www/instl/zookeeper/
zookeeper-3.4.6/conf/zoo.cfg
dataDir=/www/instl/zookeeper/tmp/zookeeper
(4)启动服务:才到
(5)查看服务启动情况: jps 。显示如下则为启动成功
二、KafKa单节点单Broker的安装
(2)
tar
-xzf kafka_2.11-1.1.0.tgz 解压
到
/www/instl/kafka/kafka_2.11-0.9.0.0
(3)配置环境变量. vi /etc/profile
export KAFKA_HOME=/www/instl/kafka/kafka_2.11-0.9.0.0
export PATH=$PATH:$KAFKA_HOME/bin
|
生效: source /etc/profile
(4)启动ZooKeeper服务器(Kafka使用ZooKeeper,因此如果还没有ZooKeeper服务器,需要首先启动ZooKeeper服务器。)
(5)配置文件中的关注点 $KAFKA_HOME/config/server.properties
#消息存放的地址ID
broker.id=0
listeners=PLAINTEXT://hadoop000:9092
#日志记录存放的文件。一定要修改
log.dirs=/www/instl/kafka/tmp/kafka-logs
#主机名
host.name=hadoop000
#zookeeper 的服务地址
zookeeper.connect=
hadoop000:2181
|
(6)
启动Kafka服务器: kafka-server-start.sh $KAFKA_HOME/config/server.properties
(7)创建一个主题
例如用一个分区和一个副本创建一个名为“test”的主题
kafka-topics
.sh --create --zookeeper
hadoop000
:2181 --replication-factor 1 --partitions 1 --topic
test
(8)查看主题
kafka-topics
.sh --list --zookeeper hadoop000:2181
(9)生产者发送消息
Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。
运行生产者,然后在控制台中输入几条消息发送到服务器。
kafka-console-producer.sh --broker-list hadoop000:9092 --topic test
如发送:
This is a message
This is another message
(10)启动消费者(与生产者不为同一个终端)
Kafka
也有一个命令行消费者,将消息转储到标准输出。
--from-beginning
该参数可以读取生产者生产的所有消息
kafka-console-consumer
.sh
--zookeeper
hadoop000
:2181
--topic
test
--from-beginning
如接收将会显示:
This is a message
This is another message
|
三、
kafka单节点多Broker的安装
假如要创造3个Broker点的KafKa实例,所以只需要在上面单节点单Broker步骤基础上再配置两个Broker即可:
(1)首先我们为每个节点创建一个配置文件(使用该
copy
命令):
cp
config
/server
.properties config
/server-1
.properties
cp
config
/server
.properties config
/server-2
.properties
|
(2)
编辑这些新配置文件并设置下列属性:
文件:config/server-1.properties | 文件:config/server-2.properties |
broker.id=1
listeners=PLAINTEXT://hadoop000:9093
log.dir=/www/instl/kafka/tmp/kafka-logs-1
|
broker.id=2
listeners=PLAINTEXT://hadoop000:9094
log.dir=/www/instl/kafka/tmp/kafka-logs-2
|
该broker.id属性是集群中每个节点的唯一且永久的名称。我们必须重写端口和日志目录,因为我们在同一台机器上运行这些端口和日志目录,并且我们希望让所有代理都试图在同一个端口上注册或覆盖彼此的数据。
(3)启动KafKa
因为已经有Zookeeper和我们的单节点了,所以在此基础上可以进行扩展,只需要启动两个新节点,使用以下命令:
>
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties &
>
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties &
|
(4)
现在创建一个复本系数为3的新的topic:
kafka-topics
.sh --create --zookeeper hadoop000:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
(5)查看主题属性
kafka-topics
.sh --describe --zookeeper hadoop000:2181 --topic my-replicated-topic
输出解释。第一行给出了所有分区的摘要,每个附加行提供了有关一个分区的信息。由于我们只有一个分区,所以只有一行。
- “Leader”是负责给定分区的所有读写操作的节点。每个节点将成为分区随机选择部分的领导者(这里Leader节点为0节点,只有一个Leader)。
- “Replicas”是复本节点列表,无论他们是领导者还是他们现在都活着(这里复本节点列表为0,2,1)。
- “Isr”这是存活的节点列表
(6)
生产者发送消息
kafka-console-producer.sh --broker-list hadoop000:9092
hadoop000
:
9093,
hadoop000:9094
--topic
my-replicated-topic
如发送:
This is a message
This is another message
(7)启动消费者(与生产者不为同一个终端)
Kafka
也有一个命令行消费者,将消息转储到标准输出。
--from-beginning
该参数可以读取生产者生产的所有消息
kafka-console-consumer
.sh
--zookeeper
hadoop000
:2181
--topic my-replicated-topic
--from-beginning
如接收将会显示:
This is a message
This is another message
|