Mac Catalina安装kafka踩坑实录

2,113 阅读1分钟

记录一下在 Mac 上安装和测试 kafka 的步骤。

MacOS 上可以方便的使用 brew 进行安装。

brew很慢,可以换清华源 juejin.cn/post/684490…

安装

如果还没有安装Java, 可以先安装Java:

1、安装最新版本的java 13

brew cask install java

2、安装jdk8

参考:stackoverflow.com/questions/5…

brew cask install adoptopenjdk/openjdk/adoptopenjdk8
# 或者
brew cask install homebrew/cask-versions/adoptopenjdk8

3、在Mac中安装不同版本Java时的切换使用

参考:code000two.github.io/2019/01/17/…

➜  ~ cat ~/.zshrc
# JAVA_HOME SWITCH
# default java13
export JAVA_HOME=$JAVA_13_HOME
# set JDK 8
export JAVA_8_HOME=$(/usr/libexec/java_home -v 1.8)
# set JDK 13
export JAVA_13_HOME=$(/usr/libexec/java_home -v 13.0)
# switch
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk13='export JAVA_HOME=$JAVA_13_HOME'

4、安装kafka和zookeeper

➜  ~ brew install kafka
==> Installing dependencies for kafka: zookeeper
==> Installing kafka dependency: zookeeper
==> Downloading https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles/zookeeper-3.
######################################################################## 100.0%
==> Pouring zookeeper-3.4.14.catalina.bottle.tar.gz
==> Caveats
To have launchd start zookeeper now and restart at login:
  brew services start zookeeper
Or, if you don't want/need a background service you can just run:
  zkServer start
==> Summary
🍺  /usr/local/Cellar/zookeeper/3.4.14: 430 files, 36.5MB
==> Installing kafka
==> Downloading https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles/kafka-2.3.1.
######################################################################## 100.0%
==> Pouring kafka-2.3.1.catalina.bottle.tar.gz
==> Caveats
To have launchd start kafka now and restart at login:
  brew services start kafka
Or, if you don't want/need a background service you can just run:
  zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
==> Summary
🍺  /usr/local/Cellar/kafka/2.3.1: 171 files, 59.5MB
==> `brew cleanup` has not been run in 30 days, running now...
Removing: /usr/local/Cellar/readline/8.0.0_1... (48 files, 1.5MB)
Removing: /usr/local/Cellar/sqlite/3.28.0... (11 files, 3.7MB)
Removing: /Users/luzihang/Library/Logs/Homebrew/fcrackzip... (64B)
==> Caveats
==> zookeeper
To have launchd start zookeeper now and restart at login:
  brew services start zookeeper
Or, if you don't want/need a background service you can just run:
  zkServer start
==> kafka
To have launchd start kafka now and restart at login:
  brew services start kafka
Or, if you don't want/need a background service you can just run:
  zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties

5、修改配置

修改 /usr/local/etc/kafka/server.properties, 找到 listeners=PLAINTEXT://:9092 那一行,把注释取消掉。 然后修改为:

############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://localhost:9092

启动

To have launchd start zookeeper now and restart at login:
  brew services start zookeeper
Or, if you don't want/need a background service you can just run:
  zkServer start
  
To have launchd start kafka now and restart at login:
  brew services start kafka
Or, if you don't want/need a background service you can just run:
  zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties

1、以服务的方式启动

brew services start zookeeper
brew services start kafka

2、或者临时启动

$ zkServer start
$ kafka-server-start /usr/local/etc/kafka/server.properties

创建Topic

➜  ~ kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.
➜  ~

产生消息

➜  ~ kafka-console-producer --broker-list localhost:9092 --topic test
>HELLO Kafka
>

消费消息

简单方式:

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

如果使用消费组:

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --group test-consumer1 --from-beginning