khr*_*hai 6 containers elasticsearch docker apache-spark docker-compose
我有一个 elasticsearch docker 镜像在 127.0.0.1:9200 上监听,我使用 sense 和 kibana 对其进行了测试,它工作正常,我能够索引和查询文档。现在,当我尝试从 Spark 应用程序写入它时
val sparkConf = new SparkConf().setAppName("ES").setMaster("local")
sparkConf.set("es.index.auto.create", "true")
sparkConf.set("es.nodes", "127.0.0.1")
sparkConf.set("es.port", "9200")
sparkConf.set("es.resource", "spark/docs")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val numbers = Map("one" -> 1, "two" -> 2, "three" -> 3)
val airports = Map("arrival" -> "Otopeni", "SFO" -> "San Fran")
val rdd = sc.parallelize(Seq(numbers, airports))
rdd.saveToEs("spark/docs")
Run Code Online (Sandbox Code Playgroud)
连接失败,一直重试
16/07/11 17:20:07 INFO HttpMethodDirector: I/O exception (java.net.ConnectException) caught when processing request: Operation timed out
16/07/11 17:20:07 INFO HttpMethodDirector: Retrying request
我尝试使用 docker Inspect 给出的 IPAddress 来获取 Elasticsearch 映像,但这也不起作用。但是,当我使用 Elasticsearch 的本机安装时,Spark 应用程序运行良好。有任何想法吗?
我会检查几件事:
您正在使用的 Elasticsearch-Hadoop Spark 连接器版本。确保它不是测试版。修复了与 IP 解析相关的错误。
由于 9200 是默认端口,因此您可以删除此行:sparkConf.set("es.port", "9200")
并检查。
检查您的 Spark 环境或配置文件中是否没有配置代理。
我假设您在同一台计算机上运行 Elasticsaerch 和 Spark。您可以尝试配置您的机器IP地址而不是127.0.0.1
希望这可以帮助!:)
归档时间: |
|
查看次数: |
1084 次 |
最近记录: |