首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark + Elastic search写入性能问题

Spark + Elastic search写入性能问题
EN

Stack Overflow用户
提问于 2017-10-18 23:00:18
回答 1查看 1.1K关注 0票数 1

看到使用spark java的elasticsearch写入次数很少。

以下是配置

对ES集群使用13.xlarge机器

代码语言:javascript
运行
复制
 4 instances each have 4 processors.
 Set refresh interval to -1 and replications to '0' and other basic 
 configurations required for better writing.

火花:

2节点EMR群集,具有

代码语言:javascript
运行
复制
 2 Core instances
  - 8 vCPU, 16 GiB memory, EBS only storage
  - EBS Storage:1000 GiB

1 Master node
  - 1 vCPU, 3.8 GiB memory, 410 SSD GB storage

ES索引在映射中定义了16个分片。

在运行作业时具有以下配置,

代码语言:javascript
运行
复制
executor-memory - 8g
spark.executor.instances=2
spark.executor.cores=4

并使用

代码语言:javascript
运行
复制
es.batch.size.bytes - 6MB
es.batch.size.entries - 10000
es.batch.write.refresh - false

在此配置中,我尝试加载100万个文档(每个文档的大小为1300Bytes),因此它在每个ES节点上加载500条记录/文档。

在spark日志中,我看到了每项任务

代码语言:javascript
运行
复制
 -1116 bytes result sent to driver

Spark代码

代码语言:javascript
运行
复制
    JavaRDD<String> javaRDD = jsc.textFile("<S3 Path>");
    JavaEsSpark.saveJsonToEs(javaRDD,"<Index name>");

此外,当我查看ES集群中的In-Network图时,它非常低,我看到EMR没有通过网络发送大量数据。有没有办法让Spark发送适当数量的数据来加快写入速度?

是否有任何其他配置我遗漏了调整。因为我看到每个es实例每秒500个文档更低。有没有人可以指导我在这个设置中缺失了什么,以提高我的es写入性能

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-10-18 23:54:29

您可能在这里有一个问题。spark.executor.instances=2

您被限制为两个executors,根据您的集群配置,您可以有4个。我会将其更改为4或更大。我也可以尝试executor-memory = 1500M,cores=1,instances=16。我喜欢在内存中留下一点开销,这就是为什么我从2G下降到1.5G (但你不能做1.5G,所以我们必须做1500M)。如果你是通过你的执行器连接的,这将会提高性能。

需要一些代码来进一步调试。我想知道你是否只在你的驱动中连接到elastic search,而不是在你的worker节点中。这意味着您只能获得一个连接,而不是每个executor都有一个连接。

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

https://stackoverflow.com/questions/46813305

复制
相关文章

相似问题

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