“I am a cage, in search of a bird.”
― Franz Kafka
Kafka 适合的作业系统是 Linux 和 Solaris,并且在这两个作业系统有过很多测试,在 Windows 上目前仍然有部分功能未支援。
今天的范例是在 mac os Catalina v10.15.4环境下安装 Kafka
linux 环境安装 Kafka、Zookeeper,到官网下载 Kafka官方载点、Zookeeper官方载点
$ wget https://dlcdn.apache.org/kafka/2.8.0/kafka-2.8.0-src.tgz
$ tar -zxf kafka-2.8.0-src.tgz
$ wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
$ tar -zxf apache-zookeeper-3.7.0-bin.tar.gz
mac 环境快速安装首选是用 Homebrew
brew update
brew install kafka
brew info kafka
查看版本号、安装路径、如何启动$ brew info kafka
kafka: stable 2.8.0 (bottled)
Open-source distributed event streaming platform
https://kafka.apache.org/
/usr/local/Cellar/kafka/2.8.0 (884 files, 82.4MB) *
Poured from bottle on 2021-05-31 at 17:53:04
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/kafka.rb
License: Apache-2.0
==> Dependencies
Required: openjdk ✘, zookeeper ✔
==> 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 -daemon /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
==> Analytics
install: 4,832 (30 days), 15,882 (90 days), 67,331 (365 days)
install-on-request: 4,829 (30 days), 15,876 (90 days), 67,114 (365 days)
build-error: 0 (30 days)
这边可以蛮多资讯看到安装的路径/usr/local/Cellar/kafka/2.8.0
,以及启动 zookeeper 和 kafka 的指令 zookeeper-server-start -daemon /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
,最後可以看到安装的数量,近一年有六万多次,比预期的少一些。
brew services list
=> 会列出已安装的清单,可以查看到目前 kafka 和 zookeeper 是停止状态$ brew services list
Name Status User Plist
kafka stopped
zookeeper stopped
dataDir=/usr/local/var/lib/zookeeper
# zookeeper 开放给 zookeeper 连结的 port
clientPort=2181
# 因为不是 production 这边将每个 IP 可以连结数量限制先关闭
maxClientCnxns=0
# 预设是将 adminserver 关闭,为的是避免 port 重复的冲突
admin.enableServer=false
# admin.serverPort=8080
listeners=PLAINTEXT://localhost:9092
# broker 的 ID,每一个 broker 的 ID 必须是唯一的、不能和其他重复。
broker.id=0
# broker 监听的 host 和 port
listeners=PLAINTEXT://localhost:9092
# 提供给 producers 和 consumers 的 hostname 和 port,这边如果没有设定会直接读取上面的 listeners,如果 listeners 也没有设定会取用 java.net.InetAddress.getCanonicalHostName() 的回传值
#advertised.listeners=PLAINTEXT://your.host.name:9092
# broker server 接收 requests 和传送 responses 的 threads 数量
num.network.threads=3
# broker server 处理 requests 的 threads 数量(包含磁碟I/O)
num.io.threads=8
# 指定 Socket 服务器所使用的传送缓冲区
socket.send.buffer.bytes=102400
# 指定 Socket 服务器所使用的接收缓冲区
socket.receive.buffer.bytes=102400
# 指定 Socket 服务器所接受的要求大小上限
socket.request.max.bytes=104857600
############################# Log Basics #############################
# 资料存放路径,可存放到多个位置,将路径用逗号分开即可
log.dirs=/usr/local/var/lib/kafka-logs
# 预设新建主题时会创建几个分区
num.partitions=1
# 复原资料用的 thread 数量
num.recovery.threads.per.data.dir=1
# 预设保存资料一周
log.retention.hours=168
# 每个 log segment 档案的大小上限
log.segment.bytes=1073741824
# 多久检查一次 log segment 需不需要被删除
log.retention.check.interval.ms=300000
# zookeeper 的 port
zookeeper.connect=localhost:2181
cd /usr/local/Cellar/kafka/2.8.0/libexec
kafka-server-start /usr/local/etc/kafka/server.properties
kafka-server-start -daemon /usr/local/etc/kafka/server-1.properties
ps -eaf | grep kafka/server-1.properties
,找到PID後cd /usr/local/Cellar/kafka/2.8.0/libexec
zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
zookeeper预设会占用2183,kafka占用9092
$ lsof -n -i:9092 | grep LISTEN
java 13682 username 182u IPv6 0x6b8b3949168d06d5 0t0 TCP 127.0.0.1:XmlIpcRegSvc (LISTEN)
$ lsof -n -i:2183 | grep LISTEN
java 19634 username 119u IPv6 0xf4aea82af835c653 0t0 TCP *:eforward (LISTEN)
<<: 没钱就跟别人要钱,别人的钱就是我的钱,但我的钱还是我的钱
近期面试掀起了一波考演算法的风气,就好像回到大学指考那样,老师说这题会考一定要记起来,因此掀起了一...
到底什麽是AI? 我想大部份的人应该都对AI/人工智慧/人工智能这些字眼不陌生,尤其是在AlphaG...
透过感觉将外在刺激带给大脑的过程中, 感知系统的敏感程度可以用绝对阀值显示, 代表着能感受到刺激的最...
今日练习档 ԅ( ¯་། ¯ԅ) 经过昨天详细的介绍SUM家族後,今天理所当然要介绍与其相似的AVE...
思考重点 组织垂直分层的好处是什麽 网路自上而下的流程与分层的关联 核心知识 什麽是网路分层 网路分...