【转】大数据【七十九】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++实现并编译为库的形式提供接口,供上层或其他模块调用。
 

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