6

元のタイトル: HDFS 以外に、Spark がサポートしている (推奨されている) DFS は何ですか?

いくつかの巨大なクラスターで、spark と elasticsearch (elasticsearch-hadoop ドライバーを使用) を喜んで使用しています。

時々、データのクラスター全体を取り出し、各ドキュメントを処理し、それらすべてを別の Elasticsearch (ES) クラスターに入れたいと思います (そう、データ移行も)。

現在、クラスターから RDD に ES データを読み取り、RDD からのスワッピングを伴うため、spark + elasticsearch-hadoop を使用して RDD を別のSparkContextRDD に書き込む方法はありません。SparkContextそのため、RDD をオブジェクト ファイルに書き込み、後でそれらを異なるs のRDD に読み戻したいと考えています。

ただし、ここで問題が発生します。spark クラスター全体で大きなファイルを共有するには、DFS (分散ファイル システム) が必要です。最も一般的なソリューションは HDFS ですが、スタックに Hadoop を導入することは避けたいと思っています。Spark がサポートする他の推奨 DFS はありますか?

以下を更新

以下の @Daniel Darabos の回答のおかげで、次の Scala コードを使用して、さまざまな ElasticSearch クラスターとの間でデータを読み書きできるようになりました。

val conf = new SparkConf().setAppName("Spark Migrating ES Data")
conf.set("es.nodes", "from.escluster.com")

val sc = new SparkContext(conf)

val allDataRDD = sc.esRDD("some/lovelydata")

val cfg = Map("es.nodes" -> "to.escluster.com")
allDataRDD.saveToEsWithMeta("clone/lovelydata", cfg)
4

1 に答える 1

3

Spark はファイル アクセスに hadoop-common ライブラリを使用するため、Hadoop がサポートするファイル システムはすべて Spark で動作します。HDFS、S3、およびGCSで使用しました。

を使用しない理由がよくわかりませんelasticsearch-hadoop。2 つの ES クラスターがあるため、異なる構成でそれらにアクセスする必要があります。sc.newAPIHadoopFileそして引数をrdd.saveAsHadoopFile取りhadoop.conf.Configurationます。したがって、問題なく 2 つの ES クラスターを同じ .xml で使用できますSparkContext

于 2015-03-12T12:17:36.853 に答える