Nano Hash - криптовалюты, майнинг, программирование

Размер блока в Hadoop

В настоящее время я работаю над мультикластером с четырьмя узлами. Может ли кто-нибудь предложить мне подходящий размер блока для работы с входным файлом размером 22 ГБ? Заранее спасибо.

Вот мои результаты производительности: 64М - 32 мин. 128М - 19,4 мин 256М - 15 мин

Теперь, должен ли я подумать о том, чтобы увеличить его до 1 ГБ / 2 ГБ? Пожалуйста, объясните, если есть какие-либо проблемы, если это сделано.

Изменить: Кроме того, если производительность увеличивается с увеличением размера блока для входного файла размером 20 ГБ, почему размер блока по умолчанию составляет 64 МБ или 128 МБ? Пожалуйста, ответьте на аналогичный вопрос здесь

25.01.2015

  • идеально 128M или 256M 25.01.2015
  • @almasshaikh можно поподробнее? Как изменится результат для 64M, 128M и 256M? Спасибо 25.01.2015

Ответы:


1

Каков размер разделения, который вы собираетесь использовать для обработки этого файла? Если это немного больше, чем размер блока по умолчанию, я предлагаю вам изменить размер блока на значение размера разделения. Это должно увеличить шансы локализации данных для картографов, тем самым повысив производительность работы.

Размер разделения вычисляется по входному формату.

    protected long computeSplitSize(long blockSize, long minSize,
                                  long maxSize) {
    return Math.max(minSize, Math.min(maxSize, blockSize));
  }

minSize и maxSize можно манипулировать с помощью следующих параметров конфигурации:

mapreduce.input.fileinputformat.split.minsize

mapreduce.input.fileinputformat.split.maxsize

Вы можете найти подробный поток данных в классе FileInputFormat.

25.01.2015
  • как узнать размер сплита? Также не могли бы вы объяснить, что он делает? Извините, если вопросы слишком очевидны. 25.01.2015
  • Размер разделения — это логическое разделение, вычисляемое во время обработки mapreduce, чтобы решить, какой объем данных должен быть обработан одним преобразователем. Ваш входной формат заботится о вычислении размера разделения и создании разделения для каждого преобразователя для обработки. По умолчанию размер разделения будет равен размеру блока. ->computeSplitSize(blockSize, minSize, maxSize) 25.01.2015
  • как мне вычислить размер разделения для моей программы? 25.01.2015

  • 2

    Насколько тяжела построчная обработка? Если бы это был просто своего рода «grep», вы могли бы увеличить размер блока до 1 ГБ. Почему бы просто не попробовать? Ваши показатели производительности уже указывают на положительный результат в увеличении размера блока.

    Для меньших размеров блоков следует учитывать, что каждая строка требует значительной вспомогательной обработки. Но это сомнительно, учитывая ваши уже установленные тенденции производительности.

    28.01.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..