TransferFromLocal для hadoop hdfs с использованием множества потоков - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь перенести множество файлов из локальных файлов в Hadoop Hadoop.В моем Java-коде у меня только одно соединение с hadoop.Но я звоню

 fileSystem.transferFromLocal 

одновременно в 50 потоках.

Я думаю, что это не очень хороший способ, потому что он очень медленный.

Может кто-нибудь дать мне немногопредложение об этом?Большое спасибо.

1 Ответ

1 голос
/ 14 января 2012

Вам необходимо выяснить горлышко бутылки, вызывающее медленную передачу, оно может быть любым.Простое увеличение количества потоков не приведет к пропорциональному увеличению записи HDFS.Не вдаваясь в подробности о вашем кластере Hadoop, трудно диагностировать проблему.

Вот некоторые вещи, которые следует учитывать

  1. Проверьте ширину полосы сети между локальнымимашина и кластер Hadoop.

  2. Локальный дисковый ввод-вывод также может быть узким местом.

  3. Попробуйте увеличить количество узлов данных.Обратите внимание, что данные напрямую передаются от клиента к первому узлу данных в конвейере.Первый переходит ко второму, который переходит к следующему узлу данных.

  4. Проверьте любые параметры конфигурации для точной настройки HDFS.

Проверьте Руководство по архитектуре для получения более подробной информации о HDFS.

...