如何在后台运行Kafka Connect connect-distributed.sh(守护进程)?

问题描述 投票:0回答:1

我通过ssh连接到远程主机,然后在后台运行

./connect-distributed ../etc/kafka/cusom-connect-distr.properties

而终端现在无法输入。

我试过 -daemon 选项,但它没有任何作用

我也试着在后台用 &但当我关闭终端时,连接过程与终端一起死亡。

那么我如何在守护模式下运行connect-distributed呢?

apache-kafka apache-kafka-connect confluent
1个回答
0
投票

我的猜测是你的Kafka连接进程在后台运行,但输出日志是在标准输出上报告的。


现在,为了将输出引导到日志文件,你有很多选项。

  1. 使用... nohup
nohup ./bin/connect-distributed ../etc/kafka/cusom-connect-distr.properties & 

并将日志报告给 nohup.out

  1. 将标准输出和标准误差直接存入文件
./bin/connect-distributed ../etc/kafka/cusom-connect-distr.properties &> kafka-connect.logs

而输出将在 kafka-connect.logs

  1. 配置Kafka连接 log4j 适当

默认情况下。etc/kafka/connect-log4j.properties 的样子。

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.logger.org.apache.zookeeper=ERROR
log4j.logger.org.I0Itec.zkclient=ERROR
log4j.logger.org.reflections=ERROR

确保更改配置,使你的日志被写入日志文件。例如:

log4j.rootLogger=INFO, logFile

log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logFile.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.logFile.File=/tmp/connect-worker.log
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.logger.org.apache.zookeeper=ERROR
log4j.logger.org.I0Itec.zkclient=ERROR
log4j.logger.org.reflections=ERROR

0
投票

我试过-daemon选项,但它没有任何作用。

它应该启动一个后台进程。你不会在CLI中看到任何东西

© www.soinside.com 2019 - 2024. All rights reserved.