不同集群 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 中的所有节点。我只在名称节点上设置了端口
我正在尝试将增量 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 中的所有节点。我只在名称节点上设置了端口