2

J'ai deux clusters Elasticsearch séparés, je veux réindexer les données du premier cluster vers le second cluster, mais j'ai trouvé que je ne pouvais en configurer qu'un seul. groupe à l'intérieur ElasticSearch configuration SparkContext, tels que:Comment réindexer des données d'un cluster Elasticsearch à un autre avec elasticsearch-hadoop dans Spark

var sparkConf : SparkConf = new SparkConf() 
        .setAppName("EsReIndex") 
sparkConf.set("es.nodes", "node1.cluster1:9200") 

Alors, comment puis-je transférer les données entre les deux groupes ElasticSearch avec recherche Hadoop élastique étincelle à l'intérieur de la même application?

Répondre

3

Vous n'avez pas besoin de configurer l'adresse de noeud dans le SparkConf pour cela.

Lorsque vous utilisez votre DataFrameWriter avec le format elasticsearch, vous pouvez transmettre l'adresse de noeud en option comme suit:

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") 

Cela devrait fonctionner avec 1.6.X d'allumage et le connecteur ElasticSearch Hadoop correspondant.