elasticsearch—从hdfs到es的数据加载需要很长时间

vlurs2pr  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(582)

我在配置单元中创建了一个外部表,需要将数据移动到es(共2个节点,每个节点有1 tb)。对于9gb数据的源表,下面的常规查询需要很长时间(超过6小时)。

INSERT INTO TABLE <ES_DB>.<EXTERNAL_TABLE_FOR_ES> 
SELECT COL1, COL2, COL3..., COL10 
  FROM <HIVE_DB>.<HIVE_TABLE>;

es索引默认有5个碎片和1个副本。增加碎片的数量会加速食物的摄入吗?有人能提出一些改进建议来加速es节点的摄取吗。

mrphzbgm

mrphzbgm1#

您没有提到将数据输入es的方法,因此很难确定您是否使用了摄取管道或什么技术来弥合这一差距。有鉴于此,我将坚持关于如何优化elasticsearch的摄取的一般建议。
elastic发布了一些优化摄入系统的指南,我们发现有三点确实起到了作用:
关闭副本:在取消测试数据时,将副本数设置为零,以消除在取消测试数据时复制数据的需要。这是索引级别设置(“副本数”)
不要指定一个id:在数据库模式中不清楚您是否要跨任何标识符进行Map,但是您是否可以避免将文档id指定给elastic,并让它指定自己的id,从而显著提高性能。
使用并行批量操作符:使用bulkapi将数据推送到es中,并用多个线程将其提供给es,这样它总是有多个批量请求在服务器端工作。
最后,您是否安装了kibana并监视了节点以了解它们受什么限制?特别是cpu或内存?

相关问题