gpt4 book ai didi

hadoop - pig CPU 密集型任务 - 小数据文件 - 许多映射器?

转载 作者:可可西里 更新时间:2023-11-01 14:45:55 24 4
gpt4 key购买 nike

我正在寻找有关如何通过我的 Pig 作业提高性能的任何提示。

输入是单个文件 (MB),但对于文件中的每一行,都会执行一个 CPU 密集型任务。

因此,理想的做法是将此文件拆分到我的 Amazon EMR 集群中的许多映射器(和机器)。

但是我找不到一种方法来做到这一点,因为 Hadoop 自然只会以 64(或者是 128?)MB 间隔进行拆分,所以我只有 1 个映射器!

我看过 NLineInputFormat ( http://www.olenick.com/blog/hadoop-for-small-data/ ),但这是针对旧 API 的,也不确定它如何与 Pig 一起使用。

为了让事情更复杂,我正在使用 CSVExcelStorage piggybank loadfunc 进行加载。

谢谢

邓肯

最佳答案

已解决。

这需要设置更多参数。我并不是说您需要设置所有这些,但我没有时间进行反复试验以了解最低要求设置是什么。很高兴得到纠正!

将以下内容放在 pig 脚本的顶部:

SET mapred.max.split.size 131072; -- 128KB
SET mapred.min.split.size 131072;
SET default_parallel 2;
SET pig.noSplitCombination true;
SET mapred.max.jobs.per.node 1;

我将我的设置为 128KB block ,因为我的输入真的那么小!

此外,设置dfs block 大小。在 Amazon EMR 中,通过设置以下 Boostrap 操作来执行此操作:

--hdfs-key-value dfs.block.size=131072

我们可以通过查看输出看到这已经起作用了:

工作统计(以秒为单位的时间):JobId Maps 减少 MaxMapTime MinMapTIme AvgMapTime MedianMapTime MaxReduceTime MinReduceTime AvgReduceTime MedianReducetime 别名特征输出job_201309111450_0001 14 0 15 9 11 12 0 0 0 0 A,cleaned,nostop MAP_ONLY s3n://mybucket/out42,

所以我们可以看到使用了 14 个映射器。此外,还生成了 14 个部分(在我的例子中),总运行时间与单个记录的时间相同(在我的例子中是 4 分钟)。

关于hadoop - pig CPU 密集型任务 - 小数据文件 - 许多映射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com