本篇博客主要讲解在虚拟机安装之后,从如下五个方面进行讲解kafka的安装过程。
(1)如何配置虚拟机网络
(2)如何安装JDK
(3)如何安装zookeeper
(4)如何安装kafka
(5)kafka功能测试
如何配置虚拟机网
kafka一般安装到linux操作系统,当然windows下面也可以运行,作为程序员,还是在linux下面开发测试为主,因此我们首先安装3台linux虚拟机。
- 虚拟机软件:vmware workstation 14 pro
- 操作系统: CentOS-7-x86_64-DVD-1804
我们首先使用虚拟机软件vmware workstation 14 pro安装CentOS系统,相关教程网上很多,在此不必演示,安装之后再克隆两台,之后进行相关配置。
三台服务器IP规划为:
- 192.168.40.101
- 192.168.40.102
- 192.168.40.103
规划依据:和windows下面的VMnet8的IP: 192.168.40.1在同一个网段,下面是宿主机windows下面使用ipconfig查看的内容:
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::3d3c:50d2:c7d:e637%43
IPv4 地址 . . . . . . . . . . . . : 192.168.40.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
(1)网络配置,需要如下三步:
1 | 切换root |
2 | 修改文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 |
3 | 重启网络 service network restart |
其中第二步最为复杂:在ifcfg-ens33文件原有基础上:
修改内容为:
BOOTPROTO=static
ONBOOT=yes
增加内容为(注意IPADDR对于其它两台服务器为:192.168.40.102、192.168.40.103):
IPADDR=192.168.40.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
(2)主机名配置
a:编辑/etc/sysconfig/network文件,添加如下配置。注意其它两台服务器名称。可以配置为 kafka-102、kafka-103
NETWORKING=yes
HOSTNAME=kafka-101
如何安装JDK
1、查看原有系统的jdk
2、删除自带的openjdk(需切换至root用户)
3、新建jdk安装目录
4、下载jdk并上传至服务器/usr/local/java目录,并解压
5、配置/etc/profile文件,添加如下内容
6、使之生效
7、再次查看jdk信息,已经显示安装成功
8、注意问题:如果切换到普通用户,查看JDK版本不能正常执行命令,则新打开一个连接或者重启服务器再查看即可 。
如何安装zookeeper
kafka依赖zookeeper管理元信息,因此再安装kafka之前必须安装zookeeper。Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3、5、7个节点)较为合适。
1、端口规划
- 服务器1:192.168.40.101 端口:2181、2881、3881
- 服务器2:192.168.40.102 端口:2182、2882、3882
- 服务器3:192.168.40.103 端口:2183、2883、3883
2、修改操作系统的hosts文件,添加与主机IP的映射,注意每个服务器都要添加下面完整的映射。
- 192.168.40.101 kafka-101
- 192.168.40.102 kafka-102
- 192.168.40.103 kafka-103
3、将zookeeper的压缩包上传至各个服务器(/home/yefengyu/),解压各个服务器上的压缩包。
4、进入zookeeper目录,创建两个文件夹
5、将conf下面的zoo_sample.cfg备份一份
6、修改各个服务器上的zoo.cfg文件,内容如下
7、在每个服务器的/home/yefengyu/zookeeper-3.4.13/data目录下面创建myid文件,里面只需要添加服务器序号
- kafka-101 服务器中myid内容为:1
- kafka-102 服务器中myid内容为:2
- kafka-103 服务器中myid内容为:3
8、将zookeeper加入到系统环境变量
(1)vim /home/yefengyu/.bash_profile
(2)添加如下信息
(3)为了使得命令生效,需要执行:source /home/yefengyu/.bash_profile
9、启动zookeeper
10、查看zookeeper是否启动
11、关闭zookeeper
12、日志设置
当前终端处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录,可以修改日志输出到固定目录,方便问题定位。
修改 /home/yefengyu/zookeeper-3.4.13/bin/zkEnv.sh
为
如何安装kafka
1、在官网下载kafka安装包,上传至服务器 /home/yefengyu 目录下面
2、解压 tar -zxvf kafka_2.12-2.1.1.tgz
3、修改修改server.properties
(1)kafka连接zookeeper的地址,每个kafka的server.properties里面的这个配置都要一样
zookeeper.connect=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181
(2)kafka存放日志的目录
log.dirs=/home/yefengyu/kafka_2.12-2.1.1/kafka-logs
(3)kafka当前集群的唯一标识,每个机器的kafka服务都不一样
broker.id=1
(4)修改advertised.listeners,每个服务器上面的都不一样
advertised.listeners=PLAINTEXT://192.168.40.101:9092
4、启动kafka
cd /home/yefengyu/kafka_2.12-2.1.1/
./bin/kafka-server-start.sh config/server.properties &
5、查看是否启动成功 jps
kafka功能测试
1、创建主题
./bin/kafka-topics.sh --create --zookeeper=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181 --replication-factor 3 --partitions 3 --topic ALARM
2、查看主题
./bin/kafka-topics.sh --list --zookeeper=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181
3、发送消息
./bin/kafka-console-producer.sh --broker-list 192.168.40.101:9092,192.168.40.102:9092,192.168.40.103:9092 --topic ALARM
4、接收消息
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.40.101:9092,192.168.40.102:9092,192.168.40.103:9092 --topic ALARM
5、关闭服务