【FusionInsight Elasticsearch二次开发最佳实践】二次开发建议

举报
znzhang 发表于 2020/07/09 17:47:09 2020/07/09
【摘要】 FusionInsight Elasticsearch二次开发建议
  1.  集群安装为安全版,则需要保证客户端与服务端的时间一致

    如果集群为安全版,需要进行kerberos认证,则需要服务端与客户端的时间一致,时间一致需要注意时区之间的时差的转换。如果时间不一致,会导致客户端认证失败,后续业务流程无法执行。

  2. 在应用程序结束之前调用Client的关闭函数

    在应用程序结束时需要调用Clientclose()方法。任务运行过程中不要频繁创建和关闭Client

  3. 使用批量请求,设置合理的数据条数

    当前集群的最佳批量请求大小,可以从5MB开始测试,缓慢增加这个大小,直到写入性能不能提升为止。

    使用bulk命令进行批量索引数据时,每批次提交的数据大小为5~15MB

    比如每条数据大小为1k,那么建议批量提交的数据条数为5000条。

  4. 每个批量请求中只处理一个索引的数据

    一个bulk请求只写入一个索引的数据,不建议一个bulk请求同时写入多个索引的数据,不同索引的数据分多个bulk请求提交。

  5. 使用多线程方式并发索引数据

    比如32核的主机,可设置线程数为30~60个。应用程序使用多线程并发索引数据,推荐的并发线程数为主机CPU核数的1~2倍。

  6. 运行多个客户端并发执行任务

    运行多个客户端并发执行索引/查询任务,提升性能。

  7. 客户端配置多个EsNode实例的IPPort列表

    建议所有的EsNode实例的IP和Port都配置在客户端IP列表中。客户端需要配置多个EsNode实例的IPPort列表,实现负荷分担和负载均衡,避免单EsNode性能瓶颈。

  8. 客户端禁止配置EsMaster节点的IPPort

    EsMaster实例为重要的管理进程,为确保Elasticsearch集群稳定性,不允许在客户端的IP列表中配置EsMaster节点IP和Port。

  9. 分配足够多的堆内存给EsMasterEsNode实例

    在FusionInsight Manager界面,单击“集群 > 待操作集群的名称 > 服务 > Elasticsearch > 配置 > 全部配置”,搜索框输入“GC_OPTS”,修改“GC_OPTS”参数值中的“-Xms”和“-Xmx”的值。

    设置Xmx不要大于物理内存的50%,用来确保有足够多的物理内存预留给操作系统缓存。若机器内存的50% > 实例数*30G,设置为30G,否则设置为机器内存的50%/实例数。

    不要设置Xmx超过JVM用来压缩对象指针的cutoffcompressed oops),精确的cutoff可能不同,但接近于31G,因此最大设置为30G

  10. Elasticsearch创建索引建议

    为了减少索引数量并避免非常庞大的映射,请考虑将相同索引结构的数据存储在相同的索引中。

    避免将不相关的数据放在同一个索引中,以避免稀疏,将这些文件放在不同的索引中通常会更好。

  11. 合理规划索引的Shard

    主分片个数一旦确定,就不可以更改。副本分片个数可以根据需要随时修改。

    每个分片都可以处理索引和查询请求,在设定分片数目时,可从以下几个方面考虑:

    建议单个分片保存的数据量在10~20GB左右,最大不超过30GB

    根据索引预计承载的最大数据容量和单个分片容量确定主分片个数。

    为了提升数据可靠性,合理设置副本分片个数,至少设置为1,如果集群的存储空间足够,推荐设置为2

    不要返回大的结果集。

  12. 不要返回大的结果集

    Elasticsearch被设计为一个搜索引擎,这使得它非常擅长获取与查询匹配的最优文档,但是不适合用来检索与特定查询匹配的所有文档。Elasticsearch为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,如果需要这样做,请确保使用Scroll API。

  13. 安装EsClient实例

    EsClient实例用于接收查询请求、查询结果聚合,EsNodeX用于接收写入请求、数据写入,提升集群性能和稳定性。

对于读写业务量较大的Elasticsearch集群,建议安装3~10EsClient实例。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。