kafka基于Java开发的,所以运行kafka需要有Java环境,即需要预先装JDK,这里不赘述具体的安装过程。
我是在阿里云的linux机器上搭建kafka环境,java路径是/usr/java/jdk1.8.0_171
安装Zookeeper
Kafka使用Zookeeper来存储集群元数据以及消费者元数据,如下所示:
单机版Zookeeper:
下面将Zookeeper安装在/usr/local/zookeeper中,并设置简单的配置,存储数据到/var/lib/zookeeper中:
(请注意,这个地方需要把/usr/local/zookeeper/conf/zoo_sample.cfg拷贝成/usr/local/zookeeper/conf/zoo.cfg,而且一定要是zoo.cfg这个名字)
# tar -zxf zookeeper-3.4.12.tar.gz # mkdir -p /var/lib/zookeeper # cat > /usr/local/zookeeper/conf/zoo.cfg << EOF > tickTime=2000 > dataDir=/var/lib/zookeeper > clientPort=2181 > EOF # export JAVA_HOME=/usr/java/jdk1.8.0_171 # /usr/local/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED #
可以通过连接并发送srvr命令来确认Zookeeper已经启动:
# telnet localhost 2181 Trying ::1... Connected to localhost. Escape character is '^]'. srvr Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0x0 Mode: standalone Node count: 4 Connection closed by foreign host.
安装一个Kafka broker:
安装完Java和Zookeeper之后,我们可以安装Kaka了。下面将Kafka安装在/usr/kafka,并使用之前的Zookeeper,保存日志到/tmp/kafka-logs中:
# tar -zxf kafka_2.11-1.1.0.tgz # mkdir /tmp/kafka-logs # export JAVA_HOME=/usr/java/jdk1.8.0_171 # /usr/kafka/bin/kafka-server-start.sh -daemon /usr/kafka/config/server.properties #
启动后,我们可以通过一些简单的操作来确认是否正常。
创建并验证一个主题:
# /usr/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test Created topic "test". # /usr/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test Topic:test PartitionCount:1 ReplicationFactor:1 Configs: Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
生产者发送消息到test主题:
# /usr/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test Test Message 1 Test Message 2 ^D #
消费者从test主题读取消息:
# /usr/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Test Message 1
Test Message 2
^C
Consumed 2 messages
至此,我们就完成了单机版的zookeeper和kafka的搭建了,接下来就可以开始玩一些操作了,把我们看到的理论知识通过自己的命令来实践了。