/ES-Fastloader

基于Hadoop Map/Reduce分布式计算能力,快速为海量数据构建ElasticSearch索引

Primary LanguageJavaApache License 2.0Apache-2.0

【简介】

为了能够快速地为大量的Hive表中的离线数据生成索引,我们采用了一种Build & Push的机制来完成。这种机制简单来说就是利用Hadoop强大的并行计算能力,将indexing分散到多个reducer节点上去。每一个reducer将会产生一个完整的索引分片。最后我们将这些索引分片收集起来,并加载到线上的ES集群中

【特性】

  • 支持批量构建ES索引,可在1-2小时内极快速构建几十TB级的数据,解决海量数据构建ES时索引文件构建时效低下问题
  • 支持计算能力的水平扩展,且方便扩容,通过增加机器资源,可以进一步增加索引构建速度和处理的数据量

【执行环境】

  • Java: JDK8及以上
  • ES: 2.3.X版本及以上
  • Hadoop: 通用版本

【启动步骤】

配置编辑

在client.properties配置文件中编辑配置

打包

mvn clean package -Dmaven.test.skip=true -Ppro

启动

在hadoop平台执行: sh mr2es.sh 配置项, 举例: sh mr2es.sh bigpassenger

es集群load数据

参考:src/main/java/com/didi/bigdata/mr2es/esCode