gpt4 book ai didi

hadoop - 泰兹。慢 reducer

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

我对 TEZ mapreduce 作业有奇怪的行为。

我正在尝试从 Hive 读取日志数据,按 ID、日期和其他一些参数将其分成一些 block ,然后写入另一个 Hive 表。

Map 阶段工作得足够快,大约需要 20 分钟,然后 reducer 开始工作,458 个 reducer 中的 453 个在接下来的 20 分钟内处理完所有数据。但最后 5 个 reducer 工作了大约 1 小时。

发生这种情况是因为我的输入数据包含一些巨大的条目并且处理这些条目需要花费大量时间。这种情况的最佳做法是什么?我应该对 hadoop/tez/hive 进行一些调整以允许对最后的 reducer 进行某种并行处理,还是通过其他参数拆分输入数据以避免大量条目会更聪明?

感谢您的任何建议。

最佳答案

这种不那么奇怪的行为背后的神奇词是倾斜。这是一个非常普遍的问题。通常人们更喜欢忽视问题……直到他们真正感受到痛苦(就像你现在所做的那样)。

有了 TEZ,因为 HIVE-7158 Use Tez auto-parallelism in Hive 您可以尝试修改一些特定的属性:

hive.tez.auto.reducer.parallelism
hive.tez.max.partition.factor
hive.tez.min.partition.factor

但是当您有多个可以合并的异常小的归约数据集时,“自动并行”功能似乎适用,而您的问题恰恰相反(一个异常大的归约数据集)。所以你也应该尝试修补

hive.exec.reducers.bytes.per.reducer
hive.exec.reducers.max

...更改比例并使“大”成为新的“正常”(因此“正常”变为“小”)。但是,也许你得到的只是 3 个 reducer,它们都需要 1 小时才能完成。很难说。

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

引用:

~~~~~~

PS:当然,如果您可以通过更改组织输入数据集的方式来消除偏斜源...

关于hadoop - 泰兹。慢 reducer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414830/

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