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