centos7 安装 kafka_2.11-1.0.0

系统环境
1、操作系统:64位CentOS Linux release 7.4.x (Core)
2、jdk版本:1.8.0_121
3、zookeeper版本:zookeeper-3.4.9.tar.gz
4、三台服务器:192.168.1.91; 192.168.1.92; 192.168.1.93;

5. kafka version: kafka_2.11-1.0.0

访问网址:http://kafka.apache.org/

左侧导航栏最下面有个Download按钮,点进去,进入网址:http://kafka.apache.org/downloads

我写这篇笔记的时候,官方建议下载 kafka_2.11-1.0.0.tgz。
拷贝到centos系统
首先还得说明一下,因为我们要做集群,所以每台服务器的配置基本一样,只需要在一台服务器上安装好kafka,然后利用scp命令,拷贝到其它两台服务器,最后修改下参数就行了。所以我只将tar包拷贝到192.168.1.91这台服务器,在这台机器安装好后,拷贝到另外两台机器。
创建软件目录/soft,因为配置zookeeper时,已经创建了/soft目录,所以我们在这里不需要创建了
将在windows系统下载好的tar包利用WinSCP工具拷贝到centos系统(192.168.1.91)的/soft目录
解压kafka
# cd /soft
解压
# tar -zxvf kafka_2.11-1.0.0.tgz
移动

# mv kafka_2.11-1.0.0  /opt/app/kafka2.11/
配置kafka
# cd /opt/app/kafka2.11/config/
# vi server.properties

Kafka的配置信息就是在server.properties里面配置的
找到下面两行代码并分别注释
#broker.id=0
#zookeeper.connect=localhost:2181
在文件底部添加如下三个配置项:
broker.id=1
zookeeper.connect=192.168.1.91:2181,192.168.1.92:2181,192.168.1.93:2181
listeners = PLAINTEXT://192.168.1.91:9092
说明:如果是单机版的话,默认即可,我们什么都不需要改动。现在我们是要配置集群,所以需要配置一些参数
1、broker.id:每台机器不能一样。
2、zookeeper.connect:因为有3台zookeeper服务器,所以在这里zookeeper.connect设置为3台,必须全部加进去。

3、listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误

WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 40 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
4、看好这一点,另外两台服务器,zookeeper.connect的配置跟这里的一样,但是broker.id和listeners不能一样。
拷贝kafka到另外两台服务器
# scp -r /opt/app/kafka2.11 root@192.168.1.92:/opt/app/
# scp -r /opt/app/kafka2.11 root@192.168.1.93:/opt/app/


中间会要求输入目标机器的密码,按提示操作就行了,然后修改这两台服务器的broker.id和listeners,如下:
192.168.1.92
# cd /opt/app/kafka2.11/config/
# vi server.properties


然后按Ctrl+D键,一直定位到文件最底部,修改broker.id和listeners:


broker.id=2
zookeeper.connect=192.168.1.91:2181,192.168.1.92:2181,192.168.1.93:2181
listeners = PLAINTEXT://192.168.1.92:9092
192.168.1.93

# cd /opt/app/kafka2.11/config/

# vi server.properties
然后按Ctrl+D键,一直定位到文件最底部,修改broker.id和listeners:
broker.id=2
zookeeper.connect=192.168.1.91:2181,192.168.1.92:2181,192.168.1.93:2181
listeners = PLAINTEXT://192.168.1.92:9092
192.168.1.93
# cd /opt/app/kafka2.11/config/
# vi server.properties
然后按Ctrl+D键,一直定位到文件最底部,修改broker.id和listeners:
broker.id=3
zookeeper.connect=192.168.1.91:2181,192.168.1.92:2181,192.168.1.93:2181
listeners = PLAINTEXT://192.168.1.93:9092
开启相关端口

三台机器都要开启,kafka通信默认是通过9092端口,也就是我们上面配的listeners

# firewall-cmd --zone=public --add-port=9092/tcp --permanent
# firewall-cmd --reload
启动zookeeper
三台都要启动
# /usr/local/zookeeper/bin/zkServer.sh start


启动kafka

三台都要启动
# /opt/app/kafka2.11/bin/kafka-server-start.sh -daemon /opt/app/kafka2.11/config/server.properties

但是这只能手工启动了kafka,如果机器重新启动,则还必须手工来启动,如果做到开机能自动启动? 

请看下面的systemctl service服务章节。

创建topic
#  /opt/app/kafka2.11/bin/kafka-topics.sh --create --zookeeper 192.168.1.91:2181 --replication-factor 1 --partitions 1 --topic test
如果成功的话,会输出:Created topic "test".
查看topic
虽然在192.168.1.91上创建的topic,但是另外两台机器上也能看到
到192.168.1.93客户端

# /opt/app/kafka2.11/bin/kafka-topics.sh --list --zookeeper 192.168.1.92:2181
这里的IP可以是192.168.1.91、192.168.1.92、192.168.1.93中的任何一个,在三台服务器中的任何一台都可以看到。
我这里是在93机器上查看92的


创建发布

在192.168.1.91上创建

# /opt/app/kafka2.11/bin/kafka-console-producer.sh --broker-list 192.168.1.91:9092 --topic test

你会看到:
>this is test1
>this is test2

( ctl + d 结束输入)


创建消费
在192.168.1.92上消费

# /opt/app/kafka2.11/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.92:9092 --topic test --from-beginning

你会看到:
this is test1
this is test2
 安装和测试到此结束。
建立systemctl service
上面只是手工启动kafka。但是在 CentOS 上,如何才能做到开机就能自动启动kafa? 
 一种方法就是把启动和停止kafka做成systemctl的服务就可以了。具体步骤如下:

1.  vim /usr/lib/systemd/system/kafka.service

内如如下:
[Unit]
Description=kafka - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/opt/app/kafka2.11/bin/kafka-server-start.sh -daemon /opt/app/kafka2.11/config/server.properties
ExecStop=/opt/app/kafka2.11/bin/kafka-server-stop.sh  /opt/app/kafka2.11/config/server.properties &
[Install]

WantedBy=multi-user.target


2. 设置开机自启动
# systemctl enable kafka.service

3. 启动kafka
# systemctl start kafka
其它命令是 systemctl stop kafka , systemctl status kafka, systemctl daemon-reload

参考网址
参考地址:http://www.cnblogs.com/luotianshuai/p/5206662.html
学习地址:http://orchome.com/kafka/index
官网:http://kafka.apache.org/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值