导读:熵简科技大数据处理系统目前已经累计完成 3.7 PB 规模的大数据处理和分析,覆盖了超 2000+
数据源,涉及丰富的数据类型,如宏观经济数据、电商招聘等另类数据、研报新闻等文本类数据。这背后,是一个处理PB级数据的离线大数据处理架构。本文从离线大数据处理的数据存储选型要点入手,详细介绍如何构建一套基于对象存储的离线大数据处理框架。同时,作为彩蛋,我们在文章最后一部分,介绍了基于该大数据处理框架的电商大数据实践案例,该数据集已被广泛应用于金融投资分析中。
作者信息
本文出自熵简科技大数据团队,团队致力于构建高效率、低成本和低运维的大数据处理系统,为熵简科技应用层及中台层各项服务提供海量的算力支持,涉及数据清洗、数据融合、数据核验、数据建模等多种处理能力。
1、背景
随着大数据时代的到来,当前互联网上的各类数据急剧膨胀。庞杂的信息需要经过采集、清洗、分析才能形成真正有价值的信息,从而为各类机构和企业提供决策依据。作为一家提供全域数据智能服务的科技公司,熵简科技的数据服务是所有业务的核心基础。
目前,熵简科技大数据处理系统已经累计完成 3.7 PB 规模的大数据处理和分析,覆盖了超 2000+ 数据源,涉及丰富的数据类型,如宏观经济数据、电商招聘等另类数据、研报新闻等文本类数据。
这背后,是一个处理PB级数据的离线大数据处理架构。在这个PB级离线数据处理的架构中,最重要的两个部分便是数据存储和计算引擎,各自的核心需求如下:
1.1 数据存储
原始数据是来自于互联网的海量数据,其特点是数据量大,并且随着时间的推移不断的膨胀。
很多原始数据是只有在特定的时间内才能采集到的,如果丢失将不能进行恢复,是一个不可挽回的损失。
因此,数据存储的要求要保证:
1、大量数据的存储(月增幅TB级)
2、强大的IO能力
3、支持增量数据的追加写入和读取
4、稳定可靠
1.2 计算引擎
数据处理需要应对的事情是面对不断膨胀的数据不仅仅需要进行新增数据的处理,还要面临可能因为算法调整需要重新计算所有历史数据的情况。
因此,数据处理要求保证:
1、大量数据处理的能力(PB级别)
2、高效的数据处理能力(月度或者日度的数据更新需要在小时级别处理完毕)
3、稳定、鲁棒性高,在出错的情况下可以迅速进行调整和步骤级别恢复
4、开发和学习成本低
2、数据存储技术选型
2.1 对象存储介绍
对象存储是一种可以水平扩展的分布式数据存储,其中每个数据单元存储称为一个对象,实际上可以是任何类型和任何大小的数据。对象存储中的所有对象都存储在单个平面地址空间中,而没有文件夹层次结构。
当前市面上最有名的对象存储非 AWS S3 莫属,阿里云也提供了类似的存储服务 Aliyun OSS。其特点就是高扩展性(几乎无限的存储空间),可用性和持久性(11个9的持久性保证),高性能,低成本,丰富的支持(Hadoop s3a等)。基于云服务商提供的对象存储服务,使用 RESTful API 可以在互联网任何位置存储和访问数据,同时也能选择多种存储类型以全面优化存储成本。
除了云服务商提供的对象存储服务之外,开源社区也提供了对象存储服务,MinIO 是其中的佼佼者。MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容 AWS S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,一个对象文件可以是任意大小,从数 KB 到最大 5TB 不等。
丰富的云厂商支持和开源社区支持,保证了使用对象存储作为存储介质具有了私有化部署的可能,也为 ToB 的大数据服务提供了更多的技术方案。
2.2 存储成本对比
与文件类型和块类型存储不同,对象存储没有归档层次结构,并且元数据完全可自定义,因此与文件或块存储相比,硬件限制要少得多;加上对象存储的横向扩展性,其存储成本远远低于其他类型的存储。
我们以阿里云上的 OSS、Table Storage、文件存储NAS、普通云盘四类存储服务为例ÿ