私は Kafka Windowsのメッセージキューをテストの目的で(プロダクション用ではなく)インストールしようとしています。
Apacheをインストールする方法に関するこの記事を見つけましたKafka 0.8: http://janschulte.wordpress.com/2013/10/13/Apache-kafka-0-8 -on-windows /
良い記事ですが、残念ながら時代遅れです。
誰かがそれを達成する方法を知っていますか?
わかりました、それは最終的に複雑ではありません:)
唯一の手順は次のとおりです。
C:/Kafka
)\bin\kafka-run-class.sh
を編集し、ファイルの最後で変更します
exec $Java $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
に
exec Java $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp `cygpath -wp $CLASSPATH` $KAFKA_OPTS "$@"
Environment Variablesで、JavaをPathシステム変数:
それだけです。ZooKeeperを実行して、Kafka=サーバーと トピックやもので遊んでください ..
手順は次のとおりです。
Cmdプロンプトを開き、zookeeper-を起動します
C:\ kafka_2.12-0.10.2.1>。\ bin\windows\zookeeper-server-start.bat。\ config\zookeeper.properties
新しいコマンドプロンプトを開き、Apache Kafka-を起動します
C:\ kafka_2.12-0.10.2.1>。\ bin\windows\kafka-server-start.bat。\ config\server.properties
新しいコマンドプロンプトを開き、1つのパーティションと1つのレプリカのみを持つjavainuse-topicという名前のトピックを作成します。
C:\ kafka_2.12-0.10.2.1>。\ bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic javainuse-topic
次に、新しいコマンドプロンプトを開き、上記で作成したjavainuse-topicにメッセージを送信するプロデューサーを作成して、メッセージを送信します-Hello World Javainuse to it-
C:\ kafka_2.12-0.10.2.1>。\ bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic javainuse-topic
Hello World Javainuse
最後に、新しいコマンドプロンプトを開き、上記で作成したトピックjavainuse-topicをリッスンするコンシューマーを起動します。プロデューサーを使用して送信したメッセージを取得します
C:\ kafka_2.12-0.10.2.1>。\ bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic javainuse-topic --from-beginning
スクリーンショットとビデオを含む詳細な手順は、このブログで利用可能です Apache Kafkaを始めよう
まだこれについて疑問に思っている他の誰かの利益のためのより新しい答えは、私はバイナリをダウンロードし、すべてが箱から出してすぐに動作しました。ただし、ソースバージョンは機能しませんでした。
これらは、Windowsでkafka=を実行するために従った手順です
zookeeper-3.3.6.tar.gz
\zookeeper-3.3.6\bin> .\zkServer.cmd
これで、localhost:2181
でZookeeperインスタンスが起動します。kafka_2.10-0.10.0.1.tgz
.\config\server.properties
が見つかります.\config\server.properties
でlog.dirs=c:/kafka/kafka-logs
を置き換えます./bin/windows
フォルダー内にあります.\bin\windows\kafka-server-start.bat .\config\server.properties
おそらく、Kafka=は、Windowsの.batファイルにbinフォルダーの下にあり、実行に役立つKafka。ただし、これらのbatファイルはバージョン0.8.0以降に更新されておらず、Kafkaのロジックの一部が変更されています(トピックなどに関して)。
この問題を解決するために2つの方法を試しました。 1つは、CygwinまたはMinGWを使用してLinux環境をシミュレートし、Linuxシェルスクリプトを実行することですが、パス名に関連する他の問題が山ほどあります。もう1つの解決策は、より単純でトラブルの少ない方法ですが、Windowsのbatファイルの修正バージョンを使用することです。
これを参照してください ブログ投稿 。
バージョン0.9.0で。 Windows用の「bin」フォルダーにスクリプトがあります。それらを使用できます。
これで動作します!
Windowsシェルからの実行
2019年4月の時点で、ウェブサイトからKafkaをダウンロードすると、ほとんどすぐにWindowsで動作しました
Windowsバージョンの.batファイルのダウンロードと使用については、ここで説明します。 https://kafka.Apache.org/quickstart
これを行うと、2つの問題が発生しました。
1)Java_HOMEがサポートされていないJDKに設定され、この種のエラーが発生した
スレッド「メイン」の例外Java.lang.VerifyError:初期化されていないオブジェクトが後方ブランチに存在する209
JDK 11に置き換えることで問題は解決しました。
2)Java_HOMEには、「指定されたファイルが見つかりません」というエラーを引き起こすスペースを含めることはできません。これを修正するために、set Java_HOME=C:\Progra~1\Java\jdk-11.0.1
のような短縮パスを使用しました
Cygwinからの実行
.batファイルの代わりに、cygwinから.shファイルを実行したい場合、実際にはかなりの作業が必要です。その後でも後で問題が発生する場合があります。このオプションは本当にお勧めできませんが、いくつかの目的には非常に便利なので使用します。
Java_HOMEパスにスペースが含まれている場合「C:\ Program Files\Java\Jdk ...」と表示されます。
bin/kafka-run-class.sh:305行目:exec:C:\ Program:が見つかりません
1つの解決策は、jdkをスペースなしのパスにコピーし、それに応じてJava homeを変更します。
JDKの場所を変更したくない場合は、cygwin env変数を次のように変更できます。
Java_HOME="/cygdrive/c/Program Files/Java/jdk-11.0.1"
そして、行を変更します
exec $Java $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
に
exec "$Java" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
Kafka-run-class.shのログパラメーターに別の問題があり、行を置き換える必要がありました
KAFKA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=102400"
と
KAFKA_GC_LOG_OPTS="-Xlog:gc*"
これらのすべての変更の後でも、ここで説明するように、ログディレクトリ内の互換性のないWindowsスタイルのパスのために、Kafkaシャットダウンの問題が発生することがあります。 Kafka 1.0はFATAL SHUTDOWNエラーで停止します。Logsディレクトリが失敗しました 要するに、WindowsディレクトリからKafka .batスクリプトを実行する方が良いでしょう...
はい、WindowsマシンでZOOKEEPERとApache Kafkaを構成しました。ZOOKEEPERの場合は、ZOOKEEPER_HOMEを構成し、パスも設定してから、Zoo.sample.cfgの名前をZoo.cfgに変更します。 Zoo.cfgのdataDirのパス
Apache Kafkaの場合は、binフォルダーからサーバーを解凍して起動し、Kafkaディレクトリの下のwindowsフォルダーからProducer/Consumerを起動します
私はちょうど数日前にWindowsにApache Kafkaをインストールしようとし、投稿の手順を記録しました Install and setup Kafka= Windows 。これがお役に立てば幸いです。
これは古いスレッドですが、2018年にこれを読んでいる人には、kafka=をDockerで実行することをお勧めします。これに関する多くのチュートリアルの1つ: https://iteritory.com/kafka-docker -image-installation-usage-tutorial-windows /
ChocolateyとPowershellの場合:
chocolatey.exe install kafka
-> installs Kafka into C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\
-バージョンはもちろん異なる場合がありますC:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\
を使用してPowerShellパスにnotepad $PROFILE
PowerShellを再起動した後kafka-console-consumer
はコマンドとして機能するはずです。
Ssl.propertiesをキーストアとトラストストアとともにインストールする必要もあります。それらを入れますC:\ProgramData\kafka
そしてそれをssl.properties
(バックスラッシュのエスケープに注意してください):
security.protocol=SSL
ssl.truststore.location=C:\\ProgramData\\kafka\\kafka-truststore.jks
ssl.truststore.password=PASSWORD
ssl.keystore.location=C:\\ProgramData\\kafka\\kafka-keystore.jks
ssl.keystore.password=PASSWORD
ssl.key.password=PASSWORD
client.id=console-test
今ではkafka-consumer-groups --bootstrap-server SERVERNAME:9094 --command-config C:\ProgramData\kafka\ssl.properties --list
は、最初にファイアウォールの警告を表示する必要があります。これを受け入れてから、グループのリストを出力する必要があります。