将数据同步到HBase/HDFS,并将其用作MapReduce作业的输入



我想将数据同步到Hadoop文件系统。此数据旨在用作计划的MapReduce作业的输入。

这个例子可以解释更多:

假设我有一个包含一堆单词的文档输入流,这些单词是MapReduce WordCount作业所需要的输入。因此,对于每个文档,所有单词都应该被解析出来并上传到文件系统。但是,如果相同的文档再次从输入流中到达,我只希望从文件系统上传(或删除)更改。

应如何存储数据;我应该使用HDFS还是HBase?数据量不是很大,可能只有几GB。

是否可以使用HDFS和/或HBase的输入启动计划的MapReduce作业?

我会首先选择最适合这份工作的工具,或者做一些研究来做出合理的选择。你在问这个问题,这是最重要的一步。考虑到您计划处理的数据量,Hadoop可能只是一种选择。如果这是迈向更大更好的事情的第一步,那么这将缩小领域。

然后,我会从我期望使用的最简单的方法开始,这通常意味着使用我已经知道的工具。灵活地编写代码,使您在学习更多内容或遇到障碍时更容易用更好的选择替换原来的选择。考虑到你在问题中所说的,我会从使用HDFS开始,使用Hadoop命令行工具将数据推送到HDFS文件夹(Hadoop-fs-put…)。然后,我会编写一个或多个MR作业来进行处理,手动运行它们。当它工作时,我可能会使用cron来处理作业的调度。

这是一个开始。在构建流程时,如果你达到了HBase似乎天生适合你想要存储的东西的程度,那么就切换到它。一次解决一个问题,这将使你清楚地知道在每一步中哪些工具是正确的选择。例如,您可能会进入调度步骤,并在那时知道cron不会满足您的需要——也许您的组织对作业调度有cron无法满足的要求。所以,你选择一个不同的工具。

最新更新