启动kafka时输入行太长

ukxgm1gy  于 2021-06-07  发布在  Kafka
关注(0)|答案(16)|浏览(1644)

我正在尝试在windows上运行kafka消息队列。
我在这个教程里-https://dzone.com/articles/running-apache-kafka-on-windows-os
当我尝试用comand-.\bin\windows\kafka-server-start.bat.\config\server.properties运行它时
我得到一个错误:输入行太长了。命令的语法不正确。
Kafka位置-c:\kafka\u 2.11-1.0.0

h7wcgrx3

h7wcgrx31#

把Kafka路径移到更小的根路径就解决了这个问题。例如“c:\kafka”

m0rkklqb

m0rkklqb2#

将kafka文件夹重命名为较短的名称,如kafka2。打开新的命令提示符(不要使用现有的/打开的命令提示符)

83qze16e

83qze16e3#

这是因为文件夹名“kafkaèu 2.11-1.0.0”的路径很长。只需将文件夹重命名为较小的名称,如“kafka”。

os8fio9y

os8fio9y4#

问题
这个 kafka-run-class.bat 文件执行一系列类路径:concat调用,这些调用使类路径非常长。
根据您的环境,过长:windows cmd.exe环境限制为8191个字符。
解决
编辑 kafka-run-class.bat 以便。。。
使其不在其他地方使用或设置类路径
使路径更短,以便concat生成小于8191个字符的字符串
使concat使用整个文件夹而不是每个jar(通过 libs/* )
例子
下面是一个编辑到 kafka-run-class.bat (来源)使用第二种方法:
替换。。。

rem Classpath addition for release
for %%i in ("%BASE_DIR%\libs\*") do (
    call :concat "%%i"
)

... 通过这个。。。

rem Classpath addition for release
call :concat "%BASE_DIR%\libs\*;"
yquaqz18

yquaqz185#

windows命令行存在命令执行时间过长的问题。改用powershell。

sf6xfgos

sf6xfgos6#

我也有这个问题。调试bat文件,您可以看到,在调用返回此错误的命令并使用相对路径调用它之前,更改到目录不会影响结果!问题是classpath变量。对我来说,最简单的方法就是使用以下命令:

subst K: <absolute-long-path-to-kafka-dir-with-version>

这样我就可以换成这个虚拟驱动器了 cd /d K: 并毫无问题地执行脚本:

K:\bin\windows\kafka-server-start.bat K:\config\server.properties

我编写了一个 Package 器脚本,在再次执行之前删除classpath变量,因为每次执行时都会附加这些值(相同的cmd.exe)。

set CLASSPATH=
cd /d K:
K:\bin\windows\kafka-server-start.bat K:\config\server.properties
vi4fp9gy

vi4fp9gy7#

把Kafka放在你的驱动器的根附近,使它的路径非常短。
当您运行那些包含在windows目录中的kafka批处理文件时,它们会与您的环境变量(classpath)混在一起,并且可以创建一个很长的输入行来实际运行命令/jar。
正如其他一些人所指出的,确保你下载的是二进制文件(是的,尽管在kafka网站上它被称为scala二进制文件,而且没有提到windows的任何地方,这会让人困惑),而不是源代码。同样让外行用户感到困惑的是,源代码发行版在解压缩时看起来类似于二进制发行版,例如它拥有所有批处理文件,但它们不会运行。

rpppsulh

rpppsulh8#

以上两种选择对我都不起作用。
我刚刚将一个解压缩的目录移动到c:/drive,并以管理员模式启动powershell,并尝试了所需的命令,zookeeper和broker顺利启动。

9lowa7mx

9lowa7mx9#

将所有文件放入其他驱动器,如d:或e:并运行命令

vsmadaxz

vsmadaxz10#

我把所有的东西都复制到了c:/tools/kafka上,效果很好。问题确实是通往Kafka的路太长了。

3zwtqj6y

3zwtqj6y11#

我试着提取下载的Kafka压缩文件联系人

C:\Kafka and ran the Kafka-server-start.bat

从命令提示符(不要以管理员的身份运行命令提示符)执行。
以管理员身份运行命令提示符对我造成了问题。

km0tfn4u

km0tfn4u12#

删除 kafka_2.13-2.5.0 如果有,保持文件夹名称尽可能简单,如 Kafka ,还要确保路径中没有空格。
一个工作示例:文件夹位于 C:\kafka .
一个不起作用的例子:文件夹位于 C:\kafka 2\ .

pieyvz9o

pieyvz9o13#

对于windows,只需将kafka文件夹路径设为短,例如-d/dev/kafka/bin/windows

xcitsw88

xcitsw8814#

关闭zookeeper和kafka cmd窗口,然后重新打开它对我来说很有用。我尝试了以上所有选项,除了powershell。

mkshixfv

mkshixfv15#

启动Kafka时输入行太长

我试着按下面的命令,但给了我同样的错误
c:\kafka>\bin\windows\zookeeper-server-start.bat.\config\zookeeper.properties
这是因为当我们在同一个cmd上连续执行同一个命令时,path在classpath中得到append。
关闭命令提示符并再次打开,然后启动zookeeper服务器。

相关问题