jni - usar - metodos nativos en java
cómo usar jni en chispa? (1)
Quiero usar jni para llamar a mi c ++ lib en chispa. Cuando ejecuto mi programa, muestra que java.lang.UnsatisfiedLinkError: no hq_Image_Process en java.library.path, por lo que obviamente el programa no puede encontrar mi hq_Image_Process.so.
En hadoop, los archivos pueden distribuir el archivo xxx.so a los esclavos de esta manera:
[hadoop@Master ~]$ hadoop jar JniTest3.jar -files /home/hadoop/Documents/java/jni1/bin/libFakeSegmentForJni.so FakeSegmentForJni.TestFakeSegmentForJni input output
¿Hay alguna forma de llamar a mi hq_Image_Process.so como hadoop en chispa? Apreciaría cualquier ayuda.
En primer lugar, la biblioteca nativa debe estar preinstalada en todos los nodos de trabajadores. La ruta a esa biblioteca debe especificarse en spark-env.sh
:
export SPARK_LIBRARY_PATH=/path/to/native/library
SPARK_PRINT_LAUNCH_COMMAND
variable de entorno SPARK_PRINT_LAUNCH_COMMAND
se puede usar para diagnosticarla:
export SPARK_PRINT_LAUNCH_COMMAND=1
Si todo está configurado correctamente, verá resultados como este:
Spark Command:
/path/to/java -cp <long list of jars> -Djava.library.path=/path/to/native/library <etc>
========================================