自动化HDFS数据复制机制的简单用法

发布时间:2021-09-04 11:56 来源:亿速云 阅读:0 作者:chen 栏目: 网络安全

这篇文章主要介绍“自动化HDFS数据复制机制的简单用法”,在日常操作中,相信很多人在自动化HDFS数据复制机制的简单用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”自动化HDFS数据复制机制的简单用法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在本章的前半部分,我们研究了两种可以将半结构化和二进制数据转换为HDFS的机制:开源HDFS File Slurper项目和Oozie,它们触发了数据入口工作流程。使用本地文件系统进行输入(以及输出)的挑战是,在集群上运行的map和reduce任务将无法访问特定上的文件系统,将数据从HDFS移动到文件系统有三个广泛的选择:

  • 服务器(例如Web服务器)上托管agent,然后使用MapReduce将其写入。

  • 在MapReduce中写入本地文件系统,然后在后处理步骤中触发远程服务器上的脚本以移动该数据。

  • 在远程服务器上运行进程以直接从HDFS提取数据。

第三种选择是首选方法,因为最简单且最有效,因此这是本节的重点。我们将了解如何使用HDFS File Slurper自动将文件从HDFS移出到本地文件系统。

从HDFS导出文件的自动机制

假设有MapReduce用HDFS编写的文件,你想要将它们自动提取到本地文件系统。任何Hadoop工具都不支持此类功能,因此必须查看其他方法。

问题

自动将文件从HDFS移动到本地文件系统。

解决方案

HDFS文件Slurper可用于将文件从HDFS复制到本地文件系统。

讨论

这里的目标是使用HDFS File Slurper项目(https://github.com/alexholmes/ hdfs-file-slurper)来协助自动化。我们在前文详细介绍了HDFS File Slurper,请在继续使用此技术之前阅读该部分。

HDFS Slurper支持将数据从HDFS移动到本地目录,我们需要做的就是翻转源目录和目标目录,如Slurper配置文件以下所示:

你会注意到,HDFS中不仅有源目录,而且还有工作,完成和错误目录。这是因为需要能够在目录之间自动移动文件,而不会产生跨文件系统复制的昂贵开销。

总结

此时,你可能想知道如何触发Slurper来复制刚刚使用MapReduce作业编写的目录。当MapReduce作业成功完成时,它会在作业输出目录中创建一个名为_SUCCESS的文件。这似乎是启动输出进程将该内容复制到本地文件系统的完美触发器。事实证明,Oozie有一种机制可以在检测到这些Hadoop文件“成功”时触发工作流程,但这里的挑战是Oozie执行的任何工作都是在MapReduce中执行的,所以它不能用于执行直接转移。可以编写自己的脚本,轮询HDFS以查找已完成的目录,然后触发文件复制过程。如果源文件需要保持不变,那么文件复制过程可以是Slurper或简单的hadoop fs -get命令。

免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系QQ:712375056 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。