主要问题

大数据上云面对的问题
1、集群管控工具 Ambari 的替换

  • Ambari 是基于 CDH 的大数据管理平台,但是上云之后,云平台一般提供了自己的管控工具
  • 原先的调用 YARN,到云上之后,可能是基于 k8s 的方式做调度,整个调度系统就全部要变了
  • 好在调度系统本身是无状态的,而 Ambari 需要存储一些元数据,迁移时,Ambari 的替换将是一个大动作

2、安全性问题

  • 自建IDC,或者私有部署,主要依赖 Ranger、Kerberos
  • 上云之后,一般平台提供了相应版本的 Hive、Spark、Flink定制化组件
  • 但如果要将自研组件跟这些组件打通,以及权限管理,也需要进一步细化
  • 另外公有云,还需要搭建防火墙,ddos 等服务

3、数据治理方面

  • CDH或者私有部署,一般利用开源的组件如 atlas,或者自研的
  • 上云之后,一般云平台会提供相应的服务,这里需要对比两边的功能细节
  • 数据治理的元数据存储,之前是本地的一些数据库或者 HDFS,现在也需要替换

4、成本问题

  • 本地部署比较好预估,多少机器,机器配置,租用的还是自建的等
  • 人员费用,电费,租金,CDH的license等
  • 上云之后是按需计费,不同厂家不一样,需要详细的调研
  • 重要的服务可以包时段计费,不那么重要的可以考虑抢占式收费策略

5、存储迁移

  • 这是一个重点,尤其是本地 HDFS -> S3,两边协议不同,强一致 vs 最终一致
  • 云上搭建HDFS集群是不可行的,无法利用云的弹性,而且云上存储本身有三副本,就变成 9 副本了
  • Delta-Lake等数据格式,就是为了兼容 S3存储的问题而开发的,HDFS 的 API 和 S3 的 API 也不同
  • HDFS -> S3,可以使用 JuiceFS 作为中间适配层
  • 大数据组件的村算分离后,可以用 alluxio 作为缓存层

6、多云高可用

  • ETL、计算都是无状态的,只有存储是有状态,但S3本身具有高可用
  • 考虑到单云的锁定或者单点问题,需要考虑多云架构
  • 比如数据,放到另一个云A上,做冷备存储降低成本
  • 一些聚合后的应用数据,可以放到云B 上,准备好相应的服务,可以一键启动提供服务
  • 多云之前的迁移需要走公网,数据传输费用可能较高,速度较慢

7、混合云

  • 混合云架构,本地一些私有服务不想上云
  • 需要混合云架构,需要考虑到安全性,网络传输安全性等
  • 云上和下线的可能都需要打通,需要部署专线,费用问题需要单独核算

8、适配其他业务线

  • 本地的大数据组件可能有些废弃了,云上有类似的 SaaS产品,需要做适当调整了
  • 跟在线应用服务,偏OLTP相关的服务打通
  • 跟机器学习相关组件打通,这个还好,云上都提供了相关服务

9、迁移细节

  • 模拟1:1 的云上部署,将本地数据拉专线放到云上
  • 模拟各种调度的,ETL,检查是否正常
  • 计算引擎的各种SQL,在本地跑通过的,需要上云 1:1 检查,对比两边的性能,这块是关键
  • 有些本地的上云可能升级了,或者云上没有,这些都需要调整
  • 回滚方案

大数据上云

大致三类

  • 自建 IDC 迁移上云
  • CDH迁移上云
  • 云上自建迁移

美图自建 IDC,迁移至 华为云的架构

敦煌网的架构,之前是 自建 IDC 的

敦煌网迁移后的架构,这里使用了混合云架构

参考