How to install Kafka on Windows?

前端 未结 11 1910
無奈伤痛
無奈伤痛 2020-12-02 09:27

I\'m trying to install Kafka message queue on Windows for testing purposes (not for production).

I found this article on how to install Apache Kafka

11条回答
  •  借酒劲吻你
    2020-12-02 09:56

    Running From A windows Shell

    As of April 2019, downloading Kafka from their website worked on Windows almost right out of the box

    Downloading and using the windows version .bat files is described here: https://kafka.apache.org/quickstart

    I ran into two problems when I did this:

    1) JAVA_HOME was set to an unsupported JDK which led to this kind of error

    Exception in thread "main" java.lang.VerifyError: Uninitialized object exists on backward branch 209

    Replacing with JDK 11 solved the problem.

    2) The JAVA_HOME must not contain spaces which caused a 'cannot find the specified file' error. To fix this I used a shortened path like set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1


    Running From Cygwin

    If instead of the .bat files, you want to run the .sh files from cygwin, there is actually quite a bit that needs to be done, and even after that there may be problems that come up later. I can't really recommend this option, but I do use it as it's pretty convenient for some purposes.

    If your JAVA_HOME path contains a space e.g. "C:\Program Files\Java\Jdk..." you will see something like this:

    bin/kafka-run-class.sh: line 305: exec: C:\Program: not found

    One solution is to copy the jdk to a path without spaces, and change the Java home accordingly.

    If you don't want to change the JDK location, you can change the cygwin env variable as follows:

    JAVA_HOME="/cygdrive/c/Program Files/Java/jdk-11.0.1"
    

    and change the line

    exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
    

    to

    exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
    

    There was another problem with the log parameters in kafka-run-class.sh and I had to replace the line

    KAFKA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=102400"
    

    with

    KAFKA_GC_LOG_OPTS="-Xlog:gc*"
    

    And even after all these changes I occasionally run into problems of Kafka shutting down because of an incompatible windows style path in the logs directories as described here: Kafka 1.0 stops with FATAL SHUTDOWN error. Logs directory failed In short, you may be better off running the Kafka .bat scripts from the windows directory...

提交回复
热议问题