OSS-HDFS服务(JindoFS服务)的快照功能在使用方式上与HDFS的快照功能完全兼容,同时支持目录层级的操作。本文介绍OSS-HDFS服务Snapshot命令的常见操作。
此功能目前尚处于试用和小规模使用阶段,不建议大规模生产使用。
前提条件
-
已创建Hadoop环境、Hadoop集群或者Hadoop客户端。具体操作,请参见创建Hadoop运行环境。
-
已开通OSS-HDFS服务。具体操作,请参见开通并授权访问OSS-HDFS服务。
-
已配置4.5.0及以上版本JindoSDK 。具体操作,请参见非EMR集群接入OSS-HDFS服务快速入门。
开启快照功能
假设您拥有名为examplebucket的Bucket,并在该Bucket下创建了名为exampledir的目录。当您需要为该目录开启快照功能时,请通过JindoSDK的Shell命令行工具执行如下命令:
jindo dlsadmin -allowSnapshot -dlsUri oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir
关于配置Endpoint的具体操作,请参见JindoFS服务Endpoint。
创建快照
在examplebucket下的exampledir目录开启快照功能后,您需要执行以下操作:
-
新建子目录和文件。
在exampledir目录下新建子目录dir1以及dir2以及文件file1和file2。
# 新建子目录dir1。 hdfs dfs -mkdir oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/dir1 # 新建子目录dir2。 hdfs dfs -mkdir oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/dir2 # 新建文件file1。 hdfs dfs -touchz oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/file1.txt # 新建文件file2。 hdfs dfs -touchz oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/file2.txt
-
为exampledir创建名为S1的快照。
hdfs dfs -createSnapshot oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir S1
重命名快照
例如,您需要将已创建的快照S1重命名为S2,请通过HDFS的Shell命令行工具执行以下命令:
hdfs dfs -renameSnapshot oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir S1 S2
访问快照中的目录和文件
当您需要访问examplebucket根目录exampledir的子目录dir1,请通过HDFS的Shell命令行工具执行以下命令:
hdfs dfs -ls oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/dir1
考虑到此前您已为examplebucket根目录exampledir创建了快照S1,因此访问快照S1的行为等同于访问根目录exampledir。请通过HDFS的Shell命令行工具执行以下命令访问快照S1中的目录和文件:
hdfs dfs -ls oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/.snapshot/S1/dir1
对比快照内容
当您需要对比exampledir目录下快照S1与快照S2存在的差异时,请通过JindoSDK的Shell命令行工具执行如下命令:
jindo dlsadmin -snapshotDiff \
-dlsUri -dlsUri oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir \
-fromSnapshot S1 \
-toSnapshot S2
通过快照恢复数据
快照功能通常用于数据备份和恢复。通过快照功能,可以及时恢复误删除的数据。假设您误删除了examplebucket根目录exampledir下的文件dir1:
hdfs dfs -rm -r oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/dir1
考虑到此前您已为examplebucket根目录exampledir创建了快照S1,此时您可以通过HDFS的Shell命令行工具执行以下命令恢复误删除数据:
hdfs dfs -cp oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/.snapshot/S1/dir1 oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir
完成数据恢复后,您可以通过以下命令查看误删除的文件夹或者文件:
hdfs dfs -ls oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir/dir1
删除快照
例如,您不再需要保留examplebucket根目录exampledir创建的快照S1或者重命名后的快照S2,请通过HDFS的Shell命令行工具执行如下命令删除快照S1以及S2。
-
删除快照S1
hdfs dfs -deleteSnapshot oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir S1
-
删除快照S2
hdfs dfs -deleteSnapshot oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir S2
关闭快照功能
当您不再需要使用快照功能时,请通过JindoSDK的Shell命令行工具执行如下命令关闭快照功能:
jindo dlsadmin -disallowSnapshot -dlsUri oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampledir
重要
关闭快照功能前,请确保已删除目标路径下的所有快照。否则,关闭快照功能将会报错。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/157642.html