1.下载

http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz

2.解压 

tar -zxvf kafka_2.11-2.1.0.tgz

3.创建两份配置文件

cd conf

cp server.properties  server1.properties

cp server.properties  server2.properties

4.创建两个log目录

cd logs

mkdir log1 log2

5.编辑配置文件

编辑 server1.properties,server2.properties

主要修改点

#broker id 在集群中必须唯一

broker.id=1

#监听端口

#listeners=PLAINTEXT://:9001

host.name=192.168.1.1

port=9001

#topic 分区数量

num.partitions=5

# 数据存储目录

log.dirs=/home/kafka/kafka_2.12-2.1.0/logs/log1

# zookpeer 配置

zookeeper.connect=localhost:2181,localhost:2182,localhost:2183

两个文件不同的地方

broker.id,log.dirs ,host.name(kafka所在的IP),port:kafka的端口

6.启动kafka集群

./bin/kafka-server-start.sh -daemon config/server1.properties 

./bin/kafka-server-start.sh -daemon config/server2.properties 

7.验证集群

./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic my-topic

创建一个my-topic 的 topic 

副本为1

分区数为5

实例1

 

实例2

 可以看到两个实例,一个实例上有3个分区,一个为两个分区。

 显示kafka 主题数量

./kafka-topics.sh --zookeeper localhost:2181 --describe

 

kafka 内存调整

如果使用的CMS GC算法,建议JVM Heap不要太大,在4GB以内就可以。JVM太大,导致Major GC或者Full GC产生的“stop the world”时间过长,导致broker和zk之间的session超时,比如重新选举controller节点和提升follow replica为leader replica。

JVM也不能过小,否则会导致频繁地触发gc操作,也影响Kafka的吞吐量。另外,需要避免CMS GC过程中的发生promotion failure和concurrent failure问题。CMSInitiatingOccupancyFraction=70可以预防concurrent failure问题,提前出发Major GC。

Kafka JVM参数可以直接修改启动脚本bin/kafka-server-start.sh 中的变量值。下面是一些基本参数,也可以根据实际的gc状况和调试GC需要增加一些相关的参数。

export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G -Xmn2G -XX:PermSize=64m -XX:MaxPermSize=128m  -XX:SurvivorRatio=6  -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"

posted on 2018-12-27 11:55  自由港  阅读(384)  评论(0编辑  收藏  举报