我遇到以下错误,而运行流式传输管道(python)在Apache Beam在Flink运行。管道包含GCPpub/sub io源和pub/sub目标。
WARNING:root:Make sure that locally built Python SDK docker image has Python 3.6 interpreter.
ERROR:root:java.lang.IllegalArgumentException: PCollectionNodes [PCollectionNode{id=ref_PCollection_PCollection_1, PCollection=unique_name: "23 Read from Pub/Sub/Read.None"
coder_id: "ref_Coder_BytesCoder_1"
is_bounded: UNBOUNDED
windowing_strategy_id: "ref_Windowing_Windowing_1"
}] were consumed but never produced
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "/usr/local/lib64/python3.6/site-packages/apache_beam/pipeline.py", line 586, in __exit__
self.result.wait_until_finish()
File "/usr/local/lib64/python3.6/site-packages/apache_beam/runners/portability/portable_runner.py", line 599, in wait_until_finish
raise self._runtime_exception
RuntimeError: Pipeline BeamApp-swarna0kpaul-0712135603-763999c_45da372e-757d-4690-8e25-1a5ed0a5cc84 failed in state FAILED: java.lang.IllegalArgumentException: PCollectionNodes [PCollectionNode{id=ref_PCollection_PCollection_1, PCollection=unique_name: "23 Read from Pub/Sub/Read.None"
coder_id: "ref_Coder_BytesCoder_1"
is_bounded: UNBOUNDED
windowing_strategy_id: "ref_Windowing_Windowing_1"
}] were consumed but never produced
我正在尝试运行以下代码Python我正在尝试使用我在GCP帐户中创建的2个发布/订阅主题({输入主题},{输出主题})主题采用这种格式-项目/{项目名称}/主题/{主题名称}
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
input_topic=<input topic>
output_topic=<output topic>
options = PipelineOptions(["--runner=FlinkRunner", "--checkpointing_interval=1000","--streaming"])
with beam.Pipeline(options=options ) as pipeline:
input1 = pipeline | " Read from Pub/Sub" >> beam.io.ReadFromPubSub(topic=input_topic).with_output_types(bytes)
output = (input1
|beam.WindowInto(beam.transforms.window.FixedWindows(5))
|"Write to Pub/Sub" >>beam.io.WriteToPubSub(topic=output_topic, with_attributes=False).with_input_types(bytes))
系统中提供了以下版本的软件
Python 3.6.8
apache_beam [gcp]==2.30.0
java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
我尝试按照本页中的规范使用flink集群和便携式flink运行器运行此功能,但收到相同的错误。
当我使用以下选项时,相同的代码运行良好
options = PipelineOptions(["--streaming"])
apache_beam.io。ReadFromPubsub()
转换仅适用于DirectRunner和Dataflow Runner,但您可以尝试外部转换:apache_beam.io. external.gcp.pubsub.ReadFromPubSub
,请参阅:https://github.com/apache/beam/blob/release-2.39.0/sdks/python/apache_beam/io/external/gcp/pubsub.py#L39