5

2 台のマシンの 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)

HDFS/Cassandra/その他のデータ ストアではないファイル システムにチェックポイント ディレクトリを指定するにはどうすればよいですか?

私は2つの可能な解決策を考えましたが、それらをコーディングする方法がわかりません:

  1. 両方のワーカーに対してローカルな 1 つのリモート ディレクトリがある

  2. 両方のワーカーにリモート ディレクトリを指定する

助言がありますか ?

4

1 に答える 1

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
于 2015-10-20T14:55:36.377 に答える