这篇文章主要介绍“自动化HDFS数据复制机制的简单用法”,在日常操作中,相信很多人在自动化HDFS数据复制机制的简单用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”自动化HDFS数据复制机制的简单用法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在本章的前半部分,我们研究了两种可以将半结构化和二进制数据转换为HDFS的机制:开源HDFS File Slurper项目和Oozie,它们触发了数据入口工作流程。使用本地文件系统进行输入(以及输出)的挑战是,在集群上运行的map和reduce任务将无法访问特定上的文件系统,将数据从HDFS移动到文件系统有三个广泛的选择:
在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 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
Copyright © 2009-2021 56dr.com. All Rights Reserved. 特网科技 特网云 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 中国互联网举报中心 增值电信业务经营许可证B2
建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站