代码之家  ›  专栏  ›  技术社区  ›  AI Joes

Spark从elasticsearch中查询1000亿行数据非常慢

  •  0
  • AI Joes  · 技术社区  · 7 年前

    我最近使用spark 2.2查询了一个包含3个节点和1000亿行数据的大型elasticsearch集群。我使用org.elasticsearch:elasticsearch-spark-20_2.11:5.5.0进行spark-es集成。

    我确认了所有字段都是简单的字符串类型,我的程序是正确的(没有设置一些优化选项),spark确实下推以帮助最小化输出,但仍然太大。下面是我使用spark时的配置,有什么优化建议吗?

    es.scroll.size="10000"
    pushdown="true" 
    es.scroll.keepalive="10m"
    

    我的spark sql代码:

    val conf = new SparkConf()
        .setAppName("Simple Example")
        .set("es.resource", "myIndex/info")
        .set("es.read.field","field1, field2, field3")
        .set("es.scroll.size","10000")
        .set("es.scroll.keepalive","10m")
        .set("es.nodes","192.168.12.12")
        .set("es.port","9200")
        .set("pushdown","true");
    val sc = new SparkContext(conf);
    val df = sc.sql("select * from myIndex where name = 'exampleName'")
    

    Executor compute time 太长了。

    enter image description here

    0 回复  |  直到 7 年前
    推荐文章