Hadoop 泰兹。减速器

Hadoop 泰兹。减速器,hadoop,apache-tez,Hadoop,Apache Tez,我对TEZ mapreduce的工作有奇怪的行为 我正在尝试从配置单元读取日志数据,按id、日期和其他一些参数将其拆分为一些块,然后写入另一个配置单元表 映射阶段的工作速度足够快,大约需要20分钟,然后还原程序开始工作,458个还原程序中的453个在接下来的20分钟内处理所有数据。但最后5个减速器工作约1小时 这是因为我的输入数据包含一些巨大的条目,而处理这些条目需要很多时间。 这种情况下的最佳做法是什么?我应该做一些hadoop/tez/hive调优,以便允许对最后一个还原程序进行并行处理,还

我对TEZ mapreduce的工作有奇怪的行为

我正在尝试从配置单元读取日志数据,按id、日期和其他一些参数将其拆分为一些块,然后写入另一个配置单元表

映射阶段的工作速度足够快,大约需要20分钟,然后还原程序开始工作,458个还原程序中的453个在接下来的20分钟内处理所有数据。但最后5个减速器工作约1小时

这是因为我的输入数据包含一些巨大的条目,而处理这些条目需要很多时间。 这种情况下的最佳做法是什么?我应该做一些hadoop/tez/hive调优,以便允许对最后一个还原程序进行并行处理,还是用其他参数分割输入数据以避免大量条目会更明智


谢谢你的建议。

这种不那么奇怪的行为背后的神奇词汇是扭曲。这是一个非常普遍的问题。通常人们宁愿忽略这个问题。。。直到他们真的感到疼痛(就像你现在这样)

使用TEZ,因为您可以尝试修补某些特定属性:

hive.tez.auto.reducer.parallelism
hive.tez.max.partition.factor
hive.tez.min.partition.factor
但是,当您有几个异常小的reduce数据集可以合并时,“自动并行”功能似乎适用,而您的问题正好相反(一个异常大的reduce数据集)。所以你也应该试着修补一下

hive.exec.reducers.bytes.per.reducer
hive.exec.reducers.max 
…改变规模,使“大”成为新的“正常”(因此“正常”变成“小”)。但是,也许你只会得到3个减速机,所有减速机都需要1个小时才能完成。很难说

祝你好运。这种性能调整与其说是科学,不如说是艺术

参考:

~~~~~~


PS:当然,如果你能通过改变你组织输入数据集的方式来消除偏差的来源

这种不那么奇怪的行为背后的神奇词语是歪斜。这是一个非常普遍的问题。通常人们宁愿忽略这个问题。。。直到他们真的感到疼痛(就像你现在这样)

使用TEZ,因为您可以尝试修补某些特定属性:

hive.tez.auto.reducer.parallelism
hive.tez.max.partition.factor
hive.tez.min.partition.factor
但是,当您有几个异常小的reduce数据集可以合并时,“自动并行”功能似乎适用,而您的问题正好相反(一个异常大的reduce数据集)。所以你也应该试着修补一下

hive.exec.reducers.bytes.per.reducer
hive.exec.reducers.max 
…改变规模,使“大”成为新的“正常”(因此“正常”变成“小”)。但是,也许你只会得到3个减速机,所有减速机都需要1个小时才能完成。很难说

祝你好运。这种表演调子比科学更艺术

参考:

~~~~~~


PS:当然,如果你能通过改变你组织输入数据集的方式来消除偏差的来源

谢谢你的回复!实际上,所有的设置对我的问题都没有帮助。现在我正在寻找减少数据集倾斜的解决方案。有一些老项目关注这样的问题:skewreduce、skewtune等等。谢谢你的回复!实际上,所有的设置对我的问题都没有帮助。现在我正在寻找减少数据集倾斜的解决方案。有一些老项目关注这样的问题:skewreduce、skewtune等等。