2016-07-11 127 views
2

從ElasticSearch讀取數據我給下面的代碼使用獲取連接錯誤,而使用Apache星火和斯卡拉

val conf = new org.apache.spark.SparkConf() 
     .setMaster("local[*]") 
     .setAppName("es-example") 
     .set("es.nodes", "search-2meoihmu.us-est-1.es.amazonaws.com") 

val sc = new org.apache.spark.SparkContext(conf) 
val resource = "index/data" 
val count = sc.esRDD(resource).count() 
println(count) 

elastic search version=1.5.2 
spark version=1.5.2 
Scala version=2.10.4 

,並給出庫的依賴關係如下,

libraryDependencies += "org.elasticsearch" % "elasticsearch-spark_2.10" % "2.1.3" 

運行程序時出現以下錯誤

Exception in thread "main" org.elasticsearch.hadoop.rest.EsHadoopNoNodesLeftException: Connection error (check network and/or proxy settings)- all nodes failed 

如何從彈性搜索中使用spark和Scala讀取數據?

+0

你認爲這個問題了嗎?我有同樣的問題,雖然我在ES v1.7.5,Spark v1.6.0,ES-Spark連接器v2.10-2.3.3和Scala 2.10.6上。 –

回答

0

請看選項「es.nodes.wan.only」。默認情況下,此鍵的值設置爲「false」,當我將其設置爲true時,該異常消失。以下是配置值的最新文檔:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html

val conf = new org.apache.spark.SparkConf() 
.setMaster("local[*]") 
.setAppName("es-example") 
.set("es.nodes", "search-2meoihmu.us-est-1.es.amazonaws.com") 
.set("es.nodes.wan.only", "true") 

注意,DOC指定此值翻轉到真像那些在AWS的環境,但試圖指向一個VM與Elasticsearch運行時,此異常發生我。