Большие файлы, вызывающие ошибку случайного воспроизведения в карте hadoop, уменьшают - PullRequest
0 голосов
/ 08 октября 2018

Я вижу следующую ошибку, когда пытаюсь обработать большой файл размером более 35 ГБ, но не происходит, когда я пытаюсь использовать менее большой файл размером менее 10 ГБ.

App > Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#30

App > at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)

App > at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)

App > at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165)

App > at java.security.AccessController.doPrivileged(Native Method)

App > at javax.security.auth.Subject.doAs(Subject.java:422)

App > at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1635)

App > at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160)

App > Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

Работа по-прежнемуфинишировать в qubole, так как я думаю, что qubole повторяет шаг сокращения.

Но мне было интересно, есть ли такая настройка, чтобы я вообще мог избежать ошибок, чтобы работа по сокращению не повторялась.

App > Failed reduce tasks=54

1 Ответ

0 голосов
/ 05 апреля 2019

Увеличение параллельности редукторов.Это можно сделать, установив свойство конфигурации mapreduce.job.reduces.Если вы используете Java-приложение следующим образом:

hadoop jar -Dmapreduce.job.maps=100 -Dmapreduce.job.reduces=200 your_jar.jar ...

В Hive это можно сделать с помощью свойства hive.exec.reducers.bytes.per.reducer.

Также вы можете попытаться увеличить размер кучи Java контейнера, прочитав это

...