我有两个分离的Elasticsearch集群,我想将数据从第一个集群重新索引到第二个集群,但是我发现我只能在SparkContext配置中设置一个Elasticsearch集群,例如:
var sparkConf : SparkConf = new SparkConf()
.setAppName("EsReIndex")
sparkConf.set("es.nodes", "node1.cluster1:9200")那么,如何在同一个应用程序中使用弹性搜索-hadoop在两个弹性搜索集群之间移动数据呢?
发布于 2016-10-29 08:03:26
为此,您不需要在SparkConf中配置节点地址。
当您将DataFrameWriter与elasticsearch格式一起使用时,可以将节点地址作为选项传递,如下所示:
val df = sqlContext.read
.format("elasticsearch")
.option("es.nodes", "node1.cluster1:9200")
.load("your_index/your_type")
df.write
.option("es.nodes", "node2.cluster2:9200")
.save("your_new_index/your_new_type")这应该适用于spark 1.6.X和相应的elasticsearch-hadoop连接器。
https://stackoverflow.com/questions/40315512
复制相似问题