一、安装准备
1、修改系统配置
#关闭selinux、firewall
#修改/etc/security/limits.conf添加以下内容:

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 65536
  • hard nproc 65536
    #修改/etc/security/limits.d/20-nproc.conf
  • soft nproc 65536
    3、创建账户、目录
    groupadd -g 800 kafka
    useradd -u 800 -g kafka kafka

二、安装步骤
1、解压文件
tar xvf kafka_2.12-1.0.0.tgz -C /usr/local/
cd /usr/local/
mv kafka_2.12-1.0.0/ kafka
mkdir /usr/local/kafka/log
chown -R kafka.kafka /usr/local/kafka
2、修改环境变量.bash_profile
#su - kafka
$vim .bash_profile
JAVA_HOME=/usr/local/jdk
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:/usr/local/kafka/bin
export PATH JAVA_HOME CLASSPATH
#重新加载.bash_profile
$. .bash_profile
3、修改配置文件
broker.id=0 每台服务器的broker.id都不能相同
host.name=192.168.10.21
log.dirs=/usr/local/kafka/log
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=192.168.10.21:2181,192.168.10.22:2181,192.168.10.23:2181
4、启动kafka
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

三、测试
1、在任意机器上建一个topic,因为有三个kafka服务,所以这里replication-factor设为3
kafka-topics.sh --create --zookeeper 192.168.10.23:2181 --replication-factor 3 -partitions 1 --topic 3test
Created topic "3test".

2、查看topic,此时的leader kafka为1,repicas:集群里有三个kafka,Isr:正常使用的kafka
kafka-topics.sh --describe --zookeeper 192.168.10.21:2181
Topic:3test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: 3test Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0

3、在2这台机器上开启一个producer,往1这个kafka发消息
kafka-console-producer.sh --broker-list 192.168.10.22:9092 --topic 3test
this is a message to 132 broker
re?

4、停掉1的kafka,再次查看topics,此时可用的Isr为0和2
kafka-topics.sh --describe --zookeeper 192.168.10.21:2181
Topic:3test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: 3test Partition: 0 Leader: 2 Replicas: 1,2,0 Isr: 2,0

5、在0上开启一个consumer
kafka-console-consumer.sh --zookeeper 192.168.10.21:2181 --topic 3test --from-beginning
re?

自此,发现停掉了132,依然能通过zookeeper从129和133的kafka上收到发往132的消息。
kafka集群测试通过

参考博文:
http://www.cnblogs.com/younldeace/p/3796580.html
http://blog.csdn.net/u013214151/article/details/53495045