使用AWS EMR进行文件处理



我需要关于我正在研究的这个问题的架构建议。我有日志文件每隔15分钟在gzip文件夹。每一个都有大约10万个文件需要处理。我有一个python代码,对每个文件做相同的处理。没有映射减少代码。只是我们正在重新排列那个文件夹中的数据。

我想使用Hadoop的并行处理能力来更快地处理这些文件。所以,我的问题是,我是否总是要写一个map/reduce代码来使用hadoop的并行处理能力,或者有一种方法来运行我当前的Python代码,就像在EMR实例上一样,并并行处理这些文件?

谢谢你的帮助,Amey

我可以运行我当前的Python代码吗?

查看Hadoop Streaming.

http://hadoop.apache.org/docs/r2.5.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopStreaming.html

你可以使用Hadoop Streaming做"map only"的作业。在启动作业的hadoop命令中添加以下内容:

 -D mapred.reduce.tasks=0

我总是必须使用MapReduce吗?

MapReduce是一个运行在Hadoop之上的框架。即使使用它,也可以在没有reducer的情况下配置作业。这将在每个输入和输出上运行地图代码,无论地图任务输出什么。

你也可以在YARN上本地编写应用程序。我在这方面没有太多经验,所以我建议你去看医生。它看起来像一个相当沉重的、以java为中心的过程。

http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html

相关内容

  • 没有找到相关文章

最新更新