HDFS中数据迁移的使用场景和考量因素

HDFS中数据迁移的使用场景和考量因素

数据迁移使用场景

  • 冷热集群数据同步、分类存储
  • 集群数据整体搬迁
    • 当公司业务迅速的发展,导致的当前的服务器数量资源出现临时紧张的时候,为了更高效的利用资源,会将A机房数据整体迁移到B机房的,原因可能是B机房机器多,而且B机房本身开销较A机房低些等
  • 数据的准实时同步
    • 数据准实时同步的media在于数据的双倍份可用,比如某天A集群突然宣告不允许再使用了,此时可以将线上使用集群直接切向B的同步集群,因为B集群实时同步A集群数据,拥有完全一致的真实数据和元数据信息,所以对于业务方使用而言是不会收到任何影响的。

数据迁移要素考量

  • Bandwidth-带宽
    • 带宽用的多了,会影响到线上业务的任务运行,带宽用的少了又会导致数据同步满的问题。
  • performance-性能
    • 是采用简单的单机程序?还是多线程的性能更佳的分布式程序?
  • data-increment-增量同步
    • 当TB,PB级别的数据需要同步的时候,如果每次以全量的方式去同步数据,结果一定是非常糟糕。如果仅针对变化的增量数据进行同步将会是不错的选择。可以陪着HDFS快照等技术实现增量数据同步。
  • syncable-数据迁移的同步性
    • 数据迁移的过程中需要保证周期内数据是一定能够同步完的,不能差距太大。比如A集群7天内的增量数据,我只要花半天就可以完全同步到B集群,然后我有可以等到下周再次进行同步,最可怕的事情在于A集群的7天内的数据,我的程序花了7天还同步不完,然后下一个周期又来了,这样就无法做到准实时的一致性,其实7天还是一个比较大的时间,最好是能达到按天同步。

HDFS分布式拷贝工具-DistCp

  • DistCp是Hadoop中的一种工具,在hadoop-tools工程下,作为独立子工程存在。
  • 定位用于数据迁移,定期在集群之间和集群内部备份数据
  • 在备份过程中,每次运行distcp都成为一个备份周期。尽管性能相对较慢,但他的普及程度已经越来越高
  • distcp底层使用MapReduce在集群之间或并行在同一集群内复制文件。执行复制的MapReduce只有mapper阶段

distcp的优势性能

  • 带宽限流
    • distcp可以通过命令参数bandwidth来为程序进行带宽限流
  • 增量数据同步
    • 在distcp中可以通过updata,append和diff这三个参数实现增量同步
    • updata 只拷贝不存在的文件或者目录
    • append 最佳目标路径下已存在的文件
    • diff 通过快照的diff对比信息来同步源端路径与目标路径
      updata解决了新增文件、目录的同步。append解决已存在的增量更新同步。diff解决删除或重命名类型文件的同步
  • 高效的性能:分布式特性
    • distcp底层使用MapReduce执行数据同步,MapReduce本身是一类分布式程序

命令

  • 其中source_path,target_path需要带上地址前缀以区分不同的集群
bash 复制代码
hadoop distcp hdfs://src_cluster:8020/user/data hdfs://dest_cluster:8020/user/data_backup

这个命令告诉distcp工具将hdfs://src_cluster:8020/user/data目录下的数据复制到hdfs://dest_cluster:8020/user/data_backup目录下。

相关推荐
rui锐rui11 分钟前
大数据学习6:Sqoop数据迁移工具
大数据·学习·sqoop
小牛头#5 小时前
clickhouse 各个引擎适用的场景
大数据·clickhouse·机器学习
lifallen7 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
元宇宙时间7 小时前
全球发展币GDEV:从中国出发,走向全球的数字发展合作蓝图
大数据·人工智能·去中心化·区块链
张先shen9 小时前
Elasticsearch RESTful API入门:基础搜索与查询DSL
大数据·spring boot·elasticsearch·搜索引擎·全文检索·restful
isNotNullX11 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark
数据库安全14 小时前
首批|美创智能数据安全分类分级平台获CCIA“网络安全新产品”
大数据·人工智能·web安全
袋鼠云数栈15 小时前
使用自然语言体验对话式MySQL数据库运维
大数据·运维·数据库·后端·mysql·ai·数据治理·数栈·data+ai
阿里云大数据AI技术15 小时前
数据 + 模型 驱动 AI Native 应用发展
大数据·数据库·人工智能