`

64位操作系统下重新编译hadoop-2.2.0

阅读更多
操作系统oracle linux 5.8 64bit

1.yum光盘源设置
vi /etc/yum.repos.d/rhel-debuginfo.repo
[base]
name=Server Local Sources
baseurl=file:///media/Server
enabled=1
gpcheck=1
gpgkey=file:///media/RPM-GPG-KEY-oracle


2.因为是最小化安装的系统,需要安装如下软件包
[root@hadoop1 ~]# yum install lzo-devel  zlib-devel  gcc autoconf automake libtool   ncurses-devel openssl-deve

3.安装maven
根据网上查得,最新的maven3.1.1与hadoop2.2.0有兼容性问题,这里用maven3.0.5

[root@hadoop1 ~]# wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

因为下载的是已经编译好的,所以直接解压就可以了

[root@hadoop1 ~]# tar zxvf apache-maven-3.0.5-bin.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/apache-maven-3.0.5/ /usr/local/maven

设置环境变量
[root@hadoop1 local]# vi /etc/profile

添加以下内容
export MAVEN_HOME=/usr/local/maven

4.安装ant
[root@hadoop1 ~]# wget http://mirror.esocc.com/apache//ant/binaries/apache-ant-1.9.3-bin.tar.gz
[root@hadoop1 ~]# tar zxvf  apache-ant-1.9.3-bin.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/apache-ant-1.9.3/ /usr/local/ant
[root@hadoop1 ~]# vi /etc/profile
export ANT_HOME=/usr/local/ant

5.安装findbugs
[root@hadoop1 ~]# wget http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.tar.gz?download
[root@hadoop1 ~]# tar zxvf findbugs-2.0.3.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/findbugs-2.0.3/ /usr/local/findbugs
[root@hadoop1 ~]# vi /etc/profile
export FINDBUGS_HOME=/usr/local/findbugs

6.安装protobuf
[root@hadoop1 ~]# wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
[root@hadoop1 ~]# tar zxvf protobuf-2.5.0.tar.gz
[root@hadoop1 ~]# cd protobuf-2.5.0
[root@hadoop1 protobuf-2.5.0]# ./configure

这里报了一个错:
configure: error: in `/root/protobuf-2.5.0':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check

是c++的编译器没有安装

[root@hadoop1 protobuf-2.5.0]# yum install gcc-c++

然后重新编译protobuf并安装
[root@hadoop1 protobuf-2.5.0]# ./configure
[root@hadoop1 protobuf-2.5.0]# make
[root@hadoop1 protobuf-2.5.0]# make install

7.把上面的几个软件加到PATH变量里
[root@hadoop1 ~]# vi /etc/profile
export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin
运行profile使得这些配置生效
[root@hadoop1 ~]# source /etc/profile

8.编译hadoop
[root@hadoop1 ~]# wget http://mirror.esocc.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz
[root@hadoop1 ~]# tar zxvf hadoop-2.2.0-src.tar.gz

这里网上查得hadoop2.2.0的源码包里面还有一个bug:
https://issues.apache.org/jira/browse/HADOOP-10110

根据HADOOP-10110.patch,做如下修改:
[root@hadoop1 hadoop-2.2.0-src]# vi hadoop-common-project/hadoop-auth/pom.xml
     </dependency>
     <dependency>
       <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
       <artifactId>jetty</artifactId>
       <scope>test</scope>
     </dependency>

然后就开始编译hadoop了
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar

没想到编译过程也是需要配JAVA_HOME的
[root@hadoop1 hadoop-2.2.0-src]# export JAVA_HOME=/home/hadoop/jdk
[root@hadoop1 hadoop-2.2.0-src]# export PATH=$PATH:$JAVA_HOME/bin

再重新来
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar

之后就是漫长的等待了。这里还有一个要注意的是这个过程里面它会自己到网上下载很多东西的,可别把网断了。

最终还是报了一个错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "cmake" (in directory "/root/hadoop-2.2.0-src/hadoop-common-project/hadoop-common/target/native"): error=2, No such file or directory -> [Help 1]

似乎是没有安装cmake
[root@hadoop1 ~]# cd
[root@hadoop1 ~]# wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
[root@hadoop1 ~]# tar zxvf cmake-2.8.12.2.tar.gz
[root@hadoop1 ~]# cd cmake-2.8.12.2
[root@hadoop1 ~]# ./configure
[root@hadoop1 ~]# gmake
[root@hadoop1 ~]# gmake install

安装好cmake后再来一次
[root@hadoop1 ~]# cd
[root@hadoop1 ~]# cd hadoop-2.2.0-src
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar

这次报了这么一个错
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-hdfs: An Ant BuildException has occured: exec returned: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1]http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn <goals> -rf :hadoop-hdfs

没看出什么个意思,再往上看,注意到了这一段
    
[exec] CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
[exec]   Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)    
[exec] Call Stack (most recent call first):    
[exec]   /usr/local/share/cmake-2.8/Modules/FindPkgConfig.cmake:102 (find_package_handle_standard_args)    
[exec]   main/native/fuse-dfs/CMakeLists.txt:23 (find_package)

安装pkgconfig
[root@hadoop1 hadoop-2.2.0-src]# yum install pkgconfig

继续,这次把安装提示重新定向到一个文件里,方便查看错误:
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar > install2.log

错误:
[exec] CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):  
[exec]   Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the    
[exec]   system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES    
[exec]   OPENSSL_INCLUDE_DIR)    
[exec] Call Stack (most recent call first):    
[exec]   /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)    
[exec]   /usr/local/share/cmake-2.8/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)    
[exec]   CMakeLists.txt:20 (find_package)    
[exec]     
[exec]     
[exec] -- Configuring incomplete, errors occurred!
[exec]   /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)

[root@hadoop1 ~]# yum install openssl
Loaded plugins: rhnplugin, securityThis system is not registered with ULN.ULN support will be disabled.
Setting up Install ProcessPackage openssl-0.9.8e-22.el5.x86_64 already installed and latest versionPackage openssl-0.9.8e-22.el5.i686 already installed and latest versionNothing to do

openssl已经安装了,那就把openssl-devel安装一下
[root@hadoop1 ~]# yum install openssl-devel

继续:
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar > install3.log

这次终于完成了,验证一下:
[root@hadoop1 hadoop-2.2.0-src]# cd hadoop-dist/target/hadoop-2.2.0/lib/native/
[root@hadoop1 native]# file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not strippedhadoop-dist/target

目录下hadoop-2.2.0.tar.gz也有了,以后应该就可以直接用了。
分享到:
评论

相关推荐

    hadoop-common-2.2.0-bin

    要解决这个问题,开发者需要确保Hadoop的bin目录已经被添加到系统的PATH环境变量中,这样Eclipse才能在编译和运行时找到Hadoop的相关命令。 Hadoop Common是Hadoop生态系统的基础部分,包含了一组通用的工具和服务...

    Hadoop-2.2.0针对ubuntu AMD64的native lib

    总之,Hadoop-2.2.0在64位Ubuntu环境下的本地库问题可以通过自编译或使用社区提供的解决方案来解决。理解并掌握这个过程,对于在Ubuntu AMD64平台上优化Hadoop的性能和稳定性至关重要。同时,持续学习和跟踪Hadoop的...

    hadoop-2.2.0编译安装

    - 操作系统:Linux CentOS 6.5 64位 - Java开发环境:JDK 1.7.0_79 - 注意,Hadoop依赖于特定版本的JDK,确保正确安装。 2. **下载源码**: - 从Apache官网获取Hadoop-2.2.0的源码包:...

    Hadoop 2.2.0 64位native文件(重编译)

    这个64位的native文件是Hadoop针对64位Linux操作系统编译的一组库文件,它们对于Hadoop在Linux环境下高效运行至关重要。在Hadoop的源代码中,native库主要是由C++编写的,提供了与Java层交互的关键功能,尤其是涉及...

    hadoop2.2.0的64位安装包

    总结来说,安装64位的Hadoop 2.2.0涉及下载源代码、配置编译环境、编译源代码、安装和配置Hadoop以及启动服务。这个过程对于理解和掌握Hadoop的工作原理非常有帮助,同时也能确保在64位Linux系统上顺利运行大数据...

    hadoop-common-2.6.0-bin-master.zip

    `hadoop-common-2.6.0-bin-master.zip` 是一个针对Hadoop 2.6.0版本的压缩包,特别适用于在Windows环境下进行本地开发和测试。这个版本的Hadoop包含了对Windows系统的优化,比如提供了`winutils.exe`,这是在Windows...

    hadoop-2.2.0和其依赖项(winutils)

    `hadoop2.6_winutils_x64.zip`文件则包含了适用于64位Windows系统的winutils工具。解压后,将winutils.exe和hadoop.dll放置在合适的路径下,并确保环境变量HADOOP_WINUTILS_PATH指向这个位置。这样,Hadoop在执行...

    spring-data-hadoop-2.2.0.RELEASE(含源码)

    Spring Data Hadoop是Spring Framework的一个扩展,旨在简化与Apache Hadoop生态系统的集成,提供了一种声明式的方式来操作Hadoop数据存储。2.2.0.RELEASE是这个库的一个稳定版本,包含了完整的源代码,方便开发者...

    hadoop2.2.0-linux-64bit安装包和源码包

    根据提供的文件标题、描述、标签以及部分内容,我们可以推断出这份文档主要涉及Hadoop 2.2.0版本在Linux 64位系统上的安装包和源码包的相关信息。以下将详细介绍与这些关键词相关的重要知识点。 ### Hadoop 2.2.0 ...

    hadoop-common-2.2.0-bin-masters.zip

    `winutils.exe`是Hadoop在Windows上运行所必需的一个实用程序,它提供了一些基本的系统操作,比如设置HDFS的权限、管理本地文件系统等。当这个错误出现时,通常意味着系统无法找到`winutils.exe`的路径,这可能是...

    spark-2.2.0-bin-hadoop2.6.tgz

    `spark-2.2.0-bin-hadoop2.6.tgz`是一个压缩包,包含了Spark 2.2.0在YARN(Hadoop Yet Another Resource Negotiator)模式下运行所需的所有组件。 首先,让我们深入了解Spark的核心概念。Spark提供了一个基于内存...

    hadoop-common-2.2.0-bin.zip

    2. winutils.exe:这是Hadoop在Windows环境下运行的重要工具,用于执行各种系统级操作,如设置HDFS(Hadoop Distributed File System)的访问权限,管理Hadoop守护进程等。 3. hadoop.exp和libwinutils.lib:.exp...

    Spark编译与部署(中)--Hadoop编译安装

    在64位操作系统上安装Hadoop时,可能会遇到编译位数不匹配的问题。通常情况下,这是由于缺少64位支持库导致的。可以通过安装`glibc-devel.i686`来解决该问题: ```bash yum install glibc-devel.i686 ``` ##### ...

    hadoop-commin-2.2.zip

    本文将深入探讨Hadoop Common 2.2.0版本在Windows操作系统上的编译过程及其核心组件,旨在为读者提供详尽的实践指导。 Hadoop Common是Hadoop生态系统的基础模块,包含了Hadoop项目所需的各种通用工具和库,如网络...

    ubuntu12.04上hadoop2编译64位

    在Ubuntu 12.04系统中,如果你需要将32位的Hadoop 2.2.0编译成64位,以下是一份详细的步骤指南。首先,确保你的系统支持64位编译,并且你已经具备了必要的权限。 1. **安装GCC**: 在编译任何软件之前,你需要安装...

    Hadoop2.2.0 HDFS开发依赖的jar包

    Hadoop2.2.0版本是一个重要的里程碑,引入了诸多改进和优化,增强了系统的稳定性和性能。为了在Eclipse这样的开发环境中进行HDFS相关的开发工作,你需要正确的jar包支持。下面我们将详细讨论Hadoop2.2.0 HDFS开发所...

    hadoop2.x编译实例

    ### Hadoop 2.x 编译实例详解 ...编译完成后,会在 `/usr/local/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0` 目录下生成编译好的 Hadoop 包。 至此,Hadoop 2.2.0 的源码编译过程全部完成。

    spark-2.0.0-bin-hadoop2.7.tgz.zip

    "spark-2.0.0-bin-hadoop2.7.tgz.zip"这个文件是Spark 2.0.0预编译版本,包含了针对Hadoop 2.7的依赖。首先,你需要解压缩这个zip文件,得到"spark-2.0.0-bin-hadoop2.7.tgz",然后再进行一次解压缩。解压后,你会...

    hadoop-common-2.2.0-bin-master.zip

    在这个名为“hadoop-common-2.2.0-bin-master.zip”的压缩包中,包含了Hadoop Common的2.2.0版本的源码及其编译后的二进制文件,是学习和使用Hadoop不可或缺的部分。本篇将深入探讨Hadoop Common的关键特性、主要...

Global site tag (gtag.js) - Google Analytics