【发布时间】: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)
这是(缓慢地)它应该如何工作,还是我做错了什么?
【问题讨论】:
-
嗨@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