首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花弹性搜索基本调优

火花弹性搜索基本调优
EN

Stack Overflow用户
提问于 2020-01-04 11:25:22
回答 1查看 287关注 0票数 0

如何为速度设置火花?

我正在运行来分析日志数据。

使用200万行(4G)进行聚合/连接大约需要5分钟。

我在运行1位大师,3位工人在3台机器上。我将执行器内存增加到8g,ES节点从1增加到3。

我正在以客户端模式(https://becominghuman.ai/real-world-python-workloads-on-spark-standalone-clusters-2246346c7040)运行独立的集群,我不使用submit,只是在启动主/工作人员之后运行python代码。

火花似乎发射了3个执行者总数(这是从3个工人)。

我想用微调来调音火花,以获得最好的表现。

我应该采取哪种方式进行优化?

  1. 考虑其他集群(纱线等)。虽然我不知道它们提供了什么,但似乎更改与内存相关的设置更容易)
  2. 运行更多的执行者
  3. explain api分析作业计划
  4. 接受它需要花费那么多时间,因为您必须下载4G数据(是否应该激发抓取所有数据来运行聚合?例如按组和和),如果适用的话,将数据保存到parquet (?)作进一步分析

下面是与性能相关的设置

代码语言:javascript
复制
 conf.set("es.scroll.size", 10000)
 conf.set("spark.executor.memory", "8g")
 conf.set("spark.driver.memory", "8g")
 conf.set("spark.dynamicAllocation.enabled", "true")
 conf.set("spark.shuffle.service.enabled", "true")
 conf.set("es.nodes.resolve.hostname", "false")
 conf.set("spark.driver.extraClassPath", "/usr/local/elasticsearch-hadoop-7.4.2/dist/elasticsearch-spark-20_2.11-7.4.2.jar")
 conf.set("es.nodes", settings.ES_HOST)
 conf.set("es.nodes.wan.only", 'true')

spark-defaults.conf

代码语言:javascript
复制
 # https://becominghuman.ai/real-world-python-workloads-on-spark-standalone-clusters-2246346c7040
 spark.sql.execution.arrow.enabled true

 # https://spark.apache.org/docs/latest/job-scheduling.html#dynamic-resource-allocation
 spark.dynamicAllocation.enabled true
 spark.shuffle.service.enabled true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-04 13:02:36

这并不总是内存或集群配置的问题,我建议您首先尝试在增加内存之前优化正在运行的查询/聚合。

您可以在这里找到一些关于火花性能调谐的提示。另见调谐火花。确保查询是最优的,并避免已知的不良性能,如UDF。

对于集群中的执行器和内存配置,您必须考虑到所有机器上可用的内存和核心,以计算适当的参数。下面是一个关于最佳实践的激荡柱

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59590216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档