作者回复: 谢谢你指出的问题。 你说的没错。应该是分片数((replicas and primaries),而不是主分片数,ppt上写不对
作者回复: 没看到你代码,也不知道究竟是spark的瓶颈还是es的瓶颈。如果是es闲置,spark也闲置,可以考虑使用bulk写入,增加线程 https://blog.csdn.net/weixin_42529806/article/details/105055514
作者回复: 你说设置分片为56?是指的单个索引吗?你一共有多少个索引?每个索引的shard和replica设置成多少?每个节点可以有多少个分片?确保这些设置都是正确的。 如果是几台数据节点的CPU很高,那先要分析是否存在数 据不均衡的现象。同时也要查看,每台机器上实际有多少个shard。 另外,如果CPU负载高和特定的索引相关,则需要看一下索引的mapping设定。避免一些不必要的分词等操作。
作者回复: 副本的设置 你通通过 put index-name 即可修改。 replica写在settings 里面。 至于你说的数据源源不断写入,那设置副本为0未必合适,这个需要你自己权衡
作者回复: 文档会根据doc id,算出一个hash值,根据这个hash ,将文档写入相对应的分片。所以,只要有多个分片,肯定是再多个分片上进行写操作
作者回复: 设置成-1可以减少相关的操作,提高写入性能。但是文档会无法被搜索。因此要记得在导入数据后将这个数值设置成正常值。
作者回复: 我在这里不直接给你答案。你自己找出的答案印象会更深。你可以去看一下建模相关的几节,里面应该有提到。如果还是不清楚,可以重新提问