【问题标题】:Elasticsearch spark reading slowElasticsearch 火花读取缓慢
【发布时间】:2019-01-22 04:22:26
【问题描述】:

使用指定的 spark 连接器 org.elasticsearch:elasticsearch-spark-20_2.11:6.3.2 从 Elasticsearch v6.2 读取到 spark 非常慢。这是来自带有索引的 3 节点 ES 集群:

curl https://server/_cat/indices?v
green  open   db MmVwAwYfTz4eE_L-tncbwQ   5   1  199983131      9974871    105.1gb         51.8gb

在(10 个节点,1tb 内存,>50 个 VCPU)spark 集群上读取:

val query = """{
  "query": {
    "match_all": {}
  }
}"""

val df = spark.read
  .format("org.elasticsearch.spark.sql")
  .option("es.nodes","server")
  .option("es.port", "443")
  .option("es.net.ssl","true")
  .option("es.nodes.wan.only","true")
  .option("es.input.use.sliced.partitions", "false")
  .option("es.scroll.size", "1000")
  .option("es.read.field.include", "f1,f2,f3")
  .option("es.query",query)
  .load("db")

df.take(1)

执行需要 10 分钟。

这是(缓慢地)它应该如何工作,还是我做错了什么?

【问题讨论】:

  • 嗨@ixaxaar,您找到原因或解决方案了吗?
  • 不,实在想不通。尝试了各种设置和配置,包括es.input.use.sliced.partition,最后将整个索引转储到 s3 (github.com/taskrabbit/elasticsearch-dump),然后在 spark 中加载。
  • 尝试使用https://server/_cat/nodes?v&h=id,cpu&s=id检查CPU利用率

标签: scala apache-spark elasticsearch elasticsearch-spark


【解决方案1】:

这不是它应该有多慢,答案可以在你分享的截图中找到:

Spark UI 中的Stages: Succeeded/Total 列仅显示了一个运行读取操作的任务,我认为这不是您所期望的,否则拥有整个集群的意义何在。

我遇到了同样的问题,我花了一段时间才弄清楚 Spark 将一个任务(分区)关联到 Elasticsearch 索引中的每个分片,

我们有我们的答案,为了更快,我们应该并行化这个过程,怎么做?将我们的源索引分配到多个分片中。

默认情况下,Elasticsearch 会使用一个分片创建一个索引,但也可以按如下方式对其进行个性化设置:

PUT /index-name
{
     "settings": {
     "index": {
     "number_of_shards": x,  
     "number_of_replicas": xx 
    }
  }
}

分片的数量可能高于 Elastic 节点的数量,这对 Spark 来说都是透明的。 如果索引已经存在,请尝试创建一个新的 inex,然后使用 Elasticsearch Reindex API

希望这能解决你的问题。

【讨论】:

  • 好吧,在上述问题中,我试图获取一份文档。 df.take(1)。无论如何,在团队遇到很多麻烦之后,我们最终淘汰了 ES,转而支持 S3。之后的生活过得很好。
  • 这就是我想强调的 i.imgur.com/WrGkPoz.png 有一个任务在一个分区上运行 df. take(1) 不会阻止 spark 读取所有数据然后过滤,另一方面,如果我们增加分片的数量,Spark 会为每个分片关联一个分区和一个并行运行的任务。
  • @ixaxaar 我确实与 S3 分享了您的意见,您确实避免了很多不必要的麻烦。
猜你喜欢
  • 2015-01-17
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多