不同集群 Spark Structured Streaming 从集群 A 上的增量文件到集群 B

Different clusters Spark Structured Streaming from delta file on cluster A to cluster B

我正在尝试将增量 table 从集群 A 流式传输到集群 B,但我无法将数据加载或写入其他集群:

streamingDf = spark.readStream.format("delta").option("ignoreChanges", "true") \
              .load("hdfs://cluster_A/delta-table")

stream = streamingDf.writeStream.format("delta").option("checkpointLocation", "/tmp/checkpoint")\
         .start("hdfs://cluster_B/delta-sink")

然后,我收到以下错误:
org.apache.hadoop.hdfs.BlockMissingException: 无法获取块

所以,我的问题是是否可以使用增量格式直接从两个集群流式传输数据,或者需要其他技术来实现这一点。

谢谢!

支持。 参考 https://docs.delta.io/latest/quick-start.html#write-a-stream-of-data-to-a-table

您遇到的异常似乎是由于您的 hdfs/delta lake 集群中的 NameNode 和数据节点存在一些问题。 参考 https://www.linkedin.com/pulse/solved-mystery-blockmissingexception-hadoop-file-system-rajat-kumar

错误与防火墙规则有关,集群 A 中的所有节点必须能够使用相应端口访问集群 B 中的所有节点。我只在名称节点上设置了端口