此搭建过程操作系统基于ubuntu 14.04.3,zookeeper 3.4.6,kafka 2.10-0.8.2.1
zookeeper
安装
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
cp -rf conf/zoo_sample.cfg conf/zoo.cfg
cd conf
vim zoo.cfg
最后一步打开zoo.cfg,修改dataDir为自定义文件夹路径,例如:
dataDir=/Users/echo/zookeeper-3.4.6/zkdata
启动
cd bin
sh zkServer.sh start
这一步可能会出现以下错误:
zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")
这个错误的起因是ubuntu的设置问题,解决方案:
然后重启zookeeper即可
以上为zookeeper的安装和启动,接下来是kafka的安装
kafka
安装
wget http://apache.fayea.com/kafka/0.8.2.1/kafka_2.10-0.8.2.1.tgz
tar -zxf kafka_2.10-0.8.2.1.tgz
启动
cd kafka_2.10-0.8.2.1
sh bin/kafka-server-start.sh config/server.properties
启动过程中可能会出现 replication factor: 1 larger than available brokers: 0 问题,解决方案如下:
复制kafka/config路径下的server.properties文件为:server-1.properties和server-2.properties并修改这两个文件的配置项:
server-1.properties
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
host.name=localhostserver-2.properties
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
host.name=localhostbroker.id、port、log.dir在这三个配置项中都不一样。
修改完成之后启动:
./kafka-server-start.sh ../config/server.properties &
./kafka-server-start.sh ../config/server-1.properties &
./kafka-server-start.sh ../config/server-2.properties &前一个启动可能还会报这个错,继续启动,都启动成功之后这个问题就解决了!
创建topic
sh kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181
此topic的名称的kafkatopic,partitions设置为1,链接的zookeeper为localhost:2181
启动生产者
sh kafka-console-producer.sh --broker-list localhost:9092 --sync --topic kafkatopic
启动消费者
sh kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning
如果启动不成功,需要查看kafka/config文件夹下的server.properties中的配置是否正确,其中需要重点注意的有:
port , hostname , advertised.host.name ,
以上