首先准备三台机器,我准备的机器是
192.168.198.146 | hadoop-master |
192.168.198.149 | hadoop-slave1 |
192.168.198.150 | hadoop-slave2 |
三台机器的主机名,系统是centos7.5 安装的kafka_2.11-0.11.0.0版本
安装kafka首先要准备
jdk的环境
zookeeper环境
如何搭建zookeeper可以查看我以前的文章
首先要准备好机器准备好环境,关闭firewalld 关闭selinux
1.下载kafka
wget http://mirror.bit.edu.cn/apache/kafka/2.1.1/kafka_2.11-2.1.1.tgz
然后解压到自己的目录
我的目录 /usr/local/src
tar -xzf kafka_2.11-2.1.1.tgz -C /usr/local/src
.然后编辑配置文件
vim /usr/local/src/kafka_2.11-0.11.0.0/config/server.properties
只需要更改里边的几项其余的默认即可
broker.id=1
listeners=PLAINTEXT://192.168.198.146:9092
zookeeper.connect=192.168.198.146:2181,192.168.198.149:2181,192.168.198.150:2181
第二台机器上更改为
broker.id=2
listeners=PLAINTEXT://192.168.198.149:9092
zookeeper.connect=192.168.198.146:2181,192.168.198.149:2181,192.168.198.150:2181
第三个机器上的更改为
broker.id=3
listeners=PLAINTEXT://192.168.198.150:9092
zookeeper.connect=192.168.198.146:2181,192.168.198.149:2181,192.168.198.150:2181
就改了这几项,也可以根据自己的需要更改你需要的
启动之前确定zk集群是跑起来的,然后再启动kafka
启动kafka的路径是
[root@hadoop-slave1 ~]# /usr/local/src/kafka_2.11-0.11.0.0/bin/kafka-server-start.sh -daemon /usr/local/src/kafka_2.11-0.11.0.0/config/server.properties
每个机器上执行一遍
ps aux | grep kafka
查看进程是否成功启动
-daemon的意思就是让它在后台运行
然后怎样测试搭建的kafka是否成功呢,当然是创建一个简单的topic 然后给其中传入值,然后在别的机器上查看是否有结果如果有,说明成功
具体操作如下首先要建一个topic
[root@hadoop-master ~]# /usr/local/src/kafka_2.11-0.11.0.0/bin/kafka-topics.sh --create -zookeeper 192.168.198.146:2181 -replication-factor 3 -partitions 3 -topic test
如果有返回值如图
如图一样的返回值证明创建成功,可以通过命令进行查看
[root@hadoop-master ~]# /usr/local/src/kafka_2.11-0.11.0.0/bin/kafka-topics.sh --list --zookeeper 192.168.198.149:2181
如图
然后在一台机器上执行这句话
[root@hadoop-slave1 ~]# /usr/local/src/kafka_2.11-0.11.0.0/bin/kafka-console-producer.sh --broker-list 192.168.198.149:9092 --topic test
执行完是卡住的有个箭头你要输入字符回车
如图
然后重新打开一台机器输入
[root@hadoop-slave2 kafka_2.11-0.11.0.0]# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.198.149:9092 --topic test --from-beginning
会显示你打开的第一台卡住的机器上输入的字符,不要退出继续的从第一台上输入字符第二台就会实时的输出,也就是第一台生产第二台消费,个人理解如有不同欢迎指正
忘了说一点停止kafka是在bin先有一个kafkastop的文件执行此文件就能关闭,如下
执行此命令能关闭kafka