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

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在集群环境进行部署了。       

 

 

 

 

 

你可能感兴趣的:(hadoop2.2.0集群配置 - 64位系统下编译源码过程)