Hadoop распространяет и копирует файлы. Поскольку файлы реплицируются, любая операция записи должна будет найти каждый реплицированный раздел по сети и обновить файл. Это сильно увеличит время операции. Обновление файла может увеличить размер блока и потребовать разбиения файла на 2 блока, а затем повторить второй блок. Я не знаю внутренностей и когда / как это разделит блок ... но это потенциальное осложнение.
Что делать, если задание не удалось или его убили, который уже выполнил обновление и получил повторный запуск? Это может обновить файл несколько раз.
Преимущество отсутствия обновления файлов в распределенной системе заключается в том, что вы не знаете, кто еще использует файл при его обновлении, вы не знаете, где хранятся фрагменты. Существуют потенциальные тайм-ауты (узел с блоком не отвечает), поэтому вы можете получить несоответствующие данные (опять же, я не знаю, что такое внутреннее устройство hadoop, и обновление с отключенным узлом может быть обработано, просто то, что я мозгового штурма) )
Существует множество потенциальных проблем (несколько изложенных выше) с обновлением файлов в HDFS. Ни один из них не является непреодолимым, но для проверки и учета потребуется хит производительности.
Поскольку основная цель HDFS - хранить данные для использования в mapreduce, обновление на уровне строк не столь важно на данном этапе.