一、下载kafka的安装文件
访问官方地址:kafka.apache.org/downloads 我下载的是以下版本:
上传到服务器/opt,并解压:
[root@iZ2ze7sn66bchxncut8rgsZ /]# cd /opt
[root@iZ2ze7sn66bchxncut8rgsZ opt]# tar -xvf kafka_2.12-2.7.0.tgz
[root@iZ2ze7sn66bchxncut8rgsZ opt]# cd kafka_2.12-2.7.0/
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# ll
总用量 56
drwxr-xr-x 3 root root 4096 12月 16 22:01 bin
drwxr-xr-x 2 root root 4096 12月 16 22:01 config
drwxr-xr-x 2 root root 8192 2月 1 14:44 libs
-rw-r--r-- 1 root root 29975 12月 16 21:58 LICENSE
-rw-r--r-- 1 root root 337 12月 16 21:58 NOTICE
drwxr-xr-x 2 root root 44 12月 16 22:01 site-docs
二、启动服务
这里有两种方式配置ZK:
1)自己搭建单独的一套服务
2)使用kafka提供的单节点zk服务。
这里为了演示且zk不是关注点,我们直接使用自带的zk。
[root@iZ2ze7sn66bchxncut8rgsZ bin]# cd ../
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# ./bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka服务:
./bin/kafka-server-start.sh config/server.properties
以上启动都是直接启动的,真实环境请使用后台启动nohup:
#### 启动zk
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties >/dev/null &
#### 启动kafka服务
nohup ./bin/kafka-server-start.sh config/server.properties >/dev/null &
三、验证
有一款插件,朋友们可以下载下,利于我们分下线上的问题。 下载地址如下:www.kafkatool.com/
打开新窗口,验证kafka服务是否成功:
1、创建一个topic,名为“test-kafka”,它有一个分区和一个副本:
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-kafka
Created topic test-kafka.
2、查看当前存在的topic
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
__consumer_offsets
test
test-kafka
3、创建生产者
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-kafka
>
4、打开新窗口,创建消费者
[root@iZ2ze7sn66bchxncut8rgsZ kafka_2.12-2.7.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-kafka --from-beginning
5、发送消息,查看结果 使用生产者发送消息“hello world”:
查看消费者:
从上面看到消费者成功接收到生产者发送的消息了。
注意:如果在执行命令过程重出现类似以下的错误,实际是由于kafka版本过高导致的:
[root@hecs-402944 bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-kafkaException in thread "main" joptsimple.UnrecognizedOptionException: zookeeper is not a recognized option
at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
at joptsimple.OptionParser.parse(OptionParser.java:396)
at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:567)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:47)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
我们需要替换命令如下, 将:
--zookeeper localhost:2181
替换成
--bootstrap-server localhost:9092
例如:
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test-kafka
下一章节,我们看下如何部署kafka集群。