(0)
wget http://mirror.bit.edu.cn/apache/kafka/0.9.0.1/kafka_2.10-0.9.0.1.tgz
tar -xvf kafka_2.10-0.9.0.1.tgz
[jollybi@kafka1 tools]$ ll
total 88100
drwxr-xr-x 7 jollybi jollybi 4096 Jul 14 13:07 kafka_2.10-0.8.2.1
-rw-rw-r-- 1 jollybi jollybi 16162559 Jul 14 11:40 kafka_2.10-0.8.2.1.tgz
drwxr-xr-x 6 jollybi jollybi 4096 Feb 12 2016 kafka_2.10-0.9.0.1
-rw-rw-r-- 1 jollybi jollybi 35725063 Jun 20 20:11 kafka_2.10-0.9.0.1.tgz
drwxr-xr-x 12 jollybi jollybi 4096 Sep 25 16:41 zookeeper-3.4.5
-rw-rw-r-- 1 jollybi jollybi 38307840 Jul 14 11:40 zookeeper-3.4.5.tar
[jollybi@kafka1 tools]$ mkdir -p /data/tools/kafka_2.10-0.9.0.1/kafka-logs
[jollybi@kafka1 tools]$ mkdir -p /data/tools/kafka_2.10-0.9.0.1/logs
(1)
[jollybi@kafka1 tools]$ vim kafka_2.10-0.9.0.1/config/zookeeper.properties
第一步修改:
dataDir=dataDir=/data/jollybi/tools/zookeeper-3.4.5/tmp
clientPort=2281
maxClientCnxns=0
dataDir,clientPort的意义不需要说明了,对于maxClientCnxns选项,如果不设置或者设置为0,则每个ip连接zookeeper时的连接数没有限制。
需要注意的是,设置maxClientCnxns的值时需要把kafka server的连接数考虑进去,因为启动kafka server时,kafka server也会连接zookeeper的。
(2)
[jollybi@kafka1 tools]$ vim kafka_2.10-0.9.0.1/config/consumer.properties
zookeeper.connect=10.155.90.153:2281,10.155.90.155:2281,10.155.90.138:2281
其他参数根据不同集群环境调整
(3)
[jollybi@kafka1 tools]$ vim kafka_2.10-0.9.0.1/config/producer.properties (修改内网IP)
metadata.broker.list=10.155.90.153:9292,10.155.90.155:9292,10.155.90.138:9292
producer.type=sync
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder
其他参数根据不同集群环境调整
(4)
[jollybi@kafka1 config]$ cat server.properties | grep -Pv "^#|^$"
broker.id=1
auto.leader.rebalance.enable = true
listeners=PLAINTEXT://10.155.90.153:9292
port=9292
host.name=10.155.90.153
zookeeper.connect=10.155.90.153:2281,10.155.90.155:2281,10.155.90.138:2281
zookeeper.connection.timeout.ms=6000
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/tools/kafka_2.10-0.9.0.1/kafka-logs
log.cleaner.enable=true
delete.topic.enable=true
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=96
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
备注:listeners一定要配置成为IP地址;如果配置为localhost或服务器的hostname,在使用java发送数据时就会抛出异 常:org.apache.kafka.common.errors.TimeoutException: Batch Expired 。因为在没有配置advertised.host.name 的情况下,Kafka并没有像官方文档宣称的那样改为广播我们配置的hostname,而是广播了主机配置的hostname。远端的客户端并没有配置 hosts,所以自然是连接不上这个hostname的