怎样将数据移入和移出Hadoop?
行使NFS网关时必要思量以下几点:
因为这些限定,提议将NFS网关保存用于尝试用途,可能用于不思量用户级安详性的单租户集群。 行使DistCp在集群内和集群间复制数据 假如移入或移出Hadoop的数据量很大,通过单个主机搜集数据,必然要尽也许优化数据移动。DistCp可以在Hadoop集群之间以及收支NFS安装的数据之间高效复制数据。 题目 在Hadoop集群之间高效复制大量数据,而且举办增量复制。 办理方案 行使DistCp,一种内置于Hadoop中的并行文件复制器材。 接头 本节,我们将起首先容DistCp的重要设置。之后,我们将继承查察行使DistCp的特定方案,以及设置和运行DistCp的最佳要领。 此技能涵盖了Hadoop 2中可用的DistCp新版本,名为DistCp 2。此代码被反向移植到Hadoop 1.2.0中,可通过行使distcp2作为呼吁启用Hadoop 2来替代现有的DistCp,然后就可以正常行使distcp呼吁。 DistCp 2支持与DistCp的旧版内情同的呼吁行参数集,并带来了很多有效的上风:
DistCp行使仅map的MapReduce功课来执行复制。以下是一个很是简朴的示例,在单个Hadoop集群顶用于将源目次,/ hello,复制到方针目次,/world:
假如/ world目次尚不存在,则此呼吁将建设/ world目次,然后将/ hello(其全部文件和目次递归)的内容复制到/ world。 处理赏罚已存在的方针文件 方针中已存在的文件和目次保持稳固(纵然文件差异)。 可以通过查察功课完成时转储到尺度输出的SKIP计数器来查察跳过的文件数: ![]() -update和-overwrite参数奇妙地改变了复制内容的举动。假如没有这些选项,假如源是目次,则在方针目次下建设该目次。行使-update或-overwrite参数,仅复制文件和子目次,而不复制源目次。通过一个例子证明这一点: ![]() 忽略错误 当行使DistCp复制大量文件时,行使-i符号执行呼吁以忽略错误是明智的。这样,单个错误不会导致整个复制进程失败,可以通过行使-update选项从头发出沟通的DistCp呼吁来再次实行复制失败文件。 动态复制计策 DistCp的默认举动是通过匀称地撒播全部文件以使全部mapper复制大抵沟通的字节数来为每个mapper预分派事变。从理论上讲,这听起来像是一种公等分派事变的好要领,但现实上,诸如硬件,硬件错误和设置不良等身分每每导致长尾事变执行,少数落伍的mapper占用时刻比其他要长。 行使DistCp 2,可以行使更换计策,个中mapper直接吸取事变而不是预先分派,这被称为动态复制计策,行使-strategy动态参数激活,添加此参数的结果是改造复制时刻。 原子提交 DistCp 2的另一个有效成果是原子提交。DistCp默认将每个文件写入姑且文件,然后移动到最终方针。这意味着无法除掉在功课中碰着错误之前复制的文件。 因此,原子提交应承在复制全部文件时将现实的“提交”推迟到功课竣事,这样假如碰着错误,你将看不到任何部门写入,可以行使-atomic参数启用此成果。 并行性和mapper数目 今朝,DistCp最细的事变单位是文件级别。因此,无论文件多大,都只行使一个mapper来复制,进步功课的mapper数目对进步复制速率没有任何影响。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |