为了能够快速地为大量的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
参考:src/main/java/com/didi/bigdata/mr2es/esCode