联合国如何实现数据探索的现代化,同时节省70%的成本

apache火花大数据容器的工作负载kubernetes海洋火花

背景:联合国全球平台的使命

在联合国官方统计大数据和数据科学专家委员会(UN- cebd)的管理下,全球平台构建了一个云服务生态系统,支持利用大数据等新数据源和创新方法开展官方统计的国际合作,并帮助各国衡量可持续发展目标,以落实2030年可持续发展议程。

AIS任务小组是一组来自全球各地的参与组织,由数十名统计学家组成,他们对使用AIS数据(关于船舶位置和速度的全球时间序列数据集)用于官方统计和实验指标感兴趣。任务小组使用联合国全球平台存储、管理和分析AIS数据,每年增加3000亿条记录。请看他们工作的一个例子:英国经济活动项目指标加快

挑战:HBase + EMR难以管理且成本高昂

该平台过去依靠HBase实例托管AIS数据,并在AWS EMR平台上运行Apache Spark对这些数据进行分析。联合国全球平台的数据团队在这一设置中遇到了几个挑战:

  • EMR集群过大(高峰负载除外),其自动伸缩能力不令人满意,导致成本高。
  • 当数十个用户同时运行相互竞争的查询时,集群会变得不稳定。
  • 最终用户可用的python库是有限的,因为安装附加库的过程很复杂。
  • 在HBase实例中保存多年的历史数据成本很高
  • HBase管理的复杂性

这种系统的高成本和缺乏灵活性促使人们寻找更好的解决方案。

解决方案:使用Ocean为Apache Spark降低70%的成本和更好的用户体验

新的平台架构:Apache Spark运行在EKS上,S3作为数据源,Jupyter笔记本托管在JupyterHub上作为主接口。

Apache Spark现在运行在Ocean为Apache Spark管理的Kubernetes (EKS)集群上。最终用户通过API提交程序化作业进行批处理,并连接Jupyter笔记本(托管在Jupyter Hub上)进行交互式数据探索。

  • 每个用户都有自己的一组资源(Spark driver, Spark executor),这些资源与其他资源是隔离的,并根据负载自动伸缩。
  • 用户可以以自助方式安装新的库,而不需要将它们添加到docker映像中就会影响其他库。docker映像中可以支持的库集几乎是无限的,从而可以更好地分析和报告所有需求。
  • Ocean for Apache Spark通过快速集群自动伸缩功能和额外的代码性能优化显著降低了成本。
  • 使用S3作为主要数据源进一步降低了成本,并在存储管理方面提供了额外的灵活性,同时提供了丰富的历史深度。
Baidu
map