Mat*_*ler 7 backup disaster-recovery hadoop hdfs
我们正准备实施我们的第一个 Hadoop 集群。因此,我们从四节点设置开始。(1 个主节点和 3 个工作节点)每个节点将有 6TB 的存储空间。(6 x 1TB 磁盘)我们采用了 SuperMicro 4 节点机箱,以便所有四个节点共享一个 4U 机箱。
我们现在正在研究如何备份此解决方案以进行灾难恢复。(考虑机架或站点丢失,而不是驱动器丢失)最好的解决方案似乎是集群到集群的复制。虽然我也读过有关人们将数据复制到 NAS 或 SMB 共享的信息。此外,我们将通过传统备份方式备份主节点。我只关心 HDFS 数据。以下是我的问题:
1)对于集群到集群的复制,我可以设置一个具有大量存储空间的单节点集群作为我的异地副本吗?我不关心它的性能,只关心它的存在和保存整个数据集的能力。(恢复时间不是问题,因为该集群不是关键任务)是否可以安排副本使其每天只运行一次,等等?
2)对于 SMB 或 NAS 选项,这是如何工作的?目标盘需要格式化HDFS吗?我是否需要完整备份三个工作节点中的每一个?或者是否有一些智能脚本可以在没有奇偶校验的情况下备份数据集?我对这个解决方案不是很熟悉,只在网上看到过对它的引用。我在查找资源或信息方面运气不佳。
我也对 Hadoop HDFS 的任何其他 DR 选项持开放态度。我们的目标是获得 HDFS 数据集的完整副本,以便我们可以使用它从机架或站点丢失中恢复。
谢谢!
对于选项 1,您可以使用distcp从一个集群复制到另一个集群。备份集群当然可以是单节点服务器,只要它上面运行有名称节点和数据节点。基本上,您正在考虑以伪分布式模式运行。要定期运行 distcp,
为了定期执行此操作,我将创建一个执行如下操作的 shell 脚本:
我建议使用锁定文件,因为您不希望在此特定设置中运行多个 distcp 。你最终会压倒你的伪分布式集群。我还将伪分布式集群配置上的默认复制因子设置为 1。如果不需要,则无需在块上加倍(不过,我不记得伪集群是否默认执行此操作;YMMV)。
distcp 可以像哑 rsync 一样工作,只复制那些发生变化的东西。
对于选项 2,您可以使用 hadoop fs -copyToLocal。这样做的缺点是它每次都是完整复制,因此如果您复制 /,它会在每次运行时复制所有内容。
对于 hadoop 元数据,您需要复制 fsimage 并编辑文件。 该博客对要做什么进行了相当合理的概述。它面向使用 Cloudera,但对于任何 Hadoop 1.0 或 2.0 集群来说应该基本相同。
| 归档时间: |
|
| 查看次数: |
5974 次 |
| 最近记录: |