环境:3台服务器,每台服务器分别部署一个zookeeper节点和一个kafka节点,kafka不用自带的zookeeper,另外安装
一、zookeeper安装
1、下载zookeeper压缩包apache-zookeeper-3.6.3-bin.tar.gz,解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C ./
2、conf下编辑zookeeper配置文件zoo.cfg
(1)copy一份zoo_sample.cfg并命名为zoo.cfg(此处不该需要在启动脚本改一下配置文件名称,默认启动脚本里的配置文件名称zoo.cfg)
cp zoo_sample.cfg zoo.cfg
(2)编辑配置文件
vi zoo.cfg
添加基本配置(这是最基本的设置,其他设置项可自行查阅相关资料进行设置)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data1/zookeeper-data
dataLogDir=/data1/zookeeper-logs
clientPort=2181
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888
以上设置在其余两个节点相同设置
(3)在数据存放路径下设置id,用于选举leader(我这里的路径是/data1/zookeeper-data)
cd /data1/zookeeper-data
echo 1 > myid
其余两台机器分别在相同路径下执行命令
echo 2 > myid
echo 3 > myid
至此,三台zookeeper节点已配置好
3、启动命令(这里需要依赖java环境,一般环境都有设置,没有的可自行设置,如果无法设置环境变量的,可在zkEnv.sh里JAVA_HOME里面添加jdk路径)
#check to see if the conf dir is given as an optional argument
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
bin目录下执行(分别启动3个节点)
./zkServer.sh start
查看zookeeper状态
./zkServer.sh status
二、kafka安装
1、下载kafka安装包解压
tar -zxvf kafka_2.13-2.8.0.tgz -C ./
2、设置配置文件
config目录下server.propertis(broker id唯一,其余两个节点可分别设置为1、2)
broker.id=0
delete.topic.enable=true
num.network.threads=9
num.io.threads=16
socket.send.buffer.bytes=1048567
socket.receive.buffer.bytes=1048567
socket.request.max.bytes=104857600
listeners=PLAINTEXT://ip:9092
log.dirs=设置路径
num.partitions=9
num.recovery.threads.per.data.dir=3
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
default.replication.factor=3
log.retention.hours=24
log.segment.bytes=1073741824
log.roll.ms=3600000
log.retention.check.interval.ms=180000
zookeeper.connect=ip1:2181,ip2:2181,ip3:2181
zookeeper.connection.timeout.ms=50000
zookeeper.session.timeout.ms=30000
num.replica.fetchers=12
replica.fetch.max.bytes=4194304
replica.fetch.min.bytes=10
replica.lag.time.max.ms=30000
replica.socket.receive.buffer.bytes=2097152
group.initial.rebalance.delay.ms=0
3、创建文件夹log.dir文件夹(可以不创建,启动会自动创建)
4、启动(如果启动报错没有jdk,在kafka-run-class.sh中添加jdk路径JAVA_HOME="/usr/local/java/jdk1.8.0_144",最好配环境变量)
前台启动
bin/kafka-server-start.sh config/server.properties
后台启动
bin/kafka-server-start.sh -daemon config/server.properties
-daemon 参数会将任务转入后台运行,输出日志信息将写入日志文件,日志文件在执行命令的目录下的logs目录中kafkaServer.out,结尾输同started说明启动成功