我目前有一个从 AWS S3 读取文件并使用 EMR 连接它们的进程。输入文件具有以下格式:1 个标题行和 1 个数据行。字段以逗号分隔并用双引号括起来。
示例:
"header-field1","header-field2","header-field3",...
"data-field1","data-field2","data-field3",...
这些文件的大小在 90 到 200 字节之间变化。
输出文件的格式如下:
"header-field1","header-field2","header-field3",...
"file1-data-field1","file1-data-field2","file1-data- field3",...
"file2-data-field1","file2-data-field2","file2-data-field3",...
"file3-data-field1","file3-data-field2","文件 3 数据字段 3",...
...
我当前的方法使用默认映射器和单个化简器来连接所有数据行并在最终输出文件的顶部添加 1 个标题行。因为我想在最终输出中有一个标题行,所以我被迫在我的 EMR 工作中只使用 1 个减速器。我觉得这大大增加了运行时间。
早期的测试运行良好,有数十个文件。但是,我正在尝试扩展此应用程序以运行数千个文件,最终目标是连接 100 万个文件。
我当前处理 1000 个文件的进程在 30 多分钟后仍在运行,这太长了。你对我可以在哪里改进我的应用程序以显着提高整体性能有什么建议吗?
谢谢你。