如何将HDFS容灾备份到阿里云对象存储OSS

发布时间:2018-07-20 11:59:03
发布:凯铧互联


业务场景

当前业界有很多公司是以Hadoop技术构建数据中心,而越来越多的公司和企业希望将业务顺畅地迁移到云上。

在阿里云上使用最广泛的存储服务是对象存储OSS。OSS的数据迁移工具ossimport2可以将您本地或第三方云存储服务上的文件同步到OSS上,但这个工具无法读取Hadoop文件系统的数据,从而发挥Hadoop分布式的特点。并且,该工具只支持本地文件,需要将HDFS上的文件先下载到本地,再通过工具上传,整个过程耗时又耗力。

阿里云E-MapReduce团队开发的Hadoop数据迁移工具emr-tools,能让您从Hadoop集群直接迁移数据到OSS上。

本文介绍如何快速地将Hadoop文件系统(HDFS)上的数据迁移到OSS。

前提条件

确保当前机器可以正常访问您的Hadoop集群,即能够用Hadoop命令访问HDFS。

hadoop fs -ls /


一、Hadoop数据迁移到OSS

1、下载emr-tools。
说明
emr-tools兼容Hadoop 2.4.x、2.5.x、2.6.x、2.7.x版本,如果有其他Hadoop版本兼容性的需求,请提交工单。
2、解压缩工具到本地目录。
tar jxf emr-tools.tar.bz2
3、复制HDFS数据到OSS上。
cd emr-tools
./hdfs2oss4emr.sh /path/on/hdfs oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/path/on/oss
参数说明如下。

参数 说明
accessKeyId 访问OSS API的密钥。
获取方式请参见如何获取如何获取AccessKeyId和AccessKeySecret。
accessKeySecret
bucket-name.oss-cn-hangzhou.aliyuncs.com OSS的访问域名,包括bucket名称和endpoint地址


系统将启动一个Hadoop MapReduce任务(DistCp)。

4、运行完毕之后会显示本次数据迁移的信息。信息内容类似如下所示。
17/05/04 22:35:08 INFO mapreduce.Job: Job job_1493800598643_0009 completed successfully
17/05/04 22:35:08 INFO mapreduce.Job: Counters: 38
File System Counters
FILE: Number of bytes read=0
FILE: Number of bytes written=859530
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=263114
HDFS: Number of bytes written=0
HDFS: Number of read operations=70
HDFS: Number of large read operations=0
HDFS: Number of write operations=14
OSS: Number of bytes read=0
OSS: Number of bytes written=258660
OSS: Number of read operations=0
OSS: Number of large read operations=0
OSS: Number of write operations=0
Job Counters
Launched map tasks=7
Other local map tasks=7
Total time spent by all maps in occupied slots (ms)=60020
Total time spent by all reduces in occupied slots (ms)=0
Total time spent by all map tasks (ms)=30010
Total vcore-milliseconds taken by all map tasks=30010
Total megabyte-milliseconds taken by all map tasks=45015000
Map-Reduce Framework
Map input records=10
Map output records=0
Input split bytes=952
Spilled Records=0
Failed Shuffles=0
Merged Map outputs=0
GC time elapsed (ms)=542
CPU time spent (ms)=14290
Physical memory (bytes) snapshot=1562365952
Virtual memory (bytes) snapshot=17317421056
Total committed heap usage (bytes)=1167589376
File Input Format Counters
Bytes Read=3502
File Output Format Counters
Bytes Written=0
org.apache.hadoop.tools.mapred.CopyMapper$Counter
BYTESCOPIED=258660
BYTESEXPECTED=258660
COPY=10
copy from /path/on/hdfs to oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/path/on/oss does succeed !!!
5、您可以用osscmd等工具查看OSS上数据情况。
osscmd ls oss://bucket-name/path/on/oss
二、OSS数据迁移到Hadoop

如果您已经在阿里云上搭建了Hadoop集群,可以使用如下命令把数据从OSS上迁移到新的Hadoop集群。

./hdfs2oss4emr.sh oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/path/on/oss /path/on/new-hdfs
三、更多使用场景

除了线下的集群,在ECS上搭建的Hadoop集群也可以使用emr-tools,将自建集群迅速地迁移到E-MapReduce服务上。

如果您的集群已经在ECS上,但是在经典网络中,无法和VPC中的服务做很好的互操作,所以想把集群迁移到VPC中。可以按照如下步骤迁移:

1、使用emr-tools迁移数据到OSS上。
2、在VPC环境中新建一个集群(自建或使用E-MapReduce服务)。
3、将数据从OSS上迁移到新的HDFS集群中。
如果你使用E-MapReduce服务,还可以直接在Hadoop集群中通过Spark、MapReduce和Hive等组件访问OSS,这样不仅可以减少一次数据复制(从OSS到HDFS),还可以极大的降低存储成本。有关降低成本的详细信息,请参见EMR+OSS:计算与存储分离

 

以上就是如何将HDFS容灾备份到阿里云对象存储OSS说明,阿里云代理商凯铧互联提供阿里云服务器/企业邮箱等产品的代购服务,同样的品质,更多贴心的服务,更实惠的价格。 阿里云代理商凯铧互联会为您提供一对一专业全面的技术服务,同时还能为您提供阿里云其他产品购买的专属折扣优惠。通过凯铧互联购买可以获得折上折优惠!若您需要帮助可以直接联系我方客服,阿里云代理商凯铧互联专业技术团队为您提供全面便捷专业的7x24技术服务。 电话专线:136-5130-9831,QQ:3398234753。


为什么选择我们:北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里巴巴、腾讯等,作为阿里云,腾讯云百度云,金山云重要的合作伙伴,专注于为企业用户提供云计算及云计算的解决方案。总部设在北京,并在内蒙设有办事处。做为一家综合性方案商,凯铧互联向各行业用户提供基于云计算的各种解决方案。为用户获得优质服务的同时,秉承"专业规划、周到服务"的服务理念,根据用户的实际情况,充分考虑各种网络资源的特点及功效,为用户量身定做一套适合于其实际应用需求的网络应用方案。帮助用户利用互联网的力量展开新的营销方式,并大大缩短了项目实施周期,获得用户的一致好评。