【问题标题】:Spark app unable to write to elasticsearch cluster running in dockerSpark 应用程序无法写入在 docker 中运行的弹性搜索集群
【发布时间】:2016-11-13 16:34:49
【问题描述】:

我有一个在 127.0.0.1:9200 上监听的 elasticsearch docker 映像,我使用 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")

连接失败,一直在重试

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 为 elasticsearch 图像提供的 IPAddress ,这也不起作用。但是,当我使用本机安装的 elasticsearch 时,Spark 应用程序运行良好。有什么想法吗?

【问题讨论】:

    标签: elasticsearch apache-spark docker containers docker-compose


    【解决方案1】:

    另外,设置配置

    es.nodes.wan.onlytrue

    answer 中所述,如果您在写入 ES 时遇到问题。

    【讨论】:

      【解决方案2】:

      我会检查几件事:

      • 您正在使用的 Elasticsearch-Hadoop spark 连接器版本。确保它不是测试版。修复了与 IP 解析相关的错误。

      • 由于 9200 是默认端口,您可以删除此行:sparkConf.set("es.port", "9200") 并检查。

      • 检查您的 Spark 环境或配置文件中是否配置了代理。

      • 我假设您在同一台机器上运行 Elasticsaerch 和 Spark。可以尝试配置你的机器IP地址而不是127.0.0.1

      希望这会有所帮助! :)

      【讨论】:

        【解决方案3】:

        有同样的问题,另一个问题是使用sparkConf.set() 设置的confs 没有效果。但是为 conf 提供保存功能是有效的,如下所示:

        rdd.saveToEs("spark/docs", Map("es.nodes" -> "127.0.0.1", "es.nodes.wan.only" -> "true"))
        

        【讨论】:

          猜你喜欢
          • 2020-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-31
          • 2018-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多