要在Hadoop集群運行上運行JNI程序,首先要在單機上調試程序直到可以正確運行JNI程序,之後移植到Hadoop集群就是水到渠成的事情。
Hadoop運行程序的方式是通過jar包,所以我們需要將所有的class文件打包成jar包。在打包的過程中,無需將動態鏈接庫包含進去。
在集群中運行程序之前,Hadoop會首先將jar包傳遞到所有的節點,然後啟動運行。我們可以在這個階段將動態鏈接庫作為附件和jar包同時傳遞到所有的節點。方法就是給jar命令指定-files參數。命令如下:
hadoop jarSegment.jar Segment -files ./bin/lib***.so input output
通過該命令,jar包和動態鏈接庫都會傳遞到所有節點,然後啟動mapreduce任務。