数据迁移到MRS前信息收集
由于离线大数据搬迁有一定的灵活性,迁移前需要掌握现有集群的详细信息,以能够更好地进行迁移决策。
业务信息调研
- 大数据平台及业务的架构图。
- 大数据平台和业务的数据流图(包括峰值和均值流量等)。
识别平台数据接入源、大数据平台数据流入方式(实时数据上报、批量数据抽取)、分析平台数据流向。
数据在平台内各个组件间的流向,比如使用什么组件采集数据,采集完数据后数据如何流向下一层组件,使用什么组件存储数据,数据处理过程中的工作流等。
- 业务作业类型Hive SQL、Spark SQL、Spark Python等,是否需要使用MRS的第三方包,参考MRS应用开发样例。
- 调度系统,需要考虑调度系统对接MRS集群。
- 迁移后,业务割接允许中断时长,识别平台业务优先级。
- 客户端部署要求。
- 业务执行时间段和高峰时间段。
- 大数据集群的数量和大数据集群功能划分,分析平台业务模型。
各个集群或各个组件分别负责什么业务,处理什么类型的数据。比如实时/离线数据分别使用什么组件处理、数据格式类型、压缩算法等。
集群基本信息收集
| 参数 | 说明 |
|---|---|
| 集群名称 | - |
| 集群版本 | MRS、CDM等集群的版本信息。 |
| 节点数及规格 | 调研现有集群节点数和节点规格。 如果集群硬件异构,请收集多种规格和对应节点数,参见表2。 例如:
|
| 是否开启Kerberos认证 | 是或否 |
| 权限控制及说明 | 调研各个开启ACL权限控制的组件和配置,通常涉及Yarn、Hive、Impala、HBase等组件。 使用Ranger、Sentry或组件开源的权限能力进行权限控制。 |
| 所在Region/AZ | 云上资源填写项 |
| 虚拟私有云 | 云上资源填写项 |
| 子网 | 云上资源填写项 |
| 安全组 | 云上资源填写项 |
| 节点组 | CPU和内存信息 | 磁盘和网络(按节点组统计) | HDFS | Yarn | ||||
|---|---|---|---|---|---|---|---|---|
| - | - | 磁盘信息(数据盘大小、磁盘IO、当前磁盘使用率和IO情况) | 网络(网卡带宽大小、网络读写速度和峰值) | NameNode | DataNode | JournalNode | NodeManager | ResourceManager |
| master1 | (16U64G) | - | - | 1 | - | 1 | - | 1 |
| master2 | (16U64G) | - | - | 1 | - | 1 | - | 1 |
| master3 | (16U64G) | - | - | - | - | 1 | - | - |
| Core-group1 | (32U128G)*数量 | - | - | - | 1 | - | 1 | - |
| Core-group1 | (32U129G) | - | - | - | - | - | - | - |
| Core-group1 | (32U130G) | - | - | - | - | - | - | - |
大数据组件信息
使用的大数据组件信息和规划的新版本大数据集群版本信息比较,主要识别版本差异可能对迁移过程的影响,以及对迁移后业务兼容性的影响。
| 大数据组件 | 源端集群版本 | 目的端集群版本(以MRS集群版本为准) | 说明 |
|---|---|---|---|
| HDFS/OBS(或其他文件存储系统) | Hadoop 2.8.3 | Hadoop 3.3.1 | - |
| Hive | 1.2.1 | 2.3.3 | 存储元数据的数据库:MySQL |
| HBase | 1.3.1 | 1.3.1 | - |
| Spark | 2.2.2 | 3.1.1 | - |
| Kafka | 1.1.0 | 2.11-2.4.0 | - |
| Oozie | 2.x | 5.1.0 | - |
| MySQL | 5.7.1 | RDS | - |
| Flink | 1.7 | 1.15 | - |
| ... | ... | ... | - |
待迁移的存量数据及数据量统计
| 大数据组件 | 待迁移数据的路径 | 数据量大小 | 文件个数或表个数 |
|---|---|---|---|
| HDFS/OBS(或其他文件存储系统) | /user/helloworld | XXX | 总共:XXX个文件 小于2 MB的文件数量:XXX个 |
| Hive | /user/hive/warehouse/ | XXX | 表个数:XXX |
| HBase | /hbase | XXX | 表个数:XXX Region个数:XXX |
每天新增数据量统计
| 大数据组件 | 待迁移的数据路径 | 新增数据量大小 |
|---|---|---|
| HDFS/OBS(或其他文件存储系统) | /user/helloworld | XXX |
| Hive | /user/hive/warehouse/ | XXX |
| HBase | /hbase | XXX |
网络出口带宽能力
- 迁移数据可以使用的最大网络带宽和专线带宽(是否可调)。
- 迁移数据作业每天可以运行的时间段。
流式Kafka集群信息收集
| 收集信息项 | 描述 |
|---|---|
| Kafka的Topic数量和名称 | - |
| Kafka的本地数据暂存时间 | 如果每个Topic配置不一样,按Topic粒度收集。 |
| 每个Topic的副本数和Partition数量 | 默认为2,副本数越多数据越可靠,也会消耗磁盘空间。 如果每个Topic配置不一样,按Topic粒度收集。 |
| Kafka生产和消费的流量大小 | 细化到Topic级别。 |
| Kafka客户端ACK配置Acks | - |
数据迁移模型样例
- 一个离线分析平台的客户业务系统,由Spark Streaming消费Kafka数据存入HDFS,HDFS上进行小文件合并后加载到Hive表中,运营人员可以通过Presto进行Hive数据查询。 图1 源集群业务图
- 针对大数据离线平台包括HDFS和Hive数据需要迁移,Kafka、Spark Streaming、HDFS、Hive、Presto的业务程序要在目的端集群上部署。 图2 迁移示意图