欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hadoop2.2.0集群配置 - 64位系统下编译源码过程

程序员文章站 2024-01-15 17:22:52
...

hadoop2.2.0集群配置 - 64位系统下编译源码过程

        本人写这篇文章的目的是记录个人在hadoop集群搭建过程的一点经验,其中大部分内容来源于互联网,我按照别人的经验将本人安装配置过程记录下来,主要便于个人以后查阅使用,也可以让其他搭建环境与我相同的人在搭建过程中少走弯路。我掉过的坑,希望给以后的我和其他人一点提示。

        搭建环境:【系统】:Redhat 5.6 x64位   【硬件】:i5 2450M 【内存】 8G  【硬盘】500G

        编译提示:

        1. 必须是能上网的机器,我使用的环境是能上网的,如果你机器不能上网,有可能依赖包和编译工具安装不了或者缺失,最后不能成功,不能上网的机器就别折腾了。

        2. 服务器网络环境一定要先配置好,如果网速很慢,就需要慢慢等待,非常耗时,最好是网络速度快的,另外晚上比白天的下载快,所以能在晚上编译就晚上做。

        3. 编译过程出现问题不要慌,一定要心细,看看是不是那一步没有做到位。程序比人要简单,可以就是可以,不可以就是不可以,有问题一定就是有原因,一步步排查,肯定能知道答案。

 

一、 编译环境搭建

        (1). yum安装与配置

               由于是用的Redhat系统,所以需要使用国内的yum源,这样才能更新各个需要的软件。

               如果yum已经可以正常更新最新的最新,就不需要安装配置,如果新安装的Redhat系统,就需要安装配置yum源,具体安装配置请参考我的另一篇文章:

               RedHat 如何使用CentOS的yum源  地址: http://chwshuang.iteye.com/blog/2016343

      

        (2). 编译工具安装与配置

                gcc、gcc-c++、make、cmake、make、openssl-devel、ncurses-devel

                yum安装完成后,就可以用来安装编译工具了

                依次执行以下命令安装 gcc、gcc-c++、make、cmake、make、openssl-devel、ncurses-devel

yum install gcc
yum install gcc-c++
yum install make
yum install cmake 
yum install openssl-devel  
yum install ncurses-devel

         

              提示:如果安装提示失败,有几种可能

              1. yum软件安装错误,请按照第一项中的yum安装与配置重新配置

              2. 网络连接失败,请保证服务器网络连接正常。通过 ping www.baidu.com 的方式查看

 

        (3).  jdk安装与配置

              (3.1)下载 

                   以root用户登录,在oracle官方网址下载频道,下载最新版本的JDK 

                    JDK下载路径地址http://www.oracle.com/technetwork/java/javase/archive-139210.html  

                   选择 JSE 6 > Java SE Development Kit 6u45  >  http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin     

                        将下载文件拷贝到 linux 的 /opt 目录                  

                   如果下载需要登录就注册一个用户再下载      

     

               (3.2)安装

                  以root用户登录,进入 /opt 目录,给文件授权,执行

                        chmod +x jdk-6u45-linux-x64-rpm.bin 

                        然后执行

                        ./jdk-6u45-linux-x64-rpm.bin

                        命令进行解压,然后安装jdk ,执行

                        rpm -ivh jdk-6u45-linux-amd64.rpm

                        命令进行安装,安装完成后,jdk就默认安装到了/usr/java/jdk1.6.0_45/目录

               

               (3.3)配置

                     编辑环境变量文件,

                      vim /etc/profile

                           在文件结尾加入

## -------------------JAVA PATH------------------------##
JAVA_HOME=/usr/java/jdk1.6.0_45
PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME PATH

                     保存配置信息并更新,执行以下命令

                      source /etc/profile

 

               (3.4)验证

                     通过执行以下命令查看是否配置成功:

                      echo $JAVA_HOME  

                      java -version

                      如果安装成功显示内容如下:

[root@hadoop5 opt]# echo $JAVA_HOME
/usr/java/jdk1.6.0_45
[root@hadoop5 opt]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-54)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@hadoop5 opt]# 

 

        (4). maven安装与配置

               (4.1)下载、解压

                     以root用户进入 /opt目录,在内联网的情况下执行以下命令进行maven下载

                      wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip

                     下载apache-maven-3.1.1-bin.zip完成后,执行以下命令进行解压,解压完成后就有一个apache-maven-3.1.1的目录

                     unzip apache-maven-3.1.1-bin.zip 

 

                4.2)配置

                     maven环境变量配置:先编辑环境变量文件

                     vim /etc/profile

                     在文件最后,加入maven配置

##-------------- maven -----------------##
export MAVEN_HOME=/opt/apache-maven-3.1.1
export PATH=$PATH:$MAVEN_HOME/bin

                     保存配置信息并更新,执行以下命令

                      source /etc/profile

 

                 4.3)验证

                     通过执行以下命令查看是否配置成功:

                     mvn -version

                     如果安装成功显示内容如下:

[root@hadoop5 opt]# mvn -verion
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)
Maven home: /opt/apache-maven-3.1.1
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /usr/java/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.18-238.el5", arch: "amd64", family: "unix"

 

                  (4.4)maven国内源配置     

                     由于目前国内网络很少能直接访问maven国外的默认源,所以需要配置国内的源,修改/opt/apache-maven-3.1.1/conf/settings.xml,添加国内源

                     vim /opt/apache-maven-3.1.1/conf/settings.xml

                     在<mirrors></mirros>标签中添加以下内容

<mirror>  
     <id>nexus-osc</id>  
      <mirrorOf>*</mirrorOf>  
  <name>Nexusosc</name>  
  <url>http://maven.oschina.net/content/groups/public/</url>  
</mirror>

                      在<profiles></profiles>中添加以下内容:

<profile>  
       <id>jdk-1.6</id>  
       <activation>  
         <jdk>1.6</jdk>  
       </activation>  
       <repositories>  
         <repository>  
           <id>nexus</id>  
           <name>local private nexus</name>  
           <url>http://maven.oschina.net/content/groups/public/</url>  
           <releases>  
             <enabled>true</enabled>  
           </releases>  
           <snapshots>  
             <enabled>false</enabled>  
           </snapshots>  
         </repository>  
       </repositories>  
       <pluginRepositories>  
         <pluginRepository>  
           <id>nexus</id>  
          <name>local private nexus</name>  
           <url>http://maven.oschina.net/content/groups/public/</url>  
           <releases>  
             <enabled>true</enabled>  
           </releases>  
           <snapshots>  
             <enabled>false</enabled>  
           </snapshots>  
         </pluginRepository>  
       </pluginRepositories>  
     </profile>  

 

 

        (5)protobuf安装与配置  

               protobuf 下载地址: https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2

               以root用户进入/opt目录,执行以下命令

               (5.1)下载

                       wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2

 

               (5.2)解压

                       tar -xjf protobuf-2.5.0.tar.bz2

 

               (5.3)安装

                       cd protobuf-2.5.0

                       ./configure --prefix=/opt/protoc

                       make

                       make install

 

               (5.4)配置

                       修改环境变量文件,

                       vim /etc/profile

                       在文件最后加入protobuf的路径变量

##-------------- protoc -----------------##
export PROTO_HOME=/opt/protoc
export PATH=$PATH:$PROTO_HOME/bin

                      保存配置信息并更新,执行以下命令

                        source /etc/profile

 

               (5.5)验证

                      执行以下命令

                      protoc --version

                      正常显示如下:

[root@hadoop5 protobuf-2.5.0]# protoc --version
libprotoc 2.5.0
[root@hadoop5 protobuf-2.5.0]#

 

 

        (6)findbugs安装与配置

 

                 以root用户进入/opt目录,执行以下命令

             (6.1)下载

                 wget http://jaist.dl.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-2.0.3.tar.gz

 

             (6.2)解压

                 tar -xzf findbugs-2.0.3.tar.gz

 

             (6.3)配置

                 修改环境变量文件,

                  vim /etc/profile

                  在文件最后加入findbugs的路径变量

##-------------- findbugs -----------------##
export FINDBUGS_HOME=/opt/findbugs-2.0.3      
export PATH=$PATH:$FINDBUGS_HOME/bin

               保存配置信息并更新,执行以下命令

                 source /etc/profile

 

             (6.4)验证

                 执行以下命令

                 findbugs -version

                 如果正常显示以下内容就说明安装成功

[root@hadoop5 opt]# findbugs -version
2.0.3
[root@hadoop5 opt]#

 

 

 

二、hadoop2.2.0源码编译

         (1)hadoop2.2.0源码下载与配置

            (1.1)下载、解压

                    以root用户登录/home/hadoop/目录,如果没有,请执行

                    mkdir -p /home/hadoop

                    创建目录后,进入目录

                    cd /home/hadoop

                    执行源码下载命令

                    wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz

                    解压

                    tar -zvxf hadoop-2.2.0-src.tar.gz

            (1.2)修复源码bug

                    在hadoop2.2.0的源码中,有一个bug,在hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml文件中少一个一部分内容,就是下面带 + 号的行,所以需要我们手动添加。

hadoop-common-project/hadoop-auth/pom.xml	(working copy)
@@ -54,6 +54,11 @@
     </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>

                    执行编辑命令

                    vim /home/hadoop/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml

                    然后输入

                    /org.mortbay.jetty

                    执行回车,就能找到下面的内容:

                        <dependency>

                          <groupId>org.mortbay.jetty</groupId>

 

                          <artifactId>jetty</artifactId>

                          <scope>test</scope>

                        </dependency>

                        <dependency>

                    将下面内容拷贝到上面红色内容之间就可以了。

                     <artifactId>jetty-util</artifactId>

                          <scope>test</scope>

                        </dependency>

                        <dependency>

 

                     <groupId>org.mortbay.jetty</groupId>

 

        (2). hadoop2.2.0编译

            (2.1)编译

                     以root用户进入 /opt/hadoop/hadoop-2.2.0-src 目录

                     cd  /opt/hadoop/hadoop-2.2.0-src 

                    执行编译命令,然后就是几十分钟的等待时间了,机器好的10分钟左右,机器差的估计一个小时左右,就等吧。

                    mvn package -Pdist,native -DskipTests -Dtar

            (2.2) 验证

                    1. 如果安装过程没有提示 ERROR信息,最后结束内容与下面内容类似,恭喜你,编译成功了!还可以进一步验证!

 

[INFO] hadoop-mapreduce .................................. SUCCESS [4.872s]
[INFO] Apache Hadoop MapReduce Streaming ................. SUCCESS [6.674s]
[INFO] Apache Hadoop Distributed Copy .................... SUCCESS [47.727s]
[INFO] Apache Hadoop Archives ............................ SUCCESS [4.108s]
[INFO] Apache Hadoop Rumen ............................... SUCCESS [10.765s]
[INFO] Apache Hadoop Gridmix ............................. SUCCESS [6.466s]
[INFO] Apache Hadoop Data Join ........................... SUCCESS [3.907s]
[INFO] Apache Hadoop Extras .............................. SUCCESS [5.539s]
[INFO] Apache Hadoop Pipes ............................... SUCCESS [17.595s]
[INFO] Apache Hadoop Tools Dist .......................... SUCCESS [3.130s]
[INFO] Apache Hadoop Tools ............................... SUCCESS [0.133s]
[INFO] Apache Hadoop Distribution ........................ SUCCESS [46.909s]
[INFO] Apache Hadoop Client .............................. SUCCESS [18.105s]
[INFO] Apache Hadoop Mini-Cluster ........................ SUCCESS [1.900s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:20:30.832s
[INFO] Finished at: Sat Feb 15 23:38:27 CST 2014
[INFO] Final Memory: 91M/243M
[INFO] ------------------------------------------------------------------------

 

                    2. 版本验证

                    进入hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/bin目录,执行以下命令:

                    ./hadoop version

                    查看结果是以下内容什么编译成功:

 

[root@hadoop5 bin]# ./hadoop version
Hadoop 2.2.0
Subversion Unknown -r Unknown
Compiled by root on 2014-02-15T14:53Z
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4
This command was run using /home/hadoop/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar
[root@hadoop5 bin]# 

 

                    3. 查看hadoop文件版本信息

                    hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/目录下,执行以下命令,如果文件libhadoop.so.1.0.0 后面出现 ELF 64-bit 等字样,说明编译64位文件成功。如果是官方下载的版本,这个地方就应该是32-bit。

                    file lib/native/*

 

[root@hadoop5 hadoop-2.2.0]# file lib/native/*
lib/native/libhadoop.a:        current ar archive
lib/native/libhadooppipes.a:   current ar archive
lib/native/libhadoop.so:       symbolic link to `libhadoop.so.1.0.0'
lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
lib/native/libhadooputils.a:   current ar archive
lib/native/libhdfs.a:          current ar archive
lib/native/libhdfs.so:         symbolic link to `libhdfs.so.0.0.0'
lib/native/libhdfs.so.0.0.0:   ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
[root@hadoop5 hadoop-2.2.0]# 

 

 

             到此,hadoop2.2.0在64位 RedHat5.6 系统中编译完成。下一步可以将编译的hadoop在集群环境进行部署了。