【轉】大數據【七十九】hadoop搭建時爲什麼最好重新編譯源碼的原因

  一般hadoop需要在自己的linux環境下重新將源代碼編譯一下,爲什麼hadoop要自己再次編譯一下,網上很多都是說:官網提供編譯好的只有32位的,沒有提供64位的,其實這種解釋是錯的。官網可下載的也有編譯好的64位。

1。那爲什麼要大費周折的重新編譯?

主要是要重新編譯本地庫(Native Libraries) 代碼(Linux下對應[.so]文件,window下對應[.dlI]文件),也就是編譯生成linux下的[.so] 文件。

2。看下hadoop官網給的相關說明(翻譯後的)官網鏈接 hadoop本地庫文檔

  Hadoop是使用Java語言開發的,但是有一些需求和操作並不適合使用java,所以就引入了本地庫(Native Libraries) 的概念。說白了,就是Hadoop的某些功能,必須通過JNT來協調Java類文件和Native代碼生成的庫文件一起才能工作。linux系統要運行Native 代碼,首先要將Native 編譯成目標CPU 架構的[.so]文件。而不同的處理器架構,需要編譯出相應平臺的動態庫[.so] 文件,才能被正確的執行,所以最好重新編譯一次hadoop源碼,讓[.so]文件與自己處理器相對應。

這裏寫圖片描述

3. 【什麼是Native Library?】

    Native Library,一般我們譯爲本地庫或原生庫,是由C/C++編寫的動態庫[.so],並通過JNI(Java Native Interface)機制爲java層提供接口。應用一般會出於性能、安全等角度考慮將相關邏輯用C/C++實現並編譯爲庫的形式提供接口,供上層或其他模塊調用。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章