Tag: apache kafka

卡夫卡生产者configuration和docker工人

我对卡夫卡有个疑问: 我正在使用Docker运行Kafka以下configuration kafka: image: wurstmeister/kafka ports: – "9092:9092" links: – zookeeper:zk environment: KAFKA_CREATE_TOPICS: "mytopic:1:1" KAFKA_ADVERTISED_HOST_NAME: ${DOCKER_HOST_IP} KAFKA_ADVERTISED_PORT: "9092" KAFKA_ZOOKEEPER_CONNECT: "zk:2181" volumes: – /var/run/docker.sock:/var/run/docker.sock 所以我只是创build一个运行在9092端口的实例。 我的问题是:据我所知,当扩展时,卡夫卡的其他实例在不同的端口上运行,但我的制片人仍然在端口9092运行..我假设这样,如果第一个实例确定卡夫卡由于某种原因死亡,因为KafkaProducer刚刚在9092上运行,所以我无法生成消息: self.producer = KafkaProducer(bootstrap_servers='kafka:9092',api_version=(0,10)) 我怎么解决这个问题? TKS 普利斯科

卡夫卡与docker问题

我试图通过docker-compose文件部署kafka,或者通过安装kafka映像并手动运行它。 当我开始运行kafka服务器(broker)时,这两个步骤都给了我这个错误, INFO启动客户端连接,connectString = 188.226.151.167:2181 sessionTimeout = 6000 watcher=org.I0Itec.zkclient.ZkClient@323b36e0(org.apache.zookeeper.ZooKeeper)[2017-05-16 13:44:49,903]信息等待Keeper状态SyncConnected(org.I0Itec.zkclient.ZkClient)[2017-05-16 13:44:49,909]信息打开套接字连接到服务器188.226.151.167/188.226.151.167:2181。 不会尝试使用SASLvalidation(未知错误)(org.apache.zookeeper.ClientCnxn)[2017-05-16 13:44:55,904]信息终止ZkClient事件线程。 (org.I0Itec.zkclient.ZkEventThread) 任何人都可以清楚地解释发生了什么,并清楚说明如何解决这个问题

Docker上的Apache Kafka – 在数百个游泳池后停止

我在运行Kafka时遇到了一个问题,即在Java应用程序中用作事件存储。 卡夫卡版本:0.10.1.0 Java lib版本:0.10.1.0 Docker版本:当前边缘(17.06.0-ce,build 02c1d87) (稳定发布时的问题) Java 1.8 Docker组合版本:3.3 卡夫卡在147次请求后突然停下来。 任何configuration,docker设置,主机等的变化不会导致不同的结果。 Docker撰写文件: version: '3.3' services: queue: image: spotify/kafka ports: – "9092:9092" – "2181:2181" environment: – ADVERTISED_HOST=queue – ADVERTISED_PORT=9092 # kafka-manager: # image: sheepkiller/kafka-manager # ports: # – "9000:9000" # environment: # – ZK_HOSTS=queue:2181 # depends_on: # – queue # links: # – queue postgresql: […]

Docker动物园pipe理员忘记了创build的kafka主题

给下面的docker – 组成yml,我不断遇到动物园pipe理员忘记创build主题的问题。 我可以停止并重新启动zookeeper容器,也可以重新启动kafka容器。 运行docker-compose时出现问题。 重新启动后,我看到kafka正确地重新打开/ data目录中的主题,但在调用describe主题函数后,我得到一个空列表,就好像它不存在一样。 我究竟做错了什么? 我运行命令来创build主题: unset JMX_PORT kafka-topics.sh –create –topic users –replication-factor 1 –partitions 2 –zookeeper zk:2181 检查是否创build了两个分区: kafka-topics.sh –topic users –describe –zookeeper=zk:2181 这是docker-compose文件,但是对我来说好像… version: '2' volumes: kafka-data: external: true kafka-zk: external: true services: zookeeper: image: zookeeper:3.4 volumes: – kafka-zk:/data kafka: image: ches/kafka environment: KAFKA_ADVERTISED_HOST_NAME: '127.0.0.1' KAFKA_BROKER_ID: '0' ZOOKEEPER_CONNECTION_STRING: zk:2181 ports: […]

使用Spark处理通过kafka进行的数据stream并使用Python进行编程

总而言之,我必须开始说它是一个旅程,这个问题可能需要你已经在我已经在哪里。 好吧,潜水 所以我做了一个docker容器,提供了所有我需要提交的作业来启动(安装在这个容器上),这是用python编写的。 我用监督员把他们踢出去,把控制台的输出连接到一个日志用于排除故障,基本上我想运行多个脚本来说明多个场景stream入一个单一的kafka话题。 我为什么要这样做? 我正在使用Telegraf来收集指标,并将来自多个实例的所有指标发送到名为“telegraf”的kafka中的单个主题。 我知道….它非常有创意。 此外,根据给定实例分割主题现在是不相关的,因为每个实例都有不同的度量标准,所以我仍然需要对它们进行不同的处理。 无论如何,给你一个例子,Telegraf收集我想要的一些docker统计,其中两个是“docker_container_cpu”和“docker_container_mem”。 现在,我现在的解决scheme是让我的脚本根据即将推出的指标以不同的方式处理指标数据。但是,我想要为每个帐户针对可能stream入卡夫卡的不同情况编写大量脚本。 所以一个docker_container_cpu的脚本和另一个docker_container_mem的脚本。 这两个都将听取卡夫卡的话题,既提交和同时运行的作业。 command=bash -c "spark-submit –jars $SPARK_HOME/jars/spark-streaming_2.11-$SPARK_VERSION.jar,$SPARK_HOME/jars/spark-streaming-kafka-0-8-assembly_2.11-$SPARK_VERSION.jar $SPARK_HOME/scripts/aggregateCPU.py localhost:32181 telegraf &> $SPARK_HOME/logs/cpu.log &" command=bash -c " sleep 30s; spark-submit –jars $SPARK_HOME/jars/spark-streaming_2.11-$SPARK_VERSION.jar,$SPARK_HOME/jars/spark-streaming-kafka-0-8-assembly_2.11-$SPARK_VERSION.jar $SPARK_HOME/scripts/aggregateMem.py localhost:32181 telegraf &> $SPARK_HOME/logs/mem.log &" 那么你问的问题是什么? 这个….. bash-4.3# cat logs/mem.log 17/08/02 19:31:59 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform… using […]

如何在主机上使用golang访问docker中安装的kafka

我需要使用golang来访问kafka,所以我在Docker中安装了一个kafka&zookepper。 1.卡夫卡安装脚本: # pull images docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka # run kafka & zookepper docker run -d –name zookeeper -p 2181 -t wurstmeister/zookeeper docker run –name kafka -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092:9092 –link zookeeper:zk -t wurstmeister/kafka # enter container docker exec -it ${CONTAINER ID} /bin/bash cd opt/kafka_2.11-0.10.1.1/ # […]

有没有办法从使用kafkacat在Docker容器中运行的kafka节点读取消息?

我有下面的docker撰写文件,运行kafka,zookeper和我的消息发布Web服务: version: '2' services: zookeeper: image: zookeeper ports: – "2181:2181" volumes: – ./zookeeper.properties:/conf/zoo.cfg kafkanode: build: context: . dockerfile: Dockerfile.kafkanode ports: – "9092:9092" volumes: – ./server.properties:/server.properties publisher: build: context: .. dockerfile: Dockerfile.publisher ports: – "8080:8080" Zookeeper镜像是从docker hub(library / zookeeper)获得的,zookeper.properties是这样的: dataDir=/tmp/zookeeper clientPort=2181 maxClientCnxns=0 我自己捆绑kafkanode图像,Dockerfile看起来像这样: from java RUN wget http://www-us.apache.org/dist/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz && \ tar -xzf kafka_2.11-0.11.0.0.tgz && \ rm […]

为什么我不能访问基于Docker的zookeeper端口

在OS X上,我成功启动了kafka docker镜像,但似乎无法在本地主机上访问它 ➜ ~ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1f931da3d661 wurstmeister/zookeeper:3.4.6 "/bin/sh -c '/usr/…" About an hour ago Up About an hour 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp docker_zookeeper_1 8bc36bcf8fdf wurstmeister/kafka:0.10.1.1 "start-kafka.sh" About an hour ago Up About an hour 0.0.0.0:9092->9092/tcp docker_kafka_1 ➜ ~ telnet 0.0.0.0:2181 0.0.0.0:2181: nodename nor servname […]

是否有可能使用卡夫卡与docker组成一个单一的主机,而不暴露动物园pipe理员和卡夫卡端口到公共互联网?

我有一个docker-compose.yml文件,看起来像这样: version: '3' services: zookeeper: container_name: zookeeper image: wurstmeister/zookeeper ports: – "2181:2181" networks: – privatenetwork kafka: depends_on: – zookeeper container_name: kafka image: wurstmeister/kafka ports: – "9092:9029" environment: – KAFKA_ADVERTISED_HOST_NAME=${HOST_IP} – KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 volumes: – /var/run/docker.sock:/var/run/docker.sock 我想避免使用“expose”configuration属性转发kafka和zookeeper端口到主机,以便我的docker-compose文件如下所示: version: '3' services: zookeeper: container_name: zookeeper image: wurstmeister/zookeeper expose: – "2181" networks: – privatenetwork kafka: depends_on: – zookeeper container_name: kafka […]

kafka连接从docker挂载在本地主机上的日志

我有kafka连接运行在正在生成日志到/ tmp目录中的文件的docker集装箱上。 在Docker的/tmp/kafka-connect.logs中生成的日志应该被挂载到本地的/tmp2/kafka-connect.logs目录。 当我挂载在/ tmp目录时 – docker run -p 8083:8083 -v /tmp/:/tmp/ -i jdbc但在/tmp2目录失败 – docker run -p 8083:8083 -v /tmp2/:/tmp/ -i jdbc 。 / tmp2目录的权限是777特权,并以root用户身份运行。 connect-log4j.properties # Root logger option log4j.rootLogger = INFO, FILE, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d\t%p\t%m\t(%c:%L)%n # Direct log messages to stdout log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=/tmp/kafka-connect.logs # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout […]