V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mvpanswer7
V2EX  ›  Elasticsearch

spark 查询 elasricsearch 大数据集特别慢

  •  
  •   Mvpanswer7 · 2018-06-25 14:39:09 +08:00 · 4129 次点击
    这是一个创建于 2368 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 spark 查询 es 集群的时候特别慢,es 集群有三个节点,总共大概有 200 亿条数据,jvm 堆内存 32G。
    spark 查询时 pushdown 了之后结果集大概有 20 亿条数据,一个简单的字段匹配查询要跑一两个小时,目前连接时只用到了这些配置
    es.scroll.size="10000"
    pushdown="true"
    es.scroll.keepalive="10m"
    有人有经验给点优化建议么?
    7 条回复    2018-06-28 16:48:50 +08:00
    oaix
        1
    oaix  
       2018-06-25 14:47:06 +08:00
    是很慢的. 简单字段匹配也是要把整个 es 扫一遍.
    spark 读带 shard 的 mongo 会快一点. 最好是把 es 的数据定期写到 hdfs 里面去.
    Mvpanswer7
        2
    Mvpanswer7  
    OP
       2018-06-25 18:02:34 +08:00
    @oaix 用 elasticsearch-spark 是会 pushdown 的啊,而且是 scroll 方式
    oaix
        3
    oaix  
       2018-06-25 22:46:20 +08:00
    @Mvpanswer7 你可以把 `用 elasticsearch-spark 是会 pushdown 的啊` 的来源发出来吗?
    rdd 在 filter 的时候,传参是你自定义的 java 方法,我不认为 elasticsearch-spark 可以这个自定义的过滤翻译成一个 es 查询。
    oaix
        4
    oaix  
       2018-06-26 09:31:45 +08:00
    我知道你说什么了, 你用的是 spark SQL
    bzzhou
        5
    bzzhou  
       2018-06-26 09:37:15 +08:00
    贴一下 explain ?确认查询是否真的 pushdown 到了 es
    Mvpanswer7
        6
    Mvpanswer7  
    OP
       2018-06-28 16:48:26 +08:00
    @oaix 是的是的
    Mvpanswer7
        7
    Mvpanswer7  
    OP
       2018-06-28 16:48:50 +08:00
    @bzzhou 能打印出来 pushdown 后的 query 里确实有 sql where 里的条件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:45 · PVG 11:45 · LAX 19:45 · JFK 22:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.