热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【焦点】分布式文件系统的备份

        这几年一直在做大数据的项目,一类是基于MapReduce的报表统计系统;另一类是基于ELK的日志分析系统。这两类系统的底层都用到了HDFS即Ha

        这几年一直在做大数据的项目,一类是基于MapReduce的报表统计系统;另一类是基于ELK的日志分析系统。这两类系统的底层都用到了HDFS即Hadoop分布式文件系统(Hadoop Distributed File System)。

在项目实施过程中,小编最常被问到的问题就是如何备份HDFS

        首先我们先来普及一些HDFS的基本知识,作为一个分布式文件系统,HDFS本身就是自带冗余的,任何一个数据块都有三个副本(可以在hdfs-site.xml文件中设置副本数量),同时当服务器分布在有多个机架时,副本也会跨机架部署。但HDFS默认无法跨数据中心部署,这是由其最初版本“Google FS”在产品设计时就定义好的。原因有以下几点:

        写入数据时对带宽的要求。每当数据写入HDFS时,由于复制机制的关系,需要在另一数据中心同步一份副本。数据流以数据块的形式逐一写入HDFS,每一个数据块都会分布在三个数据节点,其中至少一个是在另一个机架上。而如果HDFS跨站点部署也就意味着站点间带宽将严重影响到数据写入的等待时间(而原来只是机架间的交换机所决定)。

        MapReduce的Shuffle对带宽的要求。对于一台分布式的YARN集群,可能存在Mapper分布在不同数据中心的情况,但是对于任何一台Reducer而言,它需要读取所有Mapper节点的数据处理结果。我们假设两个数据中心的Mapper是平均分布的,那就会造成50%的数据处理结果是需要跨站点传输的,再加上有时Mapper的输出数据量会大过输入数据,因此这部分网络开销会严重影响MR的运行速度。

        我们退一步讲,即便你的数据中心之间用专线连接,会专门给HDFS使用么?我谨表示怀疑。一般来说,DC间的专线是给OLTP类的核心应用,例如ERP、CRM、ABS系统使用的,落到HDFS的带宽几乎所剩无几

        既然HDFS不适合跨站点部署(即不适合通过灾备站点恢复服务),那本地备份就显得尤为重要。常用的HDFS管理工具有Cloudera Manager、IBM Data Server Manager,都可以通过图形界面进行备份。

        据我所知上述两个工具都是收费的,我所要讲的备份方法是通过distcp(distributed copy)命令讲hdfs数据从一个集群拷贝到另一个集群。他的局限在于需要停机做备份。所以一般用于大版本的升级或将数据迁移到新的硬件时,所用到的命令是hadoop distcp

        首先我们来看下这个命令的帮助。

     根据提示,远程拷贝的命令及参数是hadoop distcp <源路径> <目标路径>,常用的参数有:-overwrite(覆盖目标路径下的同名文件)、-strategy(拷贝策略,默认策略为“按文件大小分割工作包”)以及-update(只拷贝目标路径下缺失的文件)。我们看一下执行效果:

        拷贝完成后,我们能看到作业的整体概述,其中包括文件总数,作业数量

    加上-delete和-update的参数清空并更新目标路径和源路径不一致的文件,但不会替换一致的文件。

        小编觉得还是挺方便的,虽然图形界面下的备份可以做在线备份,并且可以定计划。

        但实际上这种“准”在线的备份是通过镜像快照完成的,备份时会占用大量内存资源,很容易导致写入队列溢出,并不推荐在生产时间执行备份

UneedR∣大数据与机器学习园地



长按,识别二维码,加关注



推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 对于开源的东东,尤其是刚出来不久,我认为最好的学习方式就是能够看源代码和doc,測试它的样例为了方便查看源代码,关联导入源代 ... [详细]
  • MR程序的几种提交运行模式本地模型运行1在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行-- ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 配置交换机监控端口
    实验环境实验目标1.配置监视端口监视2.端口12 ... [详细]
  • 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和 ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
author-avatar
倾城不了倾了你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有