搭建该环境需要安装zookeeper和Kafka。
安装、配置zookeeper的集群环境
zookeeper我们安装,需要对环境进行一定配置。
下载、安装及配置环境变量
安装zookeeper,我们需要将下载的zookeeper安装包解压到我们想要安装的地方。
下载网站:
https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/
命令为:
tar -zxvf apache-zookeeper-3.7.0.tar.gz
解压后,我们需要添加环境变量
首先,我们需要打开配置文件:
vi /etc/profile
在里面添加:
# 需要注意的是添加的目录路径为你自己的安装目录
export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
然后使用source命令使配置快速生效
source /etc/profile
集群里的每一台机器都需要这样配置。
修改配置文件。
我们的zookeeper并不是安装好了就完事了,我们还需要对zookeeper的配置文件进行修改,这样才能为我们所用。
配置zoo.cfg
我们打开zookeeper下conf文件下的zoo.cfg文件。
我们需要添加几个配置,并给zookeeper创建数据文件夹和日志文件夹。
首先,我们设置zookeeper的端口为2181。然后配置集群内三台服务器的端口号。
这是配置的具体格式
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的主机名(hostname)或IP;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举
clientPort=2181
server.1=centos01:2888:3888
server.2=centos02:2888:3888
server.3=centos03:2888:3888
然后给zookeeper创建数据文件夹和日志文件夹的配置。也是在zoo.cfg下面添加。
dataDir=/opt/modules/zookeeper-3.4.10/data
dataLogDir=/opt/modules/zookeeper-3.4.10/log
我们需要在zookeeper下创建data和log文件夹。
mkdir /opt/modules/zookeeper-3.4.10/data
mkdir /opt/modules/zookeeper-3.4.10/log
然后我们将上述的配置在其他服务器上也进行相关配置。
配置myid
我们需要在zookeeper下面的data文件夹下创建myid文件
然后在第一台服务器里面写1,在第二台服务器里面写2,在第三台服务器里面写3。
这样,我们的zookeeper就配置完毕了
测试zookeeper
启动zookeeper
# 在三台服务器的终端输入下面的命令启动zookeeper。
zkServer.sh start
查看启动状态
# 通过这条命令,我们就可以得知当前服务器的zookeeper运行的情况
zkServer.sh status
一定要在三台服务器都开启服务后再使用status命令,否则会报错。
正确的打开姿势!
没有报错的话,恭喜你,zookeeper就安装成功了!
Kafka的安装与配置
下载与安装及配置环境变量
http://kafka.apache.org/downloads.html
下载到服务器后,我们使用解压命令解压
tar -zxvf kafka_2.10-0.9.0.1.tgz
然后我们需要配置Kafka的环境变量
vi /etc/profile
在里面添加:
# 需要注意的是添加的目录路径为你自己的安装目录
export KAFKA_HOME=/opt/modules/kafka/
PATH=$KAFKA_HOME/bin:$PATH
然后使用source命令使配置快速生效
source /etc/profile
集群里的每一台机器都需要这样配置。
修改配置文件
我们需要打开Kafka下config文件夹下的server.properties文件
# 需要注意的是第一台服务的id为0,第二台为1,第三台为2.
broker.id=0
port=9092
# 这里是主机名或IP:端口号,不要写错了主机名或者IP
zookeeper.connect=centos01:2181,centos02:2181,centos03:2181
测试Kafka
我们需要分别在三台虚拟机上执行
# 这是在kafka的bin目录里面执行的。
# 如果报错没有命令的话,可以在命令前添加./或者查看环境变量是否配置正确。
kafka-server-start.sh ../config/server.properties
服务器出现这样的页面就表示开启成功。
注意,三台服务器打开的这个终端是不能关闭的,每个服务器需要新建一个终端,才能开始测试。
例如我这里是新打开了一个终端进行测试。
创建topic
# 需要注意的是主机名不要写错,写你自己的
kafka-topics.sh --create --zookeeper centos01:2181,centos02:2181,centos03:2181 --replication-factor 3 --partitions 1 --topic HelloKafkaTest
如果报错为:
Replication factor: 3 larger than available brokers: 2.
可能你的一个kafka进程被关掉了一个 需要重新启动
我们可以看到已经创建成功了。
向topic发送数据
然后我们对这条topic发送数据
# 该命令会开启一个输入端,我们可以输入数据进行发送。
kafka-console-producer.sh --broker-list centos01:9092,centos02:9092,centos03:9092 --topic HelloKafkaTest
我们这里输入了一个hello kafka
接收topic的数据
# 使用这条命令会接收该topic的数据
# 并且在另一端发送的时候,这里也会显示发送的数据
kafka-console-consumer.sh --bootstrap-server centos02:9092 --from-beginning --topic HelloKafkaTest
我们可以看到之前发送的hello kafka
然后,我们使用之前的发送端再次发送一次数据。
我们可以看到接收端也同步了数据。
查看所有topic
kafka-topics.sh --list --zookeeper centos01:2181,centos02:2181,centos03:2181
查看指定topic的status
kafka-topics.sh --describe --zookeeper centos01:2181,centos02:2181,centos03:2181 --topic HelloKafka