百度Elasticsearch大数据实践:从云分析到CASIO业务

需积分: 16 43 下载量 86 浏览量 更新于2024-07-20 收藏 2.09MB PPTX 举报
“百度Elasticsearch实践分享了百度在使用Elasticsearch进行大数据分析时的经验,包括面临的挑战、解决方案以及对ES的优化与改进。” 在“百度Elasticsearch实践”中,我们可以了解到Elasticsearch在百度大数据部的重要应用。Elasticsearch(简称ES)是一个被广泛应用的开源搜索引擎,不仅用于全文检索,也被广泛用于数据分析。它在Wikipedia、Github、Quora、Facebook等知名公司中有使用,同时也在 Goldman Sachs、Ubnt、Foursquare和LinkedIn等企业中用于面向分析的场景,如OLAP(在线分析处理)和报告生成。 在百度,Elasticsearch被定位为一个用于OLAP Reporting和多维分析的工具,能够处理结构化和非结构化数据,尤其适用于文本数据分析。自2013年10月开始,百度内部已有20多个业务线采用Elasticsearch,涵盖云分析、网盟、预测、文库、直达号、钱包和风控等多个领域。单个集群每天处理的数据量高达30TB,总处理量超过60TB,使用了近300台机器,运行500+ ES节点。 在实际应用中,百度遇到了一些挑战。例如,在云分析业务中,需要处理大量文本数据的分词和索引构建,以及应对数万用户的索引分片管理和元数据管理问题。fielddata的内存占用也是一个重大挑战,可能导致Out-of-Memory(OOM)错误。为解决这些问题,百度采取了以下策略: 1. 根据索引大小设置不同的分片数,通过type合并索引,以优化资源利用。 2. 针对非分词字段,将数据存储为docvalue,减少内存消耗。 3. 分离master node、data node和client node,以提高系统性能和稳定性。 4. 设置fielddata内存占用的软硬限制,并设定有效期,避免长时间占用内存。 在casio业务中,面对字段不确定、大量数据持续导入以及高并发的聚合查询需求,百度采用了动态mapping以适应未知字段,通过数据分发和批量导入提升效率,以及全部使用docvalue存储,减少内存消耗。此外,使用模板进行数据管理,按照天级别进行分区,以满足小时级和天级的快速聚合分析需求。 通过这些实践,百度不仅展示了Elasticsearch在大数据分析领域的强大能力,还分享了他们在优化ES性能、处理大规模数据和应对复杂查询需求方面的宝贵经验。这些经验对于任何正在或计划使用Elasticsearch进行大数据处理的企业都具有重要的参考价值。