文章目录
1.基本信息
- 版本2.11-0.9.0.0
- 安装机器 三台机器
- 账号hadoop
- 源路径/opt/software/kafka_2.11-0.9.0.0.tgz
- 目标路径/opt/kafka -> /opt/kafka_2.11-0.9.0.0
- 依赖关系zookeeper
2.安装过程
1).使用hadoop账户,通过tar -zxvf命令将kafka-${version}.tar.gz解压缩至目的安装目录,并设置软连接。
[root@test opt]# su hadoop
[hadoop@test opt]$ cd /opt/software
[hadoop@test software]$ tar -xf kafka-${version}.tgz -C /opt
[hadoop@test opt]$ sudo ln -s /opt/kafka_${version}/ /opt/kafka
2).修改server.properties配置文件。
[hadoop@test software]$ cd /opt/kafka/config
[hadoop@test config]$ vim server.properties
在server.properties文件中添加如下配置:
broker.id=1
log.retention.hours=1
zookeeper.connect=172.24.5.173:2181,172.24.5.174:2181,172.24.5.175:2181/kafka
host.name=test
3).创建logs目录:
[hadoop@test config]$ mkdir /opt/kafka/logs$
4).配置kafka运行的环境变量。
[hadoop@test config]$ vim /etc/profile
添加下面的内容:
export KAFKA_HOME=/opt/kafka
export PATH=$KAFKA_HOME/bin:$PATH
配置成功后,执行source /etc/profile使配置生效。
[hadoop@test config]$ source /etc/profile
5).将安装包从test服务器复制到test2,test3两台机器,并配置环境变量:
[hadoop@test config]$ scp -r /opt/kafka_${version}/ hadoop@test2:/opt
[root@test2 opt]# su hadoop
[hadoop@test2 opt]$ cd /opt
[hadoop@test2 opt]$ ln -s /opt/kafka_${version} /opt/kafka
[hadoop@test config]$ scp -r /opt/kafka_${version}/ hadoop@test3:/opt
[hadoop@test3 opt]$ cd /opt
[hadoop@test3 opt]$ ln -s /opt/kafka_${version} /opt/kafka
并修改server.properties配置文件中broker.id(test2为2,test2为3),host.name(test2为test2,test3为test3)
[hadoop@test2 config]$ vim server.properties
修改以下内容
broker.id=2
host.name=test2
[hadoop@test3 config]$ vim server.properties
修改以下内容
broker.id=3
host.name=test3
6).在三台机器上分别执行Kafka启动命令:
[hadoop@test config]$ nohup kafka-server-start.sh $KAFKA_HOME/config/server.properties &
查看服务是否开启成功
[hadoop@test config]$ ps -ef | grep kafka
如果进程存在,则表示Kafka已经启动
7).测试Kafka的生产者和消费者:
[hadoop@test config]$ kafka-topics.sh --create --zookeeper test:2181,test2:2181,test3:2181/kafka --replication-factor 2 --partitions 1 --topic test
注意:复制指令的时候不能多或者少空格,否则会报错,不易察觉。
查看topics列表
[hadoop@test config]$ kafka-topics.sh --list --zookeeper test:2181,test2:2181,test3:2181/kafka
如果发现存在 ${topicName} 自定义的test名称则表示创建成功
在test上启动生产者producer(${topicName}为自定义的test的名称。并且随意输入任意条信息,如:this is comment
[hadoop@test config]$ kafka-console-producer.sh --broker-list 172.24.5.173:9092,172.24.5.174:9092,172.24.5.175:9092 --topic test
重新打开终端在test上启动消费者
[hadoop@test config]$ kafka-console-consumer.sh --zookeeper ${producer_ip}:2181/kafka --topic test --from-beginning
在消费者机器上观察是否能接收到此信息,若接收到说明成功