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

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

  • 数据迁移使用场景
  • 数据迁移要素考量
  • HDFS分布式拷贝工具-DistCp
    • distcp的优势性能
    • 命令

数据迁移使用场景

  • 冷热集群数据同步、分类存储
  • 集群数据整体搬迁
    • 当公司业务迅速的发展,导致的当前的服务器数量资源出现临时紧张的时候,为了更高效的利用资源,会将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需要带上地址前缀以区分不同的集群
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目录下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python-网络爬虫.Request

Request python中requests库使用方法详解: 一简介: Requests 是Python语言编写,基于urllib, 采用Apache2 Licensed开源协议的 HTTP 库。 与urllib相比,Requests更加方便,处理URL资源特别流畅。 可以节约我…

解读随机森林的决策树:揭示模型背后的奥秘

一、引言 随机森林[1]是一种强大的机器学习算法,在许多领域都取得了显著的成功。它由多个决策树组成,而决策树则是构建随机森林的基本组件之一。通过深入解析决策树,我们可以更好地理解随机森林模型的工作原理和内在机制。 决策树是一种树状结…

JavaEE简单示例——在使用Tomcat的时候可能出现的一些报错

简单介绍: 在我们之前使用Tomcat的时候,经常会出现在启动的时候因为一些报错导致项目无法正常的启动,我们就对一些比较常见的报错来看一下可能导致的原因,以及出现报错之后如何去解决。 严重: Failed to initialize end point a…

小程序商品如何上传视频

小程序商品展示的方式在不断创新,除了传统的图片展示,视频成为了吸引用户注意力的重要方式之一。今天就讲解一下,商家怎么上传商品视频。 1. 商家需要准备好商品视频。商家可以自己拍摄商品的使用演示视频、产品介绍视频等,也可以…

shell脚本:使用mysqldump实现分库分表备份

一.什么是分库分表备份 分库分表备份是一种数据库备份策略,用于处理大型数据库系统中的数据分布和备份需求。当数据库的数据量非常大时,单个数据库可能无法满足性能和可扩展性的要求。为了解决这个问题,使用分库分表技术将数据库拆分成多个库…

fortran语言语法

FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应…

北漂Java程序员入职五个月的收获总结

👨‍💻博主主页:小尘要自信 👨‍💻本文专栏:Java程序员的成长 👨‍💻上一篇文章:告别过去,拥抱未来:一个Java开发者的成长之路 👨‍&a…

LRU缓存淘汰算法详解与实现

目录 1.什么是LRU算法 2.LRU算法原题描述 3.LRU算法设计 4.LRU算法细节分析 5.代码实现 1.什么是LRU算法 就是一种缓存淘汰策略。 计算机的缓存容量有限,如果缓存满了就要删除一些内容,给新内容腾位置。但问题是,删除哪些内容呢&#…

tinkerCAD案例:31. 3D 基元形状简介

tinkerCAD案例:31. 3D 基元形状简介 1 将一个想法从头脑带到现实世界是一次令人兴奋的冒险。在 Tinkercad 中,这将从一个新的设计开始。 在新设计中,简单的原始形状可以通过不同的方式组合成更复杂的形状。 在这个项目中,你将探索…

Openstack等私有云

1 OpenStack 计算:部署管理虚拟机存储:块存储 Cinder 和 对象存储 Swift网路:管理网络身份:管理用户和权限镜像:管理镜像用于快速部署新的虚拟机仪表盘:Web界面 2 RAID 如果使用的软件已经在多个硬件设备…

【Lua语法】字符串操作、字符串中的方法

1.对字符串的操作 --声明一个字符串 str "我是一个字符串"--1.获取字符串的长度 -- 前面加个#即可(注意:Lua中字母占1个长度,汉字占3个长度) print(#str)--2.字符串多行打印 -- 方法1.Lua中是支持转义字符的 print("哈哈\n嘻嘻&q…

【个人笔记】Linux 服务管理两种方式service和systemctl

service命令与systemctl 命令 service 命令与传统的 SysVinit 和 Upstart 初始化系统相关。较早期的 Linux 发行版(如早期的 Ubuntu、Red Hat 等)使用了这些初始化系统。service 命令用于启动、停止、重启和查询系统服务的状态。虽然许多现代 Linux 发行…

IDEA中配置pom文件时对annotationProcessorPaths作修改后Lombok不起作用

IDEA中配置pom文件时对annotationProcessorPaths作修改后Lombok不起作用 问题:在学习MyBatis-Flex框架时,要求在pom文件中配置 annotationProcessor,官方说这样的好处是:mybatis-flex-processor提供APT服务,可以配置到…

小红书2020校招测试开发后端笔试题卷三

//完全背包求组合数 #include <iostream> #include<vector> #include<set> #include<map> #include<algorithm> using namespace std; int value[300]; // vector<int>vis; // vector<int>vis1; map<vector<int>,int>m…

web前端开发工程师工作的岗位职责(合集)

web前端开发工程师工作的岗位职责1 职责&#xff1a; 1、根据设计图进行前端页面开发并设计编写业务交互脚本 2、优化前端页面&#xff0c;保证良好的用户体验以及不同浏览器的兼容性 3、web前沿技术研究和新技术调研&#xff0c;将主流的特效应用到业务场景中 4、配合后台…

cocoscreator中tween详细用法

基本方法&#xff1a; to&#xff1a;对属性进行绝对值计算&#xff0c;最终的运行结果即是设置的属性值&#xff0c;即改变到某个值 by&#xff1a;对属性进行相对值计算&#xff0c;最终的运行结果是设置的属性值加上开始运行时节点的属性值&#xff0c;即变化值 cc.tween(t…

SQL面试题

下列语句部分是Mssql语句&#xff0c;不可以在access中使用。 SQL分类&#xff1a; DDL—数据定义语言(CREATE&#xff0c;ALTER&#xff0c;DROP&#xff0c;DECLARE) DML—数据操纵语言(SELECT&#xff0c;DELETE&#xff0c;UPDATE&#xff0c;INSERT) DCL—数据控制语言…

关于单体架构缓存刷新实现方案

背景 如果各位看官是分布式项目应该都采用分布式缓存了&#xff0c;例如redis等&#xff0c;分布式缓存不在本次讨论范围哈&#xff1b;我个人建议是&#xff0c;如果是用户量比较大&#xff0c;建议采用分布式缓存机制&#xff0c;后期可以很容易前后到分布式服务或微服务。 …

安装Apache遇到的问题

安装Apache服务 httpd -k install -n Apache2.4 #-n后面表示自定义访问名称 问题1&#xff1a; 此时去 windows 的开始摁扭里找到控制器右键管理员运行 问题2&#xff1a; 命令行没用对 应该用&#xff1a; .\httpd -k install -n Apache2.4 #-n后面表示自定义访问名称

kafka常用命令

目录 Kafka通用命令 进入Kafka 1.进入kafka容器 2.进入kafka目录 查看Topic信息 1.查看所有Topic的列表 2.查看单个Topic的信息 查看ConsumerGroup信息 1.查看所有ConsumerGroup的列表 2.查看单个ConsumerGroup的信息 读取Topic中的数据 向Topic写入数据 Kafka通用…