kafka-console-生产者:找不到命令

Sac*_*hin 4 bash amazon-ec2 amazon-web-services apache-kafka

连接到 EC2 实例并下载 Kafka 和 Java 后,我运行了以下命令:

export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
bin/zookeeper-server-start.sh -daemon config/zookeeper-properties
bin/kafka-server-start.sh config/server-properties
Run Code Online (Sandbox Code Playgroud)

然后我尝试运行命令:

kafka-console-producer --broker-list IP:9092 --topic mytopic
Run Code Online (Sandbox Code Playgroud)

它说

找不到命令

Mat*_*ava 5

这与Kafka本身无关。bin存储所有脚本的Kafka目录kafka-console-producer不包含在 PATH 变量中,这意味着如果您不指定这些脚本的确切位置,您的操作系统将无法找到这些脚本。

您可以修改 PATH 变量,使其包含 Kafkabin文件夹。运行这个命令:

export PATH="${PATH}:/path-to-bin-dir/bin"
Run Code Online (Sandbox Code Playgroud)

不过,这不会在重新启动后持续存在,因此您应该将此语句包含在启动文件之一中,例如~/.bashrc.

另一种选择是通过指定命令的绝对路径(从文件系统的根目录开始)来简单地运行该命令。

/path-to-bin-dir/bin/kafka-console-producer --broker-list IP:9092 --topic mytopic
Run Code Online (Sandbox Code Playgroud)

或者您可以简单地cd进入该bin文件夹并从那里运行它。

./kafka-console-producer --broker-list IP:9092 --topic mytopic
Run Code Online (Sandbox Code Playgroud)