CentOs6.5安装Kafka集群步骤

1.配置单个虚拟机

1.1下载kafka安装包

打开浏览器,输入网址: http://kafka.apache.org/downloads.html

每台机器的环境:CentOs 6.5 ,Java 1.8 ,kafka2.11自带Zookeeper。

 

1.2压缩包操作

下载完成后,打开终端,在命令行输入 cd /Download,然后输入ls,可以看到下载kafka压缩包,

 

在命令行输入:

cp kafka_2.11-2.1.0.tgz /usr/local/ 拷贝到该文件夹下
cd /usr/local/ 进入文件
tar -zxvf kafka_2.11-2.1.0.tgz 解压压缩包
rm -rf kafka_2.11-2.1.0.tgz删除压缩包
mv kafka_2.11.0.10.0.1

虚拟环境

① 每台机器的环境:CentOs 6.5,Java 1.8,kafka2.11自带(Zookeeper)

② 三台虚拟机的ip地址为:192.168.0.173,192.168.0.174,192.168.0.176

2.配置kafka文件

2.1创建日志文件夹

cd /usr/local/kafka/kafka_2.11.0.10.0.1/
mkdir log 创建日志文件夹
cd log
mkdir kafka
mkdir zookeeper
cd ..
mkdir zookeeper 创建zookeeper文件
cd zookeeper

创建myid文件,进入/usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper,创建myid文件,将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。

vim myid  输入1 保存。

cd ..

cd config

2.2建立zk集群

直接使用kafka自带的zookeeper建立zk集群,修改zookeeper.properties文件。

vim zookeeper.propertics修改配置:

dataDir=/usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper
dataLogDir=/usr/local/kafka/kafka_2.11.0.10.0.1/log/zookeeper
clientPort=2182
maxClientCnxns=100
ticketTime=2000
initLimit=10
syncLimit=5
server.1=192.168.0.173:2888:3888
server.2=192.168.0.174:2888:3888
server.3=192.168.0.176:2888:3888

Esc:wq保存。

kafka新版不用zk kafka自带的zk_kafka

server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

 

三个机器上的zookeeper.properties文件配置相同,需要注意的是日志保存的路径,不会自动生成,需要自己手动建立相关的路径, dataLogDir是我自己加的,日志文件太多,把日志文件区分开。

进入kafka目录 执行启动zookeeper命令:

./bin/zookeeper-server-start.sh config/zookeeper.properties &


三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。

搭建kafka集群,修改server.properties配置文件:

vim server.properties
broker.id = 0
port = 9092
hostname=192.168.0.173
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182

 

server.properties配置文件的修改主要在开头和结尾,中间保持默认配置即可;需要注意的点是broker.id的值三个节点要配置不同的值,分别配置为0,1,2;log.dirs必须保证目录存在,不会根据配置文件自动生成。

3.克隆虚拟机

 

3.1克隆虚拟机

 

填入虚拟机名字: Kafka-cluster-2,点击clone。

点击clone,创建3号虚拟机。

填入虚拟机名字: Kafka-cluster-3,点击clone。

 

3.2修改虚拟机kafka配置文件

先修改Kafka-cluster-2虚拟机配置文件。打开终端输入:

cd /usr/local/kafka/kafka_2.11.0.10.0.1/config/
vim server.properties
broker.id=1
port = 9092
hostname=192.168.0.174
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182

将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。

vim /usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper/myid

修改里面的数字把1改成2。

再修改Kafka-cluster-3虚拟机配置文件。打开终端输入:

cd /usr/local/kafka/kafka_2.11.0.10.0.1/config/
vim server.properties
broker.id=2
bort = 9092
hostname=192.168.0.176
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182

将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。

vim /usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper/myid

修改里面的数字把1改成3。

4.kafka集群测试

4.1启动zookeeper集群

在jiqun---yin1终端中输入:cd /usr/local/kafka/kafka_2.11.0.10.0.1

输入./bin/zookeeper-server-start.sh config/zookeeper.properties &

kafka新版不用zk kafka自带的zk_集群_02

 

同理在Kafka-cluster-2终端和Kafka-cluster-3终端中输入:cd /usr/local/kafka/kafka_2.11.0.10.0.1,然后输入:./bin/zookeeper-server-start.sh config/zookeeper.properties & 

4.2启动kafka集群

分别在jiqun---yin1、Kafka-cluster-2、Kafka-cluster-3虚拟机终端上输入指令:
bin/kafka-server-start.sh config/server.properties &

kafka新版不用zk kafka自带的zk_服务器_03

注意:假如启动失败,继续安装scala安装包,并且将把slf4j-nop-1.7.6.jar 包(自行下载)复制到kafka libs目录下面

4.3创建一个topic

在jiqun---yin1上 kafka_2.11.0.10.0.1目录下终端中输入:

bin/kafka-topics.sh --create --zookeeper 192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182 --replication-factor 3 --partitions 1 --topic mykafka

kafka新版不用zk kafka自带的zk_kafka_04

4.4查询详细信息

在jiqun---yin1 kafka_2.11.0.10.0.1目录下终端中输入:

bin/kafka-topics.sh --describe --zookeeper 192.168.0.155:2181,192.168.0.172:2181, 192.168.0.169:2181

如图所示,topic:mykafka已将创建成功。

kafka新版不用zk kafka自带的zk_集群_05

4.5发送消息

在jiqun---yin1,kafka目录下终端中输入:

bin/kafka-console-producer.sh --broker-list 192.168.0.173:9092,192.168.0.174:9092,192.168.32.176:9092 –topic mykafka

4.6接收信息

在Kafka-cluster-2,kafka目录下终端中输入:bin/kafka-console-consumer.sh --zookeeper 192.168.0.173:2182, 192.168.0.173:2182, 192.168.0.173:2182 --topic mykafka --from-beginning

kafka新版不用zk kafka自带的zk_服务器_06