Tag: apache kafka connect

卡夫卡连接logindocker集装箱

我有一个需要作为docker容器运行的kafka连接jar。 我需要捕获容器中的日志文件上的所有连接日志(最好在/ etc / kafka / kafka-connect-logs目录中),稍后可以将其推送到本地主机(在其上运行docker引擎)docker中的卷。 当我更改我的connect-log4j.properties附加到日志文件时,我看到没有创build日志文件。 如果我没有使用docker的情况下尝试,通过更改connect-log4j.properties将日志写入日志文件来运行本地linux虚拟机上的kafka连接,它可以很好地工作,但不能从docker中运行。 任何build议将是非常有益的。 Docker File FROM confluent/platform COPY Test.jar /usr/local/bin/ COPY kafka-connect-docker.sh /usr/local/bin/ COPY connect-distributed.properties /usr/local/bin/ COPY connect-log4j.properties /etc/kafka/connect-log4j.properties RUN ["apt-get", "update"] RUN ["apt-get", "install", "-yq", "curl"] RUN ["chown", "-R", "confluent:confluent", "/usr/local/bin/kafka-connect-docker.sh", "/usr/local/bin/connect-distributed.properties", "/usr/local/bin/Test.jar"] RUN ["chmod", "+x", "/usr/local/bin/kafka-connect-docker.sh", "/usr/local/bin/connect-distributed.properties", "/usr/local/bin/Test.jar"] RUN ["chown", "-R", "confluent:confluent", "/etc/kafka/connect-log4j.properties"] RUN ["chmod", "777", […]

第二和第三个分布的Kafka Connector工作人员无法正常工作

在Kafka集群3和Zookeeper集群相同的情况下,我创build了一个分布式连接器节点。 使用单个任务成功运行此节点。 然后我提出了第二个连接器,这似乎是运行的任务中的一些代码肯定跑了。 然而,它似乎并没有活下去(尽pipe没有错误抛出,没有保持活着是由缺乏预期的活动,而第一个连接器继续正常运行)。 当我在每个连接器节点上调用URL http://localhost:8083/connectors/mqtt/tasks ,它会告诉我连接器有一个任务。 我期望这是两个任务,每个节点/工作人员一个。 (目前工作人员configuration说tasks.max = 1但我也尝试将其设置为3。 当我尝试启动第三个连接器时,出现错误: "POST /connectors HTTP/1.1" 500 90 5 (org.apache.kafka.connect.runtime.rest.RestServer:60) ERROR IO error forwarding REST request: (org.apache.kafka.connect.runtime.rest.RestServer:241) java.net.ConnectException: Connection refused 试图再次从shell调用连接器POST方法返回错误: {"error_code":500,"message":"IO Error trying to forward REST request: Connection refused"} 我也尝试升级到今天发布的Apache Kafka 0.10.1.1。 我仍然看到问题。 每个连接器都运行在由单个映像定义的独立Docker容器上。 他们应该是相同的。 问题可能是我试图运行POST请求到每个worker上的http://localhost:8083/connectors ,当我只需要在单个worker上运行一次,然后该连接器的任务将自动分发给其他工人。 如果是这种情况,我如何获得分配的任务? 我目前有最多三个,但只有一个似乎是在一个单一的工作人员上运行。 更新 我最终用Yuribuild议的方法运行。 我给每个工人一个唯一的组ID,然后给每个连接器任务相同的名称。 这允许三个连接器和他们的单个任务共享一个偏移量,所以在接收器连接器的情况下,他们从卡夫卡消耗的消息不会被复制。 他们基本上是作为独立的连接器运行,因为工人有不同的组ID,因此不会相互通信。 如果连接器工作人员具有相同的组ID,则不能添加具有相同名称的多个连接器。 […]