Checkpoint RDD ReliableCheckpointRDD 与原始 RDD 的分区数量不同

Sou*_*tra 5 apache-spark spark-streaming apache-spark-ml

我有一个由两台机器组成的 Spark 集群,当我运行 Spark 流应用程序时,出现以下错误:

Exception in thread "main" org.apache.spark.SparkException: Checkpoint RDD ReliableCheckpointRDD[11] at print at StatefulNetworkWordCount.scala:78(1) has different number of partitions from original RDD MapPartitionsRDD[10] at updateStateByKey at StatefulNetworkWordCount.scala:76(2)
    at org.apache.spark.rdd.ReliableRDDCheckpointData.doCheckpoint(ReliableRDDCheckpointData.scala:73)
    at org.apache.spark.rdd.RDDCheckpointData.checkpoint(RDDCheckpointData.scala:74)
Run Code Online (Sandbox Code Playgroud)

如何在不是 HDFS/Cassandra/任何其他数据存储的文件系统上提供检查点目录?

我想到了两种可能的解决方案,但我不知道如何编写它们:

  1. 有一个远程目录,该目录对于两个工作人员来说都是本地的

  2. 为两个工作人员指定远程目录

有什么建议 ?

Sou*_*tra 4

好的,所以我可以继续第一个选项。

我在所有工作人员上安装了一个远程目录作为检查点,并且它工作得很好。

How to mount the remote checkpoint directory on the workers:

sudo apt-get install sshfs
Load it to kernel

sudo modprobe fuse

sudo adduser username fuse

mkdir ~/checkpoint

sshfs ubuntu@xx.xx.x.xx:/home/ubuntu/checkpoint ~/checkpoint
Run Code Online (Sandbox Code Playgroud)