这个问题,在线上集群环境一般不容易出现,因为相关的日志文件参数都已经配置好了,而且经受住时间的的验证了。
作为新手,我在本地配置了一个单机kafka,用得是kafka自带的zookeeper服务。
kafka安装很简单如下:
1).下载kafka:
wget http://apache.fayea.com/kafka/0.10.1.0/kafka_2.10-0.10.1.0.tgz
2) 解压:
tar -zxf kafka_2.10-0.10.1.0.tgz
3)启动zookeeper,kafka
> bin/zookeeper-server-start.sh config/zookeeper.properties &
[2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
现在启动Kafka:
> bin/kafka-server-start.sh config/server.properties &
[2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
[2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
...
备注:要挂到后台使用:
4)新建一个TOPIC
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
5)查看创建的topic list
> bin/kafka-topics.sh --list --zookeeper localhost:2181
6)查看topic详情
> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
这个时候我们给topic添加一点数据:
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
重启电脑后 启动zookeeper kafka后发现topic没了
这里简略一点:有两个地方需要配置一下 第一个是zookeeper的数据目录 和日志目录(主要是数据目录),另外一个就是kafka本事的server.properties
1.配置zookeeper的把目录从tmp目录修改成自定义目录
2.kafka的日志目录重新配置不要放在tmp下面 ,另外设置一下数据 flush策略,保证数据已经flush到磁盘上
下面是flush策略的修改
本文对其他配置没有做过多介绍,只是把kafka数据落地的配置罗列了一下。
配置好,重启,问题解决。