kafka集群安装笔记
规划
3个虚拟机,每个节点角色端口如下
| 节点 | 角色 | 端口 |
|---|---|---|
| m1 | zk | 2181;2888;3888 |
| m2 | zk | 2181;2888;3888 |
| m3 | zk | 2181;2888;3888 |
| m1 | kafka | 9092 |
| m2 | kafka | 9092 |
| m3 | kafka | 9092 |
1. jdk安装
1.1 下载jdk
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
1.2 解压
tar -zxvf jdk-8u151-linux-x64.tar.gz
1.3 配置jdk环境变量
-
编辑环境变量
vim /etc/profile -
增加jdk 环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_151 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar$JAVA_HOME/lib/tools.jar -
生效环境变量
source /etc/profile
2. 安装zookeeper集群
zookeeper官方文档集群配置 参考 Running Replicated ZooKeeper 一节
2.1 下载zookeeper
wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
2.1 解压
tar -zxvf zookeeper-3.4.11.tar.gz
2.2 增加配置
-
增加配置文件
cp /usr/local/zookeeper-3.4.11/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.11/conf/zoo.cfg -
配置zoo.cfg
-
编辑配置文件
vim /usr/local/zookeeper-3.4.11/conf/zoo.cfg -
增加节点ip及端口
在配置文件末尾增加:server.1=m1:2888:3888 server.2=m2:2888:3888 server.3=m3:2888:3888 -
修改dataDir属性
dataDir=/var/lib/zookeeper
-
-
创建myid
官方文档只有这样一段话:The entries of the form server.X list the servers that make up the ZooKeeper service. When the server starts up, it knows which server it is by looking for the file myid in the data directory. That file has the contains the server number, in ASCII.
在配置文件指定zk的集群有3个实例,分别的ID是1,2,3,并且配置所对应的端口及ip,但是没有指定实例的id,zk启动时候是无法找到对应的ID,所以我们要配置每个实例的ID。
-
创建对应目录
注意 需要分别在每个节点创建这样的目录。
mkdir -p /var/lib/zookeeper -
指定ID
echo 1 > /var/lib/zookeeper/myid如果你没有3个节点实例执行命令如下:
ID1实例:echo 1 > /var/lib/zookeeper/myidID2实例:
echo 2 > /var/lib/zookeeper/myidID3实例:
echo 3 > /var/lib/zookeeper/myid
-
3.3拷贝多个节点
scp -r /usr/local/zookeeper-3.4.11 root@m2:/usr/local
scp -r /usr/local/zookeeper-3.4.11 root@m3:/usr/local
3.4 启动zk
-
分别每个节点执行
/usr/local/zookeeper-3.4.11/bin/zkServer.sh start -
验证
/usr/local/zookeeper-3.4.11/bin/zkServer.sh status
出现
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: leader
或者:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower
zk安装成功
3.安装kafka
kafka官方文档集群配置 参考 Step 6: Setting up a multi-broker cluster 一节
3.1 下载kafka
wget https://mirrors.aliyun.com/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
3.2 解压
tar -zxvf kafka_2.11-1.0.0.tgz
3.3 增加配置
-
复制配置文件
cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server1.properties cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server2.properties cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server1.properties -
修改配置文件
- 修改文件 broker.id属性
broker.id=1
3个配置文件中的id不能重复(server1.properties;server2.properties;server1.properties)- 去掉每个配置文件中listeners=PLAINTEXT://:9092注释
- 指定每个配置文件中log.dir目录并创建日志目录
log.dir=/usr/local/kafka_2.11-1.0.0/log/
mkdir /usr/local/kafka_2.11-1.0.0/log/ -
拷贝多个节点
scp -r /usr/local/kafka_2.11-1.0.0/ root@m2:/usr/local
scp -r /usr/local/kafka_2.11-1.0.0/ root@m3:/usr/local
3.4 启动
- 每个节一次执行
/usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server1.properties &
/usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server2.properties &
/usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server3.properties &
-
测试
-
创建topic
bin/kafka-topics.sh --create --zookeeper m1:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic -
创建生产者
在1个节点中kafka-console-producer.sh --broker-list m1:9092 --topic my-replicated-topic -
创建消费
在剩下2个节点执行bin/kafka-console-consumer.sh --bootstrap-server m1:9092 --from-beginning --topic my-replicated-topic
生成者发送消息,消费者可以收到消息,kafka配置成功。
-
浙公网安备 33010602011771号