两个Spark结构化的流作业无法写入相同的基本路径

时间:2020-01-17 09:05:01

标签: apache-spark spark-streaming spark-structured-streaming

Spark结构化流技术不允许两个结构化流技术作业将数据写入同一基本目录,而使用dstreams则可以实现。

由于默认情况下将为一个作业创建_spark_metadata目录,因此第二个作业不能使用与基本路径相同的目录,因为另一个作业已经创建了_spark_metadata目录,这会引发异常。

除了为两个作业创建单独的基本路径之外,是否有其他解决方法。

是否可以在其他位置创建_spark_metadata目录或禁用该目录,而不会丢失任何数据。

如果我必须同时更改这两项工作的基本路径,那么整个框架都会受到影响,所以我不想这样做。

1 个答案:

答案 0 :(得分:0)

否,尚无法更改元数据目录名称或位置。 您可以参考此link以获得更多信息。

您能否说明为什么必须更改项目模型才能更改路径。路径是硬编码的吗?还是您以特定方式读取此数据,不会受到影响?

编辑1:您可以在此处使用分区。例如,如果数据存储为实木复合地板,则基本路径中可以有分区。您可以添加具有数据源的“ src”列,例如Stream Writer 1的SW1和Stream Writer 2的SW2。

这些将在hdfs中具有以下路径:

  1. <基本路径> / src = SW1
  2. <基本路径> / src = SW2

现在,您的每个作业都可以直接写入其相应的分区,而其他作业可以继续从基本路径读取。