Сравнительный анализ Spark IO как на диске, так и в сети

Я делаю некоторые тесты для кластера, используя Spark, чтобы получить производительность отдельных машин, используя оболочку в клиенте режима развертывания и с локальным мастером. Я использую оболочку Spark 2.2 (у меня тоже есть 1.6, а иногда и проверяет это) и использую rdd.saveAsObjectFile для записи на диск и sc.objectFile с несколькими потоками для проверки скорости записи и чтения на диск.

Странно то, что проводка идет быстрее, чем чтение (около 70 МБ / с для записи, 45 для чтения). Я также пытался читать с sc.wholeTextFiles, чтобы убедиться, что я не делал ошибок с потоками, но результаты в основном те же.

Я хотел знать, если я что-то упускаю, первая мысль была о сериализации и потоках, но wholeTextFiles не десериализует (просто читает строки) и автоматически обрабатывает потоки. У меня нет никаких реальных подсказок, пробовал тестировать с помощью базовых сценариев оболочки, используя dd для записи и cat > dev/null для чтения, но я получаю нормальный результат (запись 80MB/s, чтение 150MB/s).

Что касается скорости сети - это немного не связано, я думаю - я не смог найти ничего полезного в документации, я пропустил какой-то важный класс?

В завершение я хочу выполнить эти тесты в Spark, чтобы были учтены все его внутренние механизмы (сжатие, сериализация, управление потоками).

0 ответов

Другие вопросы по тегам