【发布时间】:2016-10-07 06:34:59
【问题描述】:
如何在windows上运行kafka rest代理。
我下载了 confluent-2.0.1-2.11.7.tar.gz
在 windows 文件夹中我看不到 kafka-rest-start。
【问题讨论】:
标签: apache-kafka confluence-rest-api confluent-platform
如何在windows上运行kafka rest代理。
我下载了 confluent-2.0.1-2.11.7.tar.gz
在 windows 文件夹中我看不到 kafka-rest-start。
【问题讨论】:
标签: apache-kafka confluence-rest-api confluent-platform
Windows 当前不是受支持的平台。但是,如果您调整脚本,它应该可以正常工作。即使只是使用适当的类路径运行 java io.confluent.kafkarest.KafkaRestMain 也应该可以工作。
【讨论】:
这是他们在 bash 脚本末尾实际执行的命令示例:
java -Xmx256M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dlog4j.configuration=file:C:/Dev/kafka/confluent-4.0.0/etc/kafka-rest/log4j.properties -cp .;C:/Dev/kafka/confluent-4.0.0/target/kafka-rest-*-development/share/java/kafka-rest/*;C:/Dev/kafka/confluent-4.0.0/share/java/confluent-common/*;C:/Dev/kafka/confluent-4.0.0/share/java/rest-utils/*;C:/Dev/kafka/confluent-4.0.0/share/java/kafka-rest/* io.confluent.kafkarest.KafkaRestMain C:/Dev/kafka/confluent-4.0.0/etc/kafka-rest/kafka-rest.properties
如果您想尝试一下,请确保将路径更改为您的路径。
【讨论】:
也许,这个答案会帮助任何刚接触 Kafka 并偶然发现这种情况的人,比如我 :)。
一周前我正在寻找同样问题的答案,遇到了运行 jar 文件的官方建议(在此路径中 confluent-x.x.x\share\java\kafka-rest)在 Windows 中,但没有成功。
无论是否指定正确的类路径和io.confluent.kafkarest.KafkaRestMain,总是会遇到此错误no main attribute found。
我什至尝试使用 [babun]:http://babun.github.io/ 运行为 Linux 发行版打包的 shell 脚本,但这导致了类似 Error: Could not find or load main class io.confluent.kafkarest.KafkaRestMain 的错误。
最终,使用 zookeeper、kafka、schema-registry、kafka-rest 构建的 docker 镜像就像一个魅力。 这是官方页面,其中包含有关图像名称的信息,进一步参考它的文档:https://hub.docker.com/r/confluentinc/cp-kafka-rest/
提取此映像后,将创建一个新的虚拟机,其中包含另外四个映像(每个服务一个映像,例如 zookeeper、Kafka、schem-registry 和 Kafka-rest)。运行图像会运行一个单独的 Docker 容器。
本指南应该可以帮助您快速入门: http://docs.confluent.io/current/cp-docker-images/docs/quickstart.html
最后,如果您想将作为 Docker 容器运行的 kafka REST 代理服务器公开给外部网络(例如 Windows 机器,它是与这些容器不同的网络的一部分),只需提及 Docker 主机 IP(通过在KAFKA_REST_LISTENERS 中点击docker-machine ip <hostname>) 并使用-p 选项公开端口。
像这样:
docker run -d \
--net=host \
--name=kafka-rest \
-p 8082:8082 \
-e KAFKA_REST_ZOOKEEPER_CONNECT=localhost:32181 \
-e KAFKA_REST_LISTENERS=http://192.168.99.100:8082 \
-e KAFKA_REST_SCHEMA_REGISTRY_URL=http://localhost:8081 \
-e KAFKA_REST_HOST_NAME=localhost \
confluentinc/cp-kafka-rest:3.2.1
如果一切正常,您将能够在 Windows 机器上通过此 url http://<Docker_host_IP>:8082 访问 REST 代理。
【讨论】:
我能够运行@lexler 上面提到的命令,但在 cygwin 之外。 (直接使用 windows 命令提示符。)
【讨论】: