Uber 迁移批处理数据分析和机器学习训练堆栈到 Google Cloud Platform
Uber 最近在其官方工程博客中披露了将其批处理数据分析和机器学习(ML)训练堆栈迁移到 Google Cloud Platform(GCP)的战略。Uber 运营着世界上最大的 Hadoop 安装之一,管理着超过一个艾字节的数据,分布在两个区域的数万台服务器上。开源数据生态系统,尤其是 Hadoop,一直是 Uber 数据平台的基石。
迁移战略的两步走
初始迁移
Uber 的初始策略包括利用 GCP 的对象存储作为数据湖存储,同时将其余的数据堆栈迁移到 GCP 的基础设施即服务(IaaS)。这种方法允许快速迁移,最小化对现有作业和管道的干扰,因为可以在 IaaS 上复制其本地软件堆栈、引擎和安全模型的精确版本。
利用云原生服务
在初始迁移完成后,Uber 工程团队计划逐步采用 GCP 的平台即服务(PaaS)产品,如 Dataproc 和 BigQuery,以充分利用云原生服务的弹性和性能优势。
迁移的指导原则
为确保迁移的顺利进行,Uber 团队制定了以下指导原则:
- 最小化使用中断:通过将大部分批处理数据堆栈按原样迁移到云 IaaS,Uber 旨在保护用户免受其工件或服务变化的影响。
- 依赖云存储连接器:实现 Hadoop 文件系统接口到 Google 云存储的连接,确保 HDFS 兼容性。
- 开发数据访问代理:为 Presto、Spark 和 Hive 开发数据访问代理,支持选择性地将测试流量路由到基于云的集群。
- 利用云无关的基础设施:Uber 现有的容器环境、计算平台和部署工具设计为在云和本地之间无关,便于将其批处理数据生态系统微服务扩展到云 IaaS。
- 构建和增强数据管理服务:支持选定的云服务,确保强大的数据治理。
迁移的技术细节
桶映射和云资源布局
Uber 团队专注于桶映射和云资源布局,将 HDFS 文件和目录映射到云对象,并应用不同粒度的 IAM 策略。
安全集成
适应现有的 Kerberos 基于令牌和 Hadoop 委托令牌,以支持无缝的用户、组和服务帐户认证和授权。
数据复制
使用 HiveSync 进行权限感知的双向数据复制,允许 Uber 在主动-主动模式下操作。
提供新的 YARN 和 Presto 集群
在 GCP IaaS 上提供新的 YARN 和 Presto 集群,确保迁移过程中的平滑过渡。
预期挑战和应对策略
Uber 预计在迁移过程中会遇到存储性能差异和遗留系统问题等挑战。团队计划通过利用开源工具、利用云弹性进行成本管理、将非核心用途迁移到专用存储以及主动测试集成和废弃过时实践来应对这些挑战。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。