У меня есть программа на C++, которую я пытаюсь запустить как потоковое задание на hadoop (в ней только mappers, никаких reducers). В то время как простая программа на C++ работает правильно. Другая программа на C++, которая использует множество общих библиотек, не работает на grid. ldd на этой программе на C++ показывает следующее: (она использует много сторонних библиотек, таких как opencv и boost_serialization)
/usr/local/lib/libboost_serialization.so.1.48.0 /usr/local/lib/libfftw3f.so.3 /usr/local/lib/libconfig++.so.9 /usr/local/lib/liblog4cpp.so.4 /usr/local/lib/libopencv_core.so.2.3 /usr/local/lib/libopencv_contrib.so.2.3
Я думаю, что из-за того, что эти общие библиотеки не установлены на data-nodes, она не работает. Я попытался поместить эти библиотеки в tarball и указать их в потоковом задании с помощью опции -archives (распределенный кэш). Это также не сработало (я не уверен, что содержимое tarball было установлено в соответствующую директорию на data-nodes).
Есть идеи, как это сделать?