对于我正在研究的这个问题,我需要建筑建议。我在gzip文件夹中每隔15分钟就有一个日志文件。其中每个都有大约100,000个要处理的文件。我有一个python代码,对每个文件执行相同的处理。没有地图缩减代码。只是我们正在重新整理该文件夹中的数据。
我想使用Hadoop的并行处理能力来更快地处理这些文件。所以,我的问题是,我是否总是要写一个map / reduce代码来使用hadoop的并行处理能力,或者有一种方法可以在EMR实例上运行我当前的Python代码并并行处理这些文件?
感谢您的帮助, Amey
答案 0 :(得分:0)
可能。
查看Hadoop Streaming。
您可以使用Hadoop Streaming执行“仅限地图”作业。将以下内容添加到启动作业的hadoop命令中:
-D mapred.reduce.tasks=0
没有。
MapReduce是一个在Hadoop之上运行的框架。即使您使用它,也可以在没有减速器的情况下配置作业。这将基本上在每个输入上运行地图代码并输出任何地图任务输出。
您还可以在YARN之上本地编写应用程序。我对此没有多少经验,所以我会把你推荐给文档。它看起来像一个非常沉重的,以Java为中心的过程。
http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html