我们正在使用 ES-HADOOP 插件将数据从 Hadoop HBASE 表推送到 Elasticsearch 集群。以下是集群详细信息。
- 弹性搜索版本:2.3.5
- 数据节点:3
- 主节点:3
- 客户端节点:1
数据节点也是主节点。
- 数据/主节点堆:20GB
- 客户端节点堆:3GB
- 每个索引的主分片数:5
- 每个索引的副本分片数:1
当我们在 Spark 上执行作业以及在一段时间后将数据从 Hadoop 推送到 Elasticsearch 的阶段时,我们开始获取ElasticSearch Bailing Out
.
我们怀疑 Elasticsearch 可以为 Bulk API 处理的并发连接数超过了 Spark 执行器,因为发布的最大连接数 Elasticsearch 开始拒绝写入请求。
我们如何确定 ElasticSearch 客户端节点可以处理多少并发批量 API 连接并成功写入数据,以及每个批量 API 请求的最大文档数应该是多少?
对于需要在一小时内索引 80-90 GB 数据的写入操作,我们应该研究哪些参数来优化 ElasticSearch 集群?