注:只有Cloudera Manager企业版才有Cloudera Manager的备份和灾难恢复功能
一、 概述
Cloudera Manager提供了一个集成的、易于使用的管理解决方案,使数据保护在Hadoop的平台。Cloudera Manager提供了丰富的功能旨在复制存储在HDFS数据和通过Hive跨数据中心的灾难恢复场景。当关键数据存储在HDFS,Cloudera Manager提供必要的功能,以确保数据是可用的,即使面对完全关闭的数据中心。
Cloudera Manager还提供了计划的能力,保存和恢复HDFS目录和HBase表的快照。
Cloudera Manager提供关键功能完全集成到Cloudera Manager管理控制台:
Select(选择) —— 选择的关键数据集,你的业务操作的关键。
Schedule(计划)—— 创建一个适当的计划数据复制或快照。
Monitor(监控)—— 跟踪进度的快照和复制工作通过*控制台和容易识别的问题或文件未能被转移。
Alert(警报)—— 问题警报当快照或复制工作失败或者是流产,这样可以迅速诊断问题。
端口的要求:
必须确保以下端口开放和跨集群,使访问源和目的地之间的通信Cloudera Manager服务器和HDFS,Hive,MapReduce和YARN主机:
l Cloudera Manager管理控制台端口:默认是7180。
l HDFS NameNode端口::默认是8020。
l HDFS DataNode端口:默认是50010。
l WebHDFS端口:默认是50070。
二、 复制
1、 同行
有多个CDH集群并且被多个Cloudera Manager管理,我们需要将其中一个集群的数据复制到另一个集群中时,我们首先要做的就是将源集群的Cloudera Manager和目的集群的Cloudera Manager建立关系。
2.1.1:点击“管理”
2.1.2:选中“同行”
2.1.3:如果没有添加过同行,就添加新的同行
2.1.4:这里填写的是需要关联的Cloudera Manager的信息,最后点击“添加同行”
注:当我们有多个集群都是在同一个Cloudera Manager管理下时,集群与集群间复制数据不需要进行这一步。
如下图:一个Cloudera Manager管理了两个集群
2、 HDFS复制
2.2.1:点击“备份”,选择“复制”
2.2.2:查看 “源”
2.2.3:查看“计划”,该图显示还没有计划,
我们可以添加新的“计划”,例如创建“计划HDFS复制”
2.2.4:这里填写计划内容,如下图2.2.5
2.2.5:将集群1的HDFS的/user/hive/warehouse/scan复制到集群2的HDFS的/user/hive/warehouse/scan中,
下面可以选择只执行一次还是反复执行和更多选项
2.2.6:“反复出现”选择时间间隔
2.2.7:“更多选项”的内容
2.2.8:创建完“HDFS复制计划”后
3、 HIVE复制
2.3.1:创建“Hive复制”
2.3.2:这里填写计划内容,数据库如下图2.3.3
2.3.3:数据库可以选择“全部复制”,
或者用正则表达式匹配需要的数据库和表
2.3.4:“更多选项”的内容
2.3.5:创建完“Hive复制计划“后
三、 快照
1、 HDFS快照
3.1.1:点击“备份”,选择“快照”
3.1.2:点击创建,可以选择需要快照的服务
3.1.3:路径中不存在快照表路径,需要先制作路径快照表
3.1.4:点击Cluster1的“HDFS”,进入HDFS管理界面
3.1.5:点击“文件浏览器”,进入HDFS文件管理界面
3.1.6: HDFS文件管理界面,可以浏览HDFS文件
3.1.7:进入到“/user/hive/warehouse/scan”,点击“启动快照”,
就启动了针对于“/user/hive/warehouse/scan”的快照服务
3.1.8:启动快照服务
3.1.9:接下来就可以选择“路径”了,点击保存策略
3.1.10:整点在自动运行策略
3.1.11:查看运行结果
快照的路径:
快照的文件在“.snapshot”文件夹中,假设对“/foo/bar”做快照生成的快照前缀是s0,那么快照的路径就是/foo/.snapshot/s0/bar
查看snapshottable目录下所有快照:hdfs dfs -ls/foo/.snapshot
查看快照文件s0下列表:hdfs dfs -ls/foo/.snapshot/s0
快照的恢复:
直接将快照文件复制或移动到指定目录下,如:hdfs dfs -cp-ptopax /foo/.snapshot/s0/bar /tmp
2、 HBASE快照
3.2.1:这里填写计划内容,表用正则表达式来选择
3.2.2:“更多选项”中可以选择“警报”,点击保存策略
3.2.3:创建完“HBase快照策略”后
配置和启用HBase快照:
hbase-site.xml中的hbase.snapshot.enabled设置为true
<property>
<name>hbase.snapshot.enabled</name>
<value>
false
</value>
</property>
快照的路径:
/hbase/.hbase-snapshot
如:对test_table做快照,查看快照
HDFS命令查看:
Hbase命令查看:
快照的操作:
1、获取指定表的快照使用snapshot命令(不产生文件复制)
hbase> snapshot ‘tableName’, ‘snapshotName’
2、列出所有的快照,使用 list_snapshot 命令。会展示出快照名称,源表,以及创建日期和时间
hbase> list_snapshots
3、删除快照使用 deleted_snapshot 命令。删除快照不会影响到克隆表或者之后生成的快照。
hbase> delete_snapshot ‘snapshotName’
4、使用clone_snapshot命令从指定的快照生成新表(克隆)。由于不会产生数据复制,所以最终用到的数据不会是之前的两倍。
hbase> clone_snapshot ‘snapshotName’, ‘newTableName’
5、使用restore_snapshot命令将指定快照内容替换当前表结构/数据。
hbase> restore_snapshot ‘snapshotName’
6、使用ExportSnapshot工具将现有快照导出至其他集群。导出工具不会影响到域服务器负载,只是工作在HDFS层面所以需要指定HDFS路径(其他集群的hbase根目录)。
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot –snapshot SnapshotName-copy-to hdfs:///srv2:8082/hbase