У меня есть программа на C ++, которую я пытаюсь запустить как потоковое задание на hadoop (в ней есть только мапперы, без редукторов). Пока простая программа на С ++ работает правильно. Другая программа на C ++, которая связывает множество общих библиотек, не работает с сеткой. 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
Я думаю, потому что эти общие библиотеки не установлены на узлах данных, его сбой. Я попытался поместить эти библиотеки в tarball и указал это для потоковой работы, используя опцию -archives (Distributed cache). Это также не сработало (я не уверен, что содержимое из tarball было установлено в соответствующую директорию на узлах данных).
Есть идеи, как это сделать?