1
我使用OpenCV庫在Hadoop中使用Spark框架進行圖像檢測。 我能夠在Haar文件存在於本地文件系統中的本地模式下運行spark程序。 但是我在分佈式模式下讀取Haar文件時出現空指針錯誤儘管我已將haar文件複製到所有羣集節點中,並在代碼中提供了絕對路徑。在hadoop中以散佈模式閱讀haar級聯
String fileloc ="/home/centos/haarcascade_frontalface_alt.xml"
CascadeClassifier faceDetector = new CascadeClassifier(fileloc);
Error:
Caused by: java.lang.NullPointerException
at javax.xml.bind.DatatypeConverterImpl.guessLength(DatatypeConverterImpl.java:658)
at javax.xml.bind.DatatypeConverterImpl._parseBase64Binary(DatatypeConverterImpl.java:696)
at javax.xml.bind.DatatypeConverterImpl.parseBase64Binary(DatatypeConverterImpl.java:438)
at javax.xml.bind.DatatypeConverter.parseBase64Binary(DatatypeConverter.java:342)
at com.lb.customlogic.impl.CustomLogicImpl.process(CustomLogicImpl.java:82)
... 20 more
我試着用前綴擴展名file://,file:/和file:///,但那些對我來說並不適合。 是否需要在前綴中添加任何額外內容以在程序執行期間讀取文件? 由於Opencv不支持Hadoop,我認爲我無法提供haar文件的HDFS共享位置路徑。
我可以在spark-submit中使用--files讀取executors中的haar文件。我檢查了--files選項的理論定義,但我不確定它的實現 – Saurabh