2013-09-10 42 views
0

我想運行一個在hadoop-1.0.1上使用javaCV的代碼。Hadoop上的JavaCV

我有以下的包括在我的計劃:

import static com.googlecode.javacv.cpp.opencv_core.*; import static com.googlecode.javacv.cpp.opencv_imgproc.*; import static com.googlecode.javacv.cpp.opencv_highgui.*; import com.googlecode.javacpp.BytePointer;

在Hadoop中-1.0.1/lib中,我把這個jar文件:

javacpp.jar javacv.jar, javacv-linux-x86_64.jar, javacv-linux-x86.jar, opencv-2.4.5-linux-x86_64.jar, opencv-2.4.5-linux-x86.jar

然而,當我運行該應用程序我得到這個:

13/09/10 20:26:17 INFO mapred.JobClient: Task Id : attempt_201309102025_0001_m_000000_0, Status : FAILED Error: java.lang.UnsatisfiedLinkError: /tmp/hadoop-huser/mapred/local/taskTracker/huser/jobcache/job_201309102025_0001/attempt_201309102025_0001_m_000000_0/work/tmp/javacpp7385313349525/libopencv_core.so.2.4: libtbb.so: cannot open shared object file: No such file or directory

有沒有人有任何想法我可以讓javaCV在hadoop上工作。除了$ HADOOP_HOME/lib中的jar文件之外,我還需要做別的嗎?

回答

0

您需要安裝openCV所需的軟件包。這裏是介紹如何安裝OpenCV的文章:http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/

你需要的是下面的命令:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev 

我假設你正在使用Ubuntu。