转载请注明出处:linux(centos)部署kafka(单点快速开始;单机器部署集群;多机器部署集群)_centos 部署kafka 3.5集群-CSDN博客
目录
注意:
1、单台机器上又部署zk,又部署kafka,比较吃内存,一开始可能还好,能启动起来,但是内存不够的话,后面可能用着用着kafka就挂掉一个节点。
2、我这里在进行集群部署的时候只部了三个,不过实际使用的时候最好部署五个,避免一个节点挂掉之后,剩下两个争夺主,而导致不可用。
下载解压
#下载解压
#wget https://mirrors.bfsu.edu.cn/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz
#域名变了
wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
tar -xvzf kafka_2.13-2.6.0.tgz
cd kafka_2.13-2.6.0
单点快速开始
#后台启动zk
#注:单点启动的zk配置文件用默认的就好了,也可以进去改一下dataDir,dataLogDir,clientPort啥的
#注:可以先用bin/zookeeper-server-start.sh config/zookeeper.properties前台启动
#看一看是否有报错
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
#修改配置文件中的几个配置项
vim config/server.properties
#监听地址:如果没有配置默认为localhost:9092
listeners=PLAINTEXT://你的ip:9092
#日志路径
log.dirs=/tmp/kafka-logs
#连接zk的地址,如果上面zk的配置文件改了这里也要改
zookeeper.connect=localhost:2181
#partitions数量
num.partitions=10
#自动创建主题,可选项,自己决定是否设置
auto.create.topics.enable=true
#factor的几个相关参数:
#注:这些参数默认为1,但是如果搭建单点的时候该大,启动就会报错
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
default.replication.factor=1
#后台启动kafka
#同样可以前台先启动看一下日志
nohup bin/kafka-server-start.sh config/server.properties &
#搭建完要进行测试哦!!!!!
单点搭建遇到的坑:
1、自己搭的时候为了方便把别人搭好的kafka集群的配置文件拷过来用了,factor相关参数都设置成了2,就一直启不起来,后来全部改为1,就好了。
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
default.replication.factor=2
单台linux上kafka集群搭建:
先弄zk集群:
1、搞三个配置文件,主要配置项如下,可以看出来,主要是dataDir,dataLogDir以及clientPort不一样:
#config/zookeeper.properties01
dataDir=/data/kafka-relate/zookeeper01
dataLogDir=/data/kafka-relate/zookeeper01
clientPort=2181
maxClientCnxns=60
admin.enableServer=false
initLimit=10
syncLimit=5
#server后面的序号要写到dataDir的myid文件中
server.1=ip:2881:3881
server.2=ip:2882:3882
server.3=ip:2883:3883
#config/zookeeper.properties02
dataDir=/data/kafka-relate/zookeeper02
dataLogDir=/data/kafka-relate/zookeeper02
clientPort=2182
maxClientCnxns=60
admin.enableServer=false
initLimit=10
syncLimit=5
#server后面的序号要写到dataDir的myid文件中
server.1=ip:2881:3881
server.2=ip:2882:3882
server.3=ip:2883:3883
#config/zookeeper.properties03
dataDir=/data/kafka-relate/zookeeper03
dataLogDir=/data/kafka-relate/zookeeper03
clientPort=2183
maxClientCnxns=60
admin.enableServer=false
initLimit=10
syncLimit=5
#server后面的序号要写到dataDir的myid文件中
server.1=ip:2881:3881
server.2=ip:2882:3882
server.3=ip:2883:3883
2、到各自的dataDir里面创建myid文件
echo "1" > /data/kafka-relate/zookeeper01/myid
echo "2" > /data/kafka-relate/zookeeper02/myid
echo "3" > /data/kafka-relate/zookeeper03/myid
3、启动(可以先前台启动,看看启动会是否成功,再用后台启动)
注:这里前台启动第一个的时候会有连接不到后两个的警告,应该是正常的,因为后两个还没启。
nohup bin/zookeeper-server-start.sh config/zookeeper.properties01 &
nohup bin/zookeeper-server-start.sh config/zookeeper.properties02 &
nohup bin/zookeeper-server-start.sh config/zookeeper.properties03 &
可以用supercisor启动,注意这里要加上 environment,下面给出了一个示例。
[program:zookeeper01]
directory = /opt/kafka_2.13-2.6.0/bin
environment = JAVA_HOME=/usr/java/jdk1.8.0_121; JAVA_OPTS='-server -Xms8175m -Xmx8175m -Xmn512m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=8045 -Djava.rmi.server.hostname=ip'; CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar:/usr/java/jdk1.8.0_121/lib/tools.jar:/usr/local/tomcat/common/lib/servlet.jar; PATH=/usr/java/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin:/usr/sbin
command = /opt/kafka_2.13-2.6.0/bin/zookeeper-server-start.sh /opt/kafka_2.13-2.6.0/config/zookeeper.properties01
autostart = true
startsecs = 10
autorestart = true
startretries = 50
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /data/kafka-relate/zookeeper01/supervisor.logs
再弄kafka集群
1、先弄多个配置文件,这里只列出一下需要注意的点:
#config/server.properties01
broker.id=1
listeners=PLAINTEXT://ip:9092
log.dirs=/data/kafka-relate/kafka-logs01
#上面设置的zk地址
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
#partitions数量
num.partitions=10
#自动创建主题,可选项,自己决定是否设置
auto.create.topics.enable=true
#factor相关参数,从别人多台集群抄来的:
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
default.replication.factor=2
#config/server.properties02
broker.id=2
listeners=PLAINTEXT://ip:9093
log.dirs=/data/kafka-relate/kafka-logs02
#上面设置的zk地址
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
#partitions数量
num.partitions=10
#自动创建主题,可选项,自己决定是否设置
auto.create.topics.enable=true
#factor相关参数,从别人多台集群抄来的:
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
default.replication.factor=2
#config/server.properties03
broker.id=3
listeners=PLAINTEXT://ip:9094
log.dirs=/data/kafka-relate/kafka-logs03
#上面设置的zk地址
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
#partitions数量
num.partitions=10
#自动创建主题,可选项,自己决定是否设置
auto.create.topics.enable=true
#factor相关参数,从别人多台集群抄来的:
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
default.replication.factor=2
2、启动(可以先前台启动,看看启动会是否成功,再用后台启动)
nohup bin/kafka-server-start.sh config/server.properties01 &
nohup bin/kafka-server-start.sh config/server.properties02 &
nohup bin/kafka-server-start.sh config/server.properties03 &
搭好要测试哦!!!
1、添加一个top
2、生产
3、消费
多台机器集群搭建
先搭建zk集群
1、配置文件
#config/zookeeper.properties
dataDir=/data/kafka-relate/zookeeper
dataLogDir=/data/kafka-relate/zookeeper
clientPort=2181
maxClientCnxns=60
admin.enableServer=false
initLimit=10
syncLimit=5
#server后面的序号要写到dataDir的myid文件中
server.1=ip1:2881:3881
server.2=ip2:2882:3882
server.3=ip3:2883:3883
2、 到各自的dataDir里面创建根据myid文件(根据上述配置中server.num对应的ip写入对应的num)
#假设本机是server.1
echo "1" > /data/kafka-relate/zookeeper/myid
3、分别启动(可以先前台启动,看看启动会是否成功,再用后台启动)
注:这里前台启动第一个的时候会有连接不到后两个的警告,应该是正常的,因为后两个还没启。
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
再搭建kafka集群
1、配置文件
注:broker.id每台机器不一样(分别设置成1、2、3),其它配置都一样即可。
#config/server.properties
broker.id=1
listeners=PLAINTEXT://ip:9092
log.dirs=/data/kafka-relate/kafka-logs
#上面设置的zk地址
zookeeper.connect=ip1:2181,ip2:2181,ip3:2181
#partitions数量
num.partitions=10
#自动创建主题,可选项,自己决定是否设置
auto.create.topics.enable=true
#factor相关参数,从别人多台集群抄来的:
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
default.replication.factor=2
2、分别在每台机器上启动(可以先前台启动,看看启动会是否成功,再用后台启动)
nohup bin/kafka-server-start.sh config/server.properties &
搭好要测试哦!!!
1、添加一个top
2、生产
3、消费
kafka manager搭建
Linux安装Kafka-Manager_linux安装kafka manager-CSDN博客