无法成功绑定到端口2181

tquggr8v  于 2022-09-21  发布在  Apache
关注(0)|答案(4)|浏览(206)

我正在遵循https://github.com/PacktPublishing/Apache-Kafka-Series---Kafka-Connect-Hands-on-Learning,我有下面的docker-compose文件,并使用Mac。

version: '2'

services:
  # this is our kafka cluster.
  kafka-cluster:
    image: landoop/fast-data-dev:cp3.3.0
    environment:
      ADV_HOST: localhost         # Change to 192.168.99.100 if using Docker Toolbox
      RUNTESTS: 0                 # Disable Running tests so the cluster starts faster
    ports:
      - 2181:2181                 # Zookeeper
      - 3030:3030                 # Landoop UI
      - 8081-8083:8081-8083       # REST Proxy, Schema Registry, Kafka Connect ports
      - 9581-9585:9581-9585       # JMX Ports
      - 9092:9092                 # Kafka Broker

当我奔跑时

docker-compose up kafka-cluster
[+] Running 1/0
 ⠿ Container code-kafka-cluster-1  Created                                                       0.0s
Attaching to code-kafka-cluster-1
code-kafka-cluster-1  | Setting advertised host to 127.0.0.1.
code-kafka-cluster-1  | runtime: failed to create new OS thread (have 2 already; errno=22)
code-kafka-cluster-1  | fatal error: newosproc
code-kafka-cluster-1  | 
code-kafka-cluster-1  | runtime stack:
code-kafka-cluster-1  | runtime.throw(0x512269, 0x9)
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/panic.go:566 +0x95
code-kafka-cluster-1  | runtime.newosproc(0xc420026000, 0xc420035fc0)
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/os_linux.go:160 +0x194
code-kafka-cluster-1  | runtime.newm(0x5203a0, 0x0)
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/proc.go:1572 +0x132
code-kafka-cluster-1  | runtime.main.func1()
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/proc.go:126 +0x36
code-kafka-cluster-1  | runtime.systemstack(0x593600)
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/asm_amd64.s:298 +0x79
code-kafka-cluster-1  | runtime.mstart()
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/proc.go:1079
code-kafka-cluster-1  | 
code-kafka-cluster-1  | goroutine 1 [running]:
code-kafka-cluster-1  | runtime.systemstack_switch()
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/asm_amd64.s:252 fp=0xc420020768 sp=0xc420020760
code-kafka-cluster-1  | runtime.main()
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/proc.go:127 +0x6c fp=0xc4200207c0 sp=0xc420020768
code-kafka-cluster-1  | runtime.goexit()
code-kafka-cluster-1  |         /usr/lib/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc4200207c8 sp=0xc4200207c0
code-kafka-cluster-1  | Could not successfully bind to port 2181. Maybe some other service
code-kafka-cluster-1  | in your system is using it? Please free the port and try again.
code-kafka-cluster-1  | Exiting.
code-kafka-cluster-1 exited with code 1

注意:%sudo lsof -i :2181-此命令不显示输出。

yrefmtwq

yrefmtwq1#

Landoop/fast-data-dev库不能在arm64 Apple M1芯片上运行。

在这里,您可以通过更新Dockerfile来修复问题。Https://github.com/lensesio/fast-data-dev/issues/175#issuecomment-947001807

iqih9akk

iqih9akk2#

更改ZooKeeper端口Map,如下所示

ports:
      - 2182:2181                 # Zookeeper
xhv8bpkk

xhv8bpkk3#

您可以使用以下命令构建新的扩展坞镜像并运行它-

git clone https://github.com/faberchri/fast-data-dev.git
cd fast-data-dev
docker build -t faberchri/fast-data-dev .
docker run --rm -p 3030:3030 faberchri/fast-data-dev
jyztefdp

jyztefdp4#

错误表明您已经在端口2181上运行了其他程序。所以要么停止它,要么删除端口Map,因为你不应该因为使用Kafka而连接到ZooKeeper。从最新的Kafka版本(我怀疑链接的课程是否会使用)起,从Kafka CLI工具中删除了--zookeeper标志

其他解决方案是不使用Landoop容器。网上有很多其他Docker为Kafka创作的文件

总体而言,我建议不要使用Docker来开发Kafka Connector。

相关问题