WindowsでKafkaメッセージキューを実行しようとしています。
私はこのチュートリアルを使用しています- https://dzone.com/articles/running-Apache-kafka-on-windows-os
コマンドで実行しようとすると-。\ bin\windows\kafka-server-start.bat。\ config\server.properties
エラーが表示されます:入力行が長すぎます。コマンドの構文が正しくありません。
kafkaの場所-C:\ kafka_2.11-1.0.0
これは、フォルダー名「kafka_2.11-1.0.0」のためにパスが長いためです。フォルダの名前を「kafka」などの小さな名前に変更します。
問題
kafka-run-class.bat
ファイルは、CLASSPATHを非常に長くする一連のCLASSPATH:concat呼び出しを実行します。
環境によっては、長すぎる:Windowsのcmd.exe環境には8191文字の制限があります。
ソリューション
kafka-run-class.bat
を編集して...
libs/*
経由で)concatが単一のjarではなくフォルダ全体を使用するようにする例
次に、2番目のアプローチを使用するkafka-run-class.bat
( source )の編集例を示します。
交換...
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\*;"
Windowsコマンドラインには、長いコマンドの実行に関する問題があります。代わりにPowershellを使用してください。
すべてのファイルをD:やE:などの他のドライブに入れて、コマンドを実行します
ドライブのルートの近くにkafkaを配置して、ドライブへのパスが非常に短くなるようにします。
Windowsディレクトリに含まれるこれらのKafkaバッチファイルを実行すると、それらは環境変数(クラスパス1)に干渉し、実際にコマンド/ jarを実行する非常に長い入力行を作成できます。
また、他の人が指摘したように、バイナリをダウンロードしたことを確認してください(Kafkaサイトでは、Scalaバイナリと呼ばれ、Windowsについての言及はありませんがソースコードではなく、どこでも混乱する可能性があります。また、一般ユーザーに混乱を招きますが、ソースディストリビューションは圧縮解除するとバイナリディストリビューションに似ています。たとえば、すべてのバッチファイルが含まれていますが、実行されません。
上記の両方のオプションは私には機能しませんでした。
解凍したディレクトリをC:/ドライブに移動して、Power ShellをAdministratorモードで起動し、目的のコマンドを試したところ、動物園係とブローカーがスムーズに起動しました。
kafkaフォルダーの名前をkafka2のような短い名前に変更します。新しいコマンドプロンプトを開きます(既存/開いているコマンドプロンプトは使用しないでください)。
すべてをC:/ tools/kafkaにコピーしましたが、正常に動作します。問題は確かにカフカへの道が長すぎることでした。