当前位置: 首页 > article >正文

大数据迁移时业务应用有哪些可能的变更

在将大数据平台从一个云厂商迁移到另一个云厂商时,原厂商的业务应用需要根据新环境的技术栈、服务接口和网络架构进行适配。
以下是迁移过程中在各个层需要思考的点。


一、存储层适配

1. 对象存储路径调整
  • 原厂商存储路径oss://old-bucket/data/
  • 新厂商存储路径s3://new-bucket/data/obs://new-bucket/data/
  • 修改内容
    • 业务代码中的文件读写路径(如 Spark、Flink 的输入输出路径)。
    • 配置文件中的存储路径(如 Hive 表位置、Flink Checkpoint 路径)。
2. 文件系统插件替换
  • 原厂商插件:阿里云 OSS Hadoop 插件 (hadoop-aliyun.jar)。
  • 新厂商插件:AWS S3 SDK (hadoop-aws.jar) 或华为云 OBS 插件 (hadoop-huaweicloud.jar)。
  • 修改内容
    • 替换大数据组件(如 Spark、Hadoop)的依赖库。
    • 更新 core-site.xml 中的文件系统实现类:
      <!-- 原配置 -->
      <property>
        <name>fs.oss.impl</name>
        <value>com.aliyun.oss.hadoop.OSSFileSystem</value>
      </property>
      
      <!-- 新配置(AWS S3) -->
      <property>
        <name>fs.s3a.impl</name>
        <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
      </property>
      

二、计算引擎兼容性调整

1. 服务端点与认证
  • 原厂商服务:阿里云 MaxCompute、EMR。
  • 新厂商服务:AWS EMR、华为云 MRS。
  • 修改内容
    • 更新计算引擎的访问端点(如 Spark Master URL、Flink JobManager 地址)。
    • 替换认证方式(如 AK/SK、IAM 角色):
      # 原阿里云 AK/SK
      spark.hadoop.fs.oss.accessKeyId=xxx
      spark.hadoop.fs.oss.accessKeySecret=xxx
      
      # 新 AWS S3 认证
      spark.hadoop.fs.s3a.access.key=xxx
      spark.hadoop.fs.s3a.secret.key=xxx
      
2. 版本与依赖管理
  • 版本差异:新厂商可能使用不同的 Hadoop、Spark 版本。
  • 修改内容
    • 调整业务代码中与版本相关的 API(如 Spark 3.0 与 3.3 的兼容性)。
    • 更新 Maven/Gradle 依赖中的组件版本号。

三、网络与安全配置

1. 网络架构适配
  • 原厂商网络:阿里云 VPC、安全组、NAT 网关。
  • 新厂商网络:AWS VPC、安全组、Internet Gateway。
  • 修改内容
    • 调整业务应用的网络访问规则(如白名单 IP、子网配置)。
    • 更新跨 VPC 访问的 VPN 或专线配置。
2. 安全策略迁移
  • 原厂商安全:阿里云 RAM 角色、STS 临时令牌。
  • 新厂商安全:AWS IAM 角色、华为云 IAM。
  • 修改内容
    • 重构权限策略文件(如 IAM Policy JSON)。
    • 更新 SDK 中的安全令牌获取逻辑。

四、数据同步与一致性

1. 数据迁移工具
  • 批量迁移:使用 DistCp 同步 HDFS 数据:
    hadoop distcp -Dfs.s3a.access.key=xxx -Dfs.s3a.secret.key=xxx \
      hdfs://old-nn:8020/data s3a://new-bucket/data
    
  • 增量同步:通过 Kafka 或 Flink CDC 实时同步数据库变更。
2. 元数据迁移
  • Hive 元数据:导出 Hive Metastore 表结构并导入新环境。
  • 数据血缘:迁移 Atlas 或 DataHub 中的元数据关系。

五、服务发现与 DNS 切换

1. 域名解析调整
  • 原厂商 DNS:阿里云解析 data.old.com 到内网 SLB。
  • 新厂商 DNS:AWS Route53 解析 data.new.com 到 ALB。
  • 修改内容
    • 更新业务应用中的服务调用地址。
    • 配置 CNAME 记录逐步切换流量。
2. 服务注册与发现
  • 原厂商注册中心:阿里云 Nacos。
  • 新厂商注册中心:AWS Cloud Map 或自建 Consul。
  • 修改内容
    • 调整微服务的注册中心配置。
    • 更新服务发现客户端的依赖和 API。

六、监控与日志重构

1. 监控工具迁移
  • 原厂商监控:阿里云 ARMS、SLS。
  • 新厂商监控:AWS CloudWatch、华为云 LTS。
  • 修改内容
    • 替换业务应用的监控 SDK 和埋点。
    • 重构 Grafana 仪表盘的数据源。
2. 日志采集适配
  • 原厂商日志:阿里云 Logtail。
  • 新厂商日志:AWS CloudWatch Logs。
  • 修改内容
    • 更新日志采集 Agent 的安装与配置。
    • 修改日志存储路径和索引规则。

七、第三方服务集成

1. 消息队列与数据库
  • 原厂商服务:阿里云 RocketMQ、PolarDB。
  • 新厂商服务:AWS SQS、RDS。
  • 修改内容
    • 替换 SDK 的 Maven 依赖(如 AWS Java SDK)。
    • 调整连接字符串和认证参数。
2. 其他云服务
  • AI 服务:替换阿里灵积与 AWS SageMaker 的 API 调用。
  • 函数计算:重构阿里云函数计算到 AWS Lambda。

八、迁移验证与回滚

1. 验证步骤
  • 数据校验:通过 checksum 对比迁移前后的数据一致性。
  • 功能测试:执行端到端业务场景测试。
  • 性能压测:验证新环境下的吞吐量和延迟。
2. 回滚方案
  • 数据回退:保留原厂商数据备份,快速恢复。
  • DNS 切换:将流量切回原厂商域名。
  • 代码版本控制:通过 Git 标签快速回退代码。

总结

迁移过程中需要修改的内容可归纳为以下优先级:

优先级修改项风险等级工具支持
存储路径与认证DistCp、SDK 文档
网络与安全配置Terraform、CloudFormation
服务发现与 DNSRoute53、Consul
第三方服务集成AWS/Aliyun SDK
监控与日志CloudWatch、Prometheus

建议采用 逐步迁移 策略,通过蓝绿部署或金丝雀发布降低风险,同时结合自动化工具(如 Terraform、Ansible)提升效率。


http://www.kler.cn/a/559141.html

相关文章:

  • 【Redis】基础知识入门
  • Linux CentOS 上 Ollama 的安装与部署:从入门到实践
  • Ae 效果详解:3D 通道提取
  • Sliding Window Attention(滑动窗口注意力)解析: Pytorch实现并结合全局注意力(Global Attention )
  • CSS—盒模型(3分钟结合示例精通盒模型)
  • windows使用命令解压jar包,替换里面的文件。并重新打包成jar包,解决Failed to get nested archive for entry
  • Python 基本语法的详细解释
  • 深度解析:大模型在多显卡服务器下的通信机制与分布式训练——以DeepSeek、Ollama和vLLM为例
  • vue前端菜单权限控制
  • 【Java 面试 八股文】JVM 虚拟机篇
  • 谷歌浏览器更新后导致的刷新数据无法显示
  • 给小米/红米手机root(工具基本为官方工具)——KernelSU篇
  • Pytorch使用手册-音频数据增强(专题二十)
  • 基于 JavaWeb 的 SSM+Maven 微信小程序快递柜管理系统设计和实现(源码+文档+部署讲解)
  • C++ 编程语言简介
  • 微信小程序 - 页面跳转(wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch)
  • 有时候通过无线上网,有线共享局域网通过该有线为网关进行上网,设置指定的网关IP信息
  • RabbitMQ学习—day5—交换机
  • Visual Studio中打开多个项目
  • vue2.x 中子组件向父组件传递数据主要通过 $emit 方法触发自定义事件方式实现