五、配置server.properties
kafka broker启动时需要加载server.properties文件。该文件默认位置是在config目录下,因此需要设置运行kafka.Kafka.scala时的Program arguments为../config/server.properties以保证Kafka.scala能够找到该配置文件。
另外,由于kafka broker会将一些元数据信息保存在zookeeper中,因此在启动kafka broker之前必须要先有一个启动着的zookeeper实例或集群,然后我们还需要在server.properties文件更新zookeeper连接信息(主机名:端口CSV列表),如下图所示:
# Zookeeper connection string (seezookeeper docs for details).
# This is a comma separated host:portpairs, each corresponding to a zk
# server. e.g."127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chrootstring to the urls to specify the
# root directory for all kafka znodes. zookeeper.connect=10.11.207.97:2181
# Timeout in ms for connecting to zookeeper zookeeper.connection.timeout.ms=6000 六、启动kafka broker
Okay! 现在可以说一切准备就绪了,可以运行kafka了,如果前面所有步骤都执行正确的话,一个kafka broker进程应该会正确地启动起来,如下图所示:
另外说一下,如果启动时没有看到任何log输出,可以将config目录下的log4j.properties文件拷贝到core\src\main\scala目录下,应该就能解决此问题。
好了,至此你就可以使用这个可运行的环境来研究Kafka源代码了。祝大家好运:) 七、log4j.properties文件路径设置
启动kafka server很奇怪, log4j.properties文件找不到,报如下错误。
log4j:WARN No appenders could be found forlogger (kafka.utils.VerifiableProperties).
log4j:WARN Please initialize the log4j system properly.
只有把 log4j.properties放置到src/main/Scala路径下,才能找到文件,然后运行程序,正确输出日志信息。
通过如上7步后就可以正确启动kafka程序,进行相关debug,并研究其源代码了。