Существует ли какой-либо автоматический инструмент для преобразования устаревших однопроцессорных программ в облако?
Я не думаю, что существует автоматический инструмент, который может преобразовать устаревшую однопроцессорную программу в облако.
Если унаследованная программа написана с использованием парадигмы MapReduce, то ее будет несколько легко запустить в облаке с использованием Hadoop с некоторыми изменениями. Если нет, то проблема должна быть продумана с помощью MapReduce и переписана для Hadoop с использованием Java или другого языка, который поддерживает чтение / запись в STDIN / STDOUT.
Кроме того, если язык, на котором была написана старая программа, может читать / записывать в STDIN / STDOUT, тогда вы можете использовать Потоковая передача Hadoop .
Кроме того, как я могу узнать / оценить, подходит ли устаревшая программа (или задача программирования) для вычислений?
Если обработка может происходить параллельно независимо и данные также могут быть распределены по нескольким машинам, тогда это может быть подходящим кандидатом для Hadoop.
HDFS (распределенная файловая система Hadoop) разработана с высокой задержкой и высокой пропускной способностью. Если требование для низкой задержки, то вы можете рассмотреть HBase.
Кроме того, HDFS предназначена для больших файлов (ГБ, ТБ и ПБ). Если в устаревшем приложении слишком много маленьких файлов, то следует рассмотреть альтернативный подход .
Еще несколько вещей, которые нужно учитывать.
Hadoop запускается прямо из коробки с некоторыми минимальными изменениями конфигурации, но для его эффективной работы необходимо настроить множество параметров, а иногда требуется получить прямой доступ к коду.
Также попробуйте POC и начните с чего-нибудь небольшого, чтобы решить проблемную область и оценить плюсы и минусы.
Предлагаем купить 'Hadoop: Полное руководство' книга.