Я работаю над своим школьным проектом. есть приложение для обнаружения дублирования видео, написанное на c ++. Приложение предназначено для работы на одной машине, и я хотел бы создать спарк-кластер и запускать это приложение под кластером.
Это возможно? сложно?
Позвольте мне попытаться ответить на ваш вопрос:
Во-первых, вы должны выяснить, какой формат имеет приложение c ++?
Это исходный код или двоичный исполняемый бин?
source code
Вы можете реализовать алгоритм в java / scala и максимально использовать ресурсы кластера, чтобы сделать вашу работу намного быстрее, чем версия для одного компьютера.
если ваше время ограничено, вы можете использовать gcc для компиляции исходного кода на c ++ и следовать следующему методу.
binary executable bin
Поскольку байт-код java / scala (формат .class) запускается на jvm, он не совместим с собственным кодом на компьютере, который определяется сочетанием компилятора и операционной системы.
В этом случае единственный выбор — получить новый процесс для запуска исполняемого бинарного файла c ++ и получить то, что вы хотите, через межпроцессное взаимодействие, например pipe.
Одним словом, вы должны получить новый процесс на узле драйвера для дедупликации ваших данных и использовать механизм подсчета для выполнения следующих параллельных вычислений для ускорения вашего проекта.
и получить новый процесс так легко в Scala или Java, пожалуйста, обратитесь к документу:
Процесс
Других решений пока нет …