Копирование файлов из HDFS в S3 в кластере EMR с помощью S3DistCp - PullRequest
0 голосов
/ 26 июня 2018

Я копирую 800 avro файлов , размер около 136 МБ , из HDFS в S3 на EMR кластер , но я получаю это исключение:

8/06/26 10:53:14 INFO mapreduce.Job:  map 100% reduce 91%
18/06/26 10:53:14 INFO mapreduce.Job: Task Id : attempt_1529995855123_0003_r_000006_0, Status : FAILED
Error: java.lang.RuntimeException: Reducer task failed to copy 1 files: hdfs://url-to-aws-emr/user/hadoop/output/part-00258-3a28110a-9270-4639-b389-3e1f7f386ed6-c000.avro etc
        at com.amazon.elasticmapreduce.s3distcp.CopyFilesReducer.cleanup(CopyFilesReducer.java:67)
        at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:179)
        at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:635)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:390)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

Конфигурация для кластера EMR:

core-site           fs.trash.checkpoint.interval     60
core-site           fs.trash.interval                60
hadoop-env.export   HADOOP_CLIENT_OPTS               -Xmx10g
hdfs-site           dfs.replication                  3

Любая помощь будет оценена.

Edit:

Выполнение команды hdfs dfsadmin -report дает следующий результат:

[hadoop@~]$ hdfs dfsadmin -report
Configured Capacity: 79056308744192 (71.90 TB)
Present Capacity: 78112126204492 (71.04 TB)
DFS Remaining: 74356972374604 (67.63 TB)
DFS Used: 3755153829888 (3.42 TB)
DFS Used%: 4.81%
Under replicated blocks: 126
Blocks with corrupt replicas: 0
Missing blocks: 63
Missing blocks (with replication factor 1): 0

Это говорит о том, что блок отсутствует. Означает ли это, что мне нужно снова запустить программу? И если я увижу вывод Under Under реплицированных блоков, он говорит 126. Это означает, что 126 блоков будут реплицированы. Как я могу узнать, будет ли он дублировать недостающие блоки?

Кроме того, значение Под реплицированными блоками равно 126 за последние 30 минут. Есть ли способ заставить его быстро размножаться?

1 Ответ

0 голосов
/ 06 августа 2018

Я получил ту же ошибку «Задаче редуктора не удалось скопировать 1 файл», и я нашел журналы в HDFS / var / log / hadoop-yarn / apps / hadoop / logs, связанные с заданием MR, которые запускает s3-dist-cp ,

hadoop fs -ls /var/log/hadoop-yarn/apps/hadoop/logs

Я скопировал их в локальный каталог:

hadoop fs -get /var/log/hadoop-yarn/apps/hadoop/logs/application_nnnnnnnnnnnnn_nnnn/ip-nnn-nn-nn-nnn.ec2.internal_nnnn

А затем изучил их в текстовом редакторе, чтобы найти больше диагностической информации о подробных результатах фазы редуктора. В моем случае я получал ошибку от сервиса S3. Вы можете найти другую ошибку.

...