Win*_*hen 6 microsoft-distributed-file-system hdfs elasticsearch apache-spark elasticsearch-hadoop
原标题:除了HDFS之外,还有什么其他DFS能够引发支持(并且被推荐)?
我很高兴地使用spark和elasticsearch(带有elasticsearch-hadoop驱动程序)和几个巨大的集群.
我不时会将整个数据集拉出来,处理每个文档,并将所有数据放入不同的Elasticsearch(ES)集群中(是的,数据迁移也是如此).
目前,无法将集群中的ES数据读入RDD,并使用spark + elasticsearch-hadoop将SparkContextRDD 写入不同的RDD ,因为这将涉及从RDD 交换.所以我想将RDD写入目标文件,然后再将它们读回到具有不同SparkContexts 的RDD中.
但是,问题出现了:我需要一个DFS(分布式文件系统)来共享整个spark集群中的大文件.最流行的解决方案是HDFS,但我会非常避免将Hadoop引入我的堆栈.是否还有其他推荐的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)
Run Code Online (Sandbox Code Playgroud)
Spark 使用 hadoop-common 库进行文件访问,因此 Hadoop 支持的任何文件系统都可以与 Spark 配合使用。我已经将它与 HDFS、S3 和 GCS 一起使用。
我不确定我是否理解您为什么不直接使用elasticsearch-hadoop. 您有两个ES集群,需要使用不同的配置来访问。sc.newAPIHadoopFile并rdd.saveAsHadoopFile接受hadoop.conf.Configuration论证。因此,您可以毫无问题地使用两个具有相同SparkContext.
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |