Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有本地数据流服务器的Polyglot处理器_Python_Apache Kafka_Spring Cloud Dataflow_Polyglot - Fatal编程技术网

Python 带有本地数据流服务器的Polyglot处理器

Python 带有本地数据流服务器的Polyglot处理器,python,apache-kafka,spring-cloud-dataflow,polyglot,Python,Apache Kafka,Spring Cloud Dataflow,Polyglot,我一直在尝试使用polyglot并构建一个简单的python处理器。我遵循了命令,但无法部署流。我最初部署的处理器与示例中使用的处理器相同,但出现以下错误: 请求了未知的命令行参数:spring.cloud.stream.bindings.input.destination 请求的未知环境变量:SPRING\u CLOUD\u STREAM\u KAFKA\u BINDER\u BROKERS Traceback (most recent call last): File "/proc

我一直在尝试使用polyglot并构建一个简单的python处理器。我遵循了命令,但无法部署流。我最初部署的处理器与示例中使用的处理器相同,但出现以下错误:

请求了未知的命令行参数:spring.cloud.stream.bindings.input.destination 请求的未知环境变量:SPRING\u CLOUD\u STREAM\u KAFKA\u BINDER\u BROKERS

Traceback (most recent call last):
File "/processor/python_processor.py", line 10, in
consumer = KafkaConsumer(get_input_channel(), bootstrap_servers=[get_kafka_binder_brokers()])
File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/group.py", line 353, in init
self._client = KafkaClient(metrics=self._metrics, **self.config)
File "/usr/local/lib/python2.7/dist-packages/kafka/client_async.py", line 203, in init
self.cluster = ClusterMetadata(**self.config)
File "/usr/local/lib/python2.7/dist-packages/kafka/cluster.py", line 67, in init
self._bootstrap_brokers = self._generate_bootstrap_brokers()
File "/usr/local/lib/python2.7/dist-packages/kafka/cluster.py", line 71, in _generate_bootstrap_brokers
bootstrap_hosts = collect_hosts(self.config['bootstrap_servers'])
File "/usr/local/lib/python2.7/dist-packages/kafka/conn.py", line 1336, in collect_hosts
host, port, afi = get_ip_port_afi(host_port)
File "/usr/local/lib/python2.7/dist-packages/kafka/conn.py", line 1289, in get_ip_port_afi
host_and_port_str = host_and_port_str.strip()
AttributeError: 'NoneType' object has no attribute 'strip'
Exception AttributeError: "'KafkaClient' object has no attribute '_closed'" in <bound method KafkaClient.del of <kafka.client_async.KafkaClient object at 0x7f8b7024cf10>> ignored
回溯(最近一次呼叫最后一次):
文件“/processor/python_processor.py”,第10行,在
消费者=卡夫卡消费者(获取输入通道(),引导服务器=[获取卡夫卡绑定器代理()
文件“/usr/local/lib/python2.7/dist-packages/kafka/consumer/group.py”,第353行,在init中
self.\u client=KafkaClient(metrics=self.\u metrics,**self.config)
文件“/usr/local/lib/python2.7/dist packages/kafka/client_async.py”,第203行,在init中
self.cluster=ClusterMetadata(**self.config)
文件“/usr/local/lib/python2.7/dist-packages/kafka/cluster.py”,第67行,在init中
self.\u bootstrap\u brokers=self.\u generate\u bootstrap\u brokers()
文件“/usr/local/lib/python2.7/dist packages/kafka/cluster.py”,第71行,位于生成引导程序中
bootstrap\u hosts=collect\u hosts(self.config['bootstrap\u servers'])
collect_hosts中的文件“/usr/local/lib/python2.7/dist packages/kafka/conn.py”,第1336行
主机,端口,afi=获取\u ip\u端口\u afi(主机\u端口)
文件“/usr/local/lib/python2.7/dist-packages/kafka/conn.py”,第1289行,在get\u-ip\u-port\u-afi中
host_and_port_str=host_and_port_str.strip()
AttributeError:“非类型”对象没有属性“strip”
异常AttributeError:“'KafkaClient'对象在忽略中没有属性'\u closed'。”
然后,我尝试通过部署流传递环境和绑定参数,但没有成功。当我手动将SPRING_CLOUD_STREAM_KAFKA_BINDER_代理和SPRING.CLOUD.STREAM.bindings.input.destination参数插入到KAFKA的使用者中时,我能够将流部署为一种解决方法。我不完全确定是什么导致了这个问题,在Kubernetes上部署它会有什么不同吗?或者这是Polyglot和Dataflow的问题吗?在此方面的任何帮助都将不胜感激

复制步骤: 尝试在本地数据流服务器上部署来自polyglot recipe的polyglot处理器流。我还使用了与示例中相同的流定义:http--server.port=32123 | python处理器--reversestring=true | log

其他背景:
我正在尝试将流部署到本地安装的SPDF和Kafka上,因为我在使用Docker部署自定义python应用程序时遇到一些问题。

您在上面发布的方法要求将
SPRING\u CLOUD\u stream\u Kafka\u BINDER\u BROKERS
环境变量作为服务器配置的一部分提供(由于流是通过Skipper服务器管理的,因此需要在Skipper服务器配置中设置此环境变量)

您可以查看有关如何在Skipper服务器部署中将
SPRING\u CLOUD\u STREAM\u KAFKA\u BINDER\u BROKERS
设置为环境属性的文档


在部署
python处理器
stream应用程序时,您还可以将此属性作为部署器属性传递。您可以参考有关如何传递部署属性以设置Spring云流属性的文档(这里是binder配置属性)在流部署时。

您上面发布的配方需要
SPRING\u CLOUD\u stream\u KAFKA\u BINDER\u BROKERS
环境变量作为服务器配置的一部分出现(由于流是通过Skipper server管理的,因此您需要在Skipper服务器配置中设置此环境变量)

您可以查看有关如何在Skipper服务器部署中将
SPRING\u CLOUD\u STREAM\u KAFKA\u BINDER\u BROKERS
设置为环境属性的文档


在部署
python处理器
stream应用程序时,您还可以将此属性作为部署器属性传递。您可以参考有关如何传递部署属性以设置Spring云流属性的文档(这里是binder配置属性)在流部署时。

我试图将SPRING_CLOUD_stream_KAFKA_BINDER_BROKERS环境设置为流部署属性,但我收到了相同的错误。我无法将其设置为Skipper属性,因为我的Skipper不使用yml配置文件,因为我正在本地使用.jar文件运行它。如果在本地运行Skipper,然后,您可以在启动Skipper server时传递与命令行参数相同的属性。我试图将SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS环境设置为STREAM deployment属性,但出现了相同的错误。我无法将其设置为Skipper属性,因为我的Skipper在运行时未使用yml配置文件如果您在本地运行Skipper,那么您可以在启动Skipper服务器时传递与命令行参数相同的属性。