Cloudera Manager的备份和灾难恢复

时间:2022-02-17 16:15:30

注:只有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建立关系。

Cloudera Manager的备份和灾难恢复

2.1.1:点击“管理”

Cloudera Manager的备份和灾难恢复

2.1.2:选中“同行”

Cloudera Manager的备份和灾难恢复

2.1.3:如果没有添加过同行,就添加新的同行

Cloudera Manager的备份和灾难恢复

2.1.4:这里填写的是需要关联的Cloudera Manager的信息,最后点击“添加同行”

注:当我们有多个集群都是在同一个Cloudera Manager管理下时,集群与集群间复制数据不需要进行这一步。

如下图:一个Cloudera Manager管理了两个集群

Cloudera Manager的备份和灾难恢复

2、  HDFS复制

Cloudera Manager的备份和灾难恢复

2.2.1:点击“备份”,选择“复制”

Cloudera Manager的备份和灾难恢复

2.2.2:查看 “源”

Cloudera Manager的备份和灾难恢复

2.2.3:查看“计划”,该图显示还没有计划,

我们可以添加新的“计划”,例如创建“计划HDFS复制”

Cloudera Manager的备份和灾难恢复

2.2.4:这里填写计划内容,如下图2.2.5

Cloudera Manager的备份和灾难恢复

2.2.5:将集群1的HDFS的/user/hive/warehouse/scan复制到集群2的HDFS的/user/hive/warehouse/scan中,

下面可以选择只执行一次还是反复执行和更多选项

Cloudera Manager的备份和灾难恢复

2.2.6:“反复出现”选择时间间隔

Cloudera Manager的备份和灾难恢复

Cloudera Manager的备份和灾难恢复

2.2.7:“更多选项”的内容

Cloudera Manager的备份和灾难恢复

2.2.8:创建完“HDFS复制计划”后

3、  HIVE复制

Cloudera Manager的备份和灾难恢复

2.3.1:创建“Hive复制”

Cloudera Manager的备份和灾难恢复

2.3.2:这里填写计划内容,数据库如下图2.3.3

Cloudera Manager的备份和灾难恢复

2.3.3:数据库可以选择“全部复制”,

或者用正则表达式匹配需要的数据库和表

Cloudera Manager的备份和灾难恢复


Cloudera Manager的备份和灾难恢复

2.3.4:“更多选项”的内容

Cloudera Manager的备份和灾难恢复

2.3.5:创建完“Hive复制计划“后



三、   快照

1、  HDFS快照

Cloudera Manager的备份和灾难恢复

3.1.1:点击“备份”,选择“快照”

Cloudera Manager的备份和灾难恢复

3.1.2:点击创建,可以选择需要快照的服务

Cloudera Manager的备份和灾难恢复

3.1.3:路径中不存在快照表路径,需要先制作路径快照表

Cloudera Manager的备份和灾难恢复

3.1.4:点击Cluster1的“HDFS”,进入HDFS管理界面

Cloudera Manager的备份和灾难恢复

3.1.5:点击“文件浏览器”,进入HDFS文件管理界面

Cloudera Manager的备份和灾难恢复

3.1.6: HDFS文件管理界面,可以浏览HDFS文件

Cloudera Manager的备份和灾难恢复

3.1.7:进入到“/user/hive/warehouse/scan”,点击“启动快照”,

就启动了针对于“/user/hive/warehouse/scan”的快照服务

Cloudera Manager的备份和灾难恢复

3.1.8:启动快照服务

Cloudera Manager的备份和灾难恢复

3.1.9:接下来就可以选择“路径”了,点击保存策略

Cloudera Manager的备份和灾难恢复

3.1.10:整点在自动运行策略


Cloudera Manager的备份和灾难恢复

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快照

Cloudera Manager的备份和灾难恢复

3.2.1:这里填写计划内容,表用正则表达式来选择

Cloudera Manager的备份和灾难恢复

3.2.2:“更多选项”中可以选择“警报”,点击保存策略

Cloudera Manager的备份和灾难恢复

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命令查看:

Cloudera Manager的备份和灾难恢复

Hbase命令查看:

Cloudera Manager的备份和灾难恢复


快照的操作:

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