Apache Spark для S3 проблема с загрузкой производительности

Я вижу серьезную проблему с производительностью, когда Apache Spark загружает свои результаты в S3. Насколько я понимаю, идут эти шаги ...

  1. Выходные данные последнего этапа записываются в таблицу _temp/ в HDFS, и они переносятся в "_temporary" в определенной папке S3.

  2. Как только весь процесс завершен, Apache spark завершает этап saveAsTextFile, а затем файлы внутри "_temporary" папка в S3 перемещена в основную папку. На самом деле это занимает много времени [примерно 1 мин на файл (средний размер: 600 МБ BZ2)]. Эта часть не регистрируется в обычном журнале stderr.

Я использую Apache Spark 1.0.1 с Hadoop 2.2 в AWS EMR.

Кто-нибудь сталкивался с этой проблемой?

Обновление 1

Как я могу увеличить количество потоков, которые выполняет этот процесс перемещения?

Любое предложение высоко ценится ...

Спасибо

4 голоса | спросил user3279189 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 23:12:01 +0400 2014, 23:12:01

2 ответа


0

Это было исправлено с помощью SPARK-3595 ( https://issues.apache.org/JIRA /просмотр /SPARK-3595 ). Которая была включена в версии 1.1.0.e и более поздние (см. https: //github.com/awslabs/emr-bootstrap-actions/tree/master/spark ).

ответил ChristopherB 26 FriEurope/Moscow2014-12-26T06:28:54+03:00Europe/Moscow12bEurope/MoscowFri, 26 Dec 2014 06:28:54 +0300 2014, 06:28:54
0

Я использую следующие функции. он загружает файл на s3. он загружает около 60 ГБ, gz файлов за 4-6 минут.

        ctx.hadoopConfiguration().set("mapred.textoutputformat.separator",
                ",");
        counts.saveAsHadoopFile(s3outputpath, Text.class, Text.class,
                TextOutputFormat.class);

Убедитесь, что вы создали больше выходных файлов. большее количество меньших файлов сделает загрузку быстрее.

API подробности saveAsHadoopFile [F & lt ;: org.apache.hadoop.mapred.OutputFormat [_, ]] (путь: строка, keyClass : класс [], valueClass : класс [], outputFormatClass : класс [F], кодек: класс [ & lt ;: org.apache.hadoop.io.compress.CompressionCodec]): Единица измерения Выведите RDD в любую файловую систему, поддерживаемую Hadoop, сжимая ее с помощью прилагаемого кодека.

ответил Sandesh Deshmane 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 28 Sep 2014 18:37:11 +0400 2014, 18:37:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132