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