我目前有一个从AWS S3读取文件并使用EMR连接它们的进程。 输入文件具有以下格式:1个标题行和1个数据行。 字段以逗号分隔并用双引号括起来。
例:
“头字段1”,“报头字段2”,“报头字段3”,...
“数据字段1”,“数据字段2”,“数据字段3”,...
文件大小在90到200字节之间。
输出文件格式如下:
“头字段1”,“报头字段2”,“报头字段3”,...
“文件1数据字段1”,“文件1数据字段2”,“文件1,数据字段3”,...
“文件2数据字段1”,“文件2数据字段2”,“文件2数据字段3”,...
“file3的数据字段1”,“文件3数据字段2”,“文件3数据字段3”,...
....
我当前的方法使用默认映射器和单个reducer来连接所有数据行,并在最终输出文件的顶部添加1个标题行。 因为我想在输出final中有一个标题行,所以我被迫在我的EMR作业中只使用一个单一的reducer。我觉得这会大大增加运行时间。
早期测试运行数十个文件。 但是,我正在尝试扩展此应用程序以运行数千个文件,最终目标是连接100万个。
我目前处理1000个文件的过程在30多分钟后仍在运行,这太长了。 您对我在哪些方面可以改进我的应用程序以显着提高整体性能有任何建议吗?
谢谢。