编译本地64位版本的hadoop-2.6.0

   官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包。

关于native

   Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

   native位于hadoop-2.x.x/lib/native目录下,仅支持linux会unix操作系统。

   hadoop中的zlib和gzip模块会加载本地库,如果加载失败,会提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

   可以在core-site.xml中配置hadoop.native.lib值是否使用本地库,默认值为true。

   官方提供的hadoop-2.x版本中,native文件都是32位编译的,在实际使用64位环境中,建议本地编译后再使用。

   参考:http://hadoop.apache.org/docs/r2.4.0/hadoop-project-dist/hadoop-common/NativeLibraries.html

编译步骤

   本次编译环境:CentOS 5.5 + jdk7 + hadoop-2.6.0-src.tar.gz。为了加快编译过程,尽量将CentOS的内存设置的大一些,还有,编译过程中CentOS必须保持连网状态

1、安装JDK、maven、findbugs(可选步骤)

   实验版本:jdk-7u75-linux-x64.tar.gzapache-maven-3.0.5-bin.tar.gzfindbugs-3.0.0.tar.gz,分别解压到/usr/local目录下,然后配置环境变量:vi /etc/profile,配置内容如下:

export JAVA_HOME=/usr/local/jdk1.7.0_75
export MAVEN_HOME=/usr/local/apache-maven-3.0.5/
export FINDBUGS_HOME=/usr/local/findbugs-3.0.0/
export PATH=.:$MAVEN_HOME/bin:$JAVA_HOME/bin:$FINDBUGS_HOME/bin:$PATH

   验证:① java -version;② mvn -version;③ findbugs -version。

2、安装protoc

   protoc buffer是hadoop的通信工具,编译过程需要安装。实验版本:protobuf-2.5.0.tar.gz,官网:https://code.google.com/p/protobuf/downloads/list。

   安装编译工具:① yum install -y gcc;② yum intall -y gcc-c++;③ yum install -y make,操作系统已安装的不必重复安装。

   进入/usr/local,顺序执行命令:① tar -zxvf protobuf-2.5.0.tar.gz;② cd protobuf-2.5.0;③ ./configure --prefix=/usr/local/protoc/;④ make && make install。

   安装完成后,配置环境变量,增加:export PROTOC_HOME=/usr/local/protoc/,和export PATH=..:$PROTOC_HOME/bin:..

   验证:protoc --version

3、安装其他依赖

   执行命令:① yum install -y cmake;② yum install -y openssl-devel;③ yum install -y ncurses-devel。

4、开始编译工作

   从官网下载需要编译的hadoop源码版本,本次实验:hadoop-2.6.0-src.tar.gz,官网下载:http://archive.apache.org/dist/hadoop/core/stable/

   进入/usr/local,执行解压操作:tar -zxvf hadoop-2.6.0-src.tar.gz,然后修改一个hadoop-2.x共有的bug(详见https://issues.apache.org/jira/browse/HADOOP-10110),编辑文件:usr/local/hadoop-2.6.0-src/hadoop-common-project/hadoop-auth/pom.xml,第55行左右增加如下内容:

<dependency>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>jetty-util</artifactId>
         <scope>test</scope>
</dependency>

   然后进入目录/usr/local/hadoop-2.6.0-src中,执行命令:mvn package -DskipTests -Pdist,native,docs,其中docs根据需要添加。

   编译大概需要二三十分钟,看到一堆的SUCCESS,说明编译成功,编译后的项目在hadoop-2.6.0-src/hadoop-dist/target/hadoop-2.6.0中。

   只需要将编译后项目中的/hadoop-dist/lib/native文件夹覆盖至之前32位的项目中即可(当然整个项目覆盖也可以),并在配置文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh末尾添加:export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"。

时间: 2024-09-30 16:53:00

编译本地64位版本的hadoop-2.6.0的相关文章

确定jdk是32位版本还是64位版本

到jdk目录,用文本编辑器打开release文件,里面为jdk的版本信息(以Windows的java7为例): 64位版本: JAVA_VERSION="1.7.0"OS_NAME="Windows"OS_VERSION="5.2"OS_ARCH="amd64" OS_ARCH="amd64"表示支持64位操作系统 32位版本: JAVA_VERSION="1.7.0"OS_NAME=&

Windows 8.1 64位版本安装.Net Framework3.5

最近刚把个人电脑切换成了Win 8.1 64位版本,但在使用某些Ms的某此产品时会提示没有安装.Net Framework3.5,但按照他的提示需要在线安装而且速度很慢,因为之前搞过WinServer2102的安装知道可以指定安装路径的,但在系统上没有找到,于是求助Google在一个网友的博客里找到并安装成功 注意下面的Cmd需要用管理员权限运行"E:\HTL\System\Windows\Win81\"是我本地的Win81系统镜像 可以使用"DAEMON Tools&quo

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序 环境: win7 64位 hadoop-2.6.0 步骤: 1.下载hadoop-eclipse-plugin-2.6.0.jar包 2.把hadoop-eclipse-plugin-2.6.0.jar放到eclipse安装目录下的plugins目录下 3.打开eclipse发现左边多出来一个DFS Locations 4.在win7上解压hadoop-2.6.0. 5.下载hadoop.dll.winuti

如何在64位版本Linux上开发运行32位应用程序

最近换了Linux系统,由i686换成了x86-64,导致在进行开发的时候出用不了原来SDK中32位的开发工具.于是,博主找到如下文章,博主亲测实用: 如何在64位版本Linux上开发运行32位应用程序 内容如下: 很多程序员(特别是别的公司的)跟我抱怨说他们32位软件无法在我们的64位Linux系统上正常运行,而在他们32位机上正常,其实这个很好解决,一般 是64位系统安装后没有默认安装glibc的32位版本,通过简单的执行以下命令即可实现在64位Linux系统上开发运行32位应用程序,而不用

MongoDB每64位版本下载

MongoDB每64位版本下载: http://dl.mongodb.org/dl/win32/x86_64 版权声明:本文博主原创文章,博客,未经同意不得转载.

MongoDB各个64位版本下载地址

MongoDB各个64位版本下载地址: http://dl.mongodb.org/dl/win32/x86_64

解决“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题

在安装office2013 64位版本的时候,出现"无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:Office 15 Click-to-Run Extensibility Component ,请卸载所有32位Office程序,然后重试安装64位Office.如果要安装32位Office,请运行32位安装程序",出现这种情况的原因大多出现在预装系统并且自带有office的电脑上,比如带有预装系统的品牌机或笔记本等,本方案以便帮助更多的同学解决这个问题. 解决方

Xcode设置Standard Architectures (including 64-bit)将以前的应用编译成64位程序

使用Xcode 可以很方便地将以前的应用编译成64位程序,基本过程如下:1. 使用Xcode 5 打开原有项目.2. 将支持的设备改成"iOS 7".3. 在"Build Setting"中将"Architectures"改成"Standard Architectures (including 64-bit)".4. 运行测试程序,解决编译过程出现的问题.

vc判断是32位编译还是64位编译判断是debug编译还是release编译

来源:http://www.greensoftcode.net/   发布日期:2014-03-28      点击次数:471 发布者IP:119.119.236.22 1.判断是debug编译还是release编译.如果_DEBUG定义了表示是debug编译,否则是release编译. 2.判断是32位编译还是64位编译.在 Win32 配置下,_WIN32 有定义,_WIN64 没有定义.在 x64 配置下,两者都有定义.即在 VC 下,_WIN32 一定有定义.因此,WIN32/_WIN