zoukankan      html  css  js  c++  java
  • Hadoop入门进阶课程2--Hadoop2.X 64位编译

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  。该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237

    【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.com/s/10PnDs下载该PDF文件

    1编译环境

    1.1软硬件环境说明

    所有节点均是CentOS系统,防火墙和SElinux禁用,所有节点上均创建了一个shiyanlou用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown R shiyanlou:shiyanlou /app)。

    Hadoop搭建环境:

    l  虚拟机操作系统: CentOS6.6  64位,单核,1G内存

    l  JDK1.7.0_55 64

    l  Hadoop1.1.2

    1.2环境搭建

    1.2.1JDK安装和Java环境变量配置

    1.下载JDK1.7 64bit安装包

    打开JDK1.7 64bit安装包下载链接为:

    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:

    clip_image002[4]

    2.创建/app目录,把该目录的所有者修改为shiyanlou

    sudo mkdir /app

    sudo chown -R shiyanlou:shiyanlou /app

    clip_image004[4]

    3.创建/app/lib目录,使用命令如下:

    mkdir /app/lib

    clip_image006[4]

    4. 把下载的安装包解压并迁移到/app/lib目录下

    cd /home/shiyanlou/install-pack

    tar -zxf jdk-7u55-linux-x64.tar.gz

    mv jdk1.7.0_55/ /app/lib

    ll /app/lib

    clip_image008[4]

    5.使用sudo vi /etc/profile命令打开配置文件,设置JDK路径

    export JAVA_HOME=/app/lib/jdk1.7.0_55

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    clip_image010[4]

    6.编译并验证

    source /etc/profile

    java -version

    clip_image012[4]

    1.2.2安装并设置maven

    1.下载maven安装包(建议安装3.0以上版本)本次安装选择的是maven3.0.5的二进制包,下载地址http://mirror.bit.edu.cn/apache/maven/maven-3/  ,也可以在/home/shiyanlou/install-pack目录中找到该安装包

    clip_image014[4]

    2. 解压缩apache-maven-3.0.5-bin.tar.gz包,并把apache-maven-3.0.5目录移到/app/lib目录下

    cd /home/shiyanlou/install-pack

    tar -zxf apache-maven-3.0.5-bin.tar.gz

    mv apache-maven-3.0.5 /app/lib

    clip_image016[4]

    3.使用sudo vi /etc/profile打开配置文件,并加入maven设置

    export MAVEN_HOME=/app/lib/apache-maven-3.0.5

    export PATH=$PATH:$MAVEN_HOME/bin

    clip_image018[4]

    4.编译/etc/profile文件并验证配置是否成功:

    source /etc/profile

    mvn -version

    clip_image020[4]

    1.2.3使用yum安装svn

    sudo yum install svn

    clip_image022[4]

    clip_image024[4]

    clip_image026[4]

    1.2.4使用yum安装autoconf automake libtool cmake

    sudo yum install autoconf automake libtool cmake

    clip_image028[4]

    clip_image030[4]

    clip_image032[4]

    1.2.5使用yum安装ncurses-devel

    sudo yum install ncurses-devel

    clip_image034[4]

    1.2.6使用yum安装openssl-devel

    sudo yum install openssl-devel

    clip_image036[4]

    clip_image038[4]

    clip_image040[4]

    1.2.7使用yum安装gcc*

    sudo yum install gcc*

    clip_image042[4]

    clip_image044[4]

    clip_image046[4]

    1.2.8安装并设置protobuf

    注:该程序包需要在gcc安装完毕后才能安装,否则提示无法找到gcc编译器。

    1.下载protobuf安装包

    下载链接为 https://code.google.com/p/protobuf/downloads/list ,也可以在/home/shiyanlou/install-pack目录中找到该安装包

    clip_image048[4]

    2.解压安装包并把protobuf-2.5.0目录转移到/app/lib目录下

    cd /home/shiyanlou/install-pack

    tar -zxf protobuf-2.5.0.tar.gz

    mv protobuf-2.5.0 /app/lib

    clip_image050[4]

    3.进行目录运行命令

    进入目录运行如下命令:

    cd /app/lib/protobuf-2.5.0/

    sudo ./configure

     

    sudo make

    sudo make check

    sudo make install

    clip_image052[4]

    clip_image054[4]

    make过程时间较长,需要运行几分钟时间

    clip_image056[4]

    check结果如下

    clip_image058[4]

    运行install命令及结果如下

    clip_image060[4]

    clip_image062[4]

    4.验证是否安装成功

    运行成功之后,通过如下方式来验证是否安装成功,如果出现"Missing input file"表示成功安装protobuf

    protoc

    clip_image064[4]

    2编译Hadoop

    2.1下载Hadoop源代码 Release2.2.0

    /app目录下新建compile子目录,在该文件夹通过SVN获取Hadoop2.2.0源代码,命令如下:

    cd /app

    mkdir compile

    cd compile

    svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0

    获取时间较长,大小约75.3M

    clip_image066[4]

    2.2编译Hadoop源代码

    由于hadoop2.2.0svnpom.xml有点问题,会造成编译中出错,可先参考3.1修复该问题。在Hadoop源代码的根目录执行如下命令:

    cd /app/compile/release-2.2.0/

    mvn package -Pdist,native -DskipTests –Dtar

    (注意:这行命令需要手工输入,如果复制执行会报异常!)

    clip_image068[4]

    在编译过程需要联网,从网络中下载所依赖的包,编译的过程时间根据网速时间不等,一般在30分钟左右。

    clip_image070[4]

    clip_image072[4]

     

    编译好的Hadoop2.X 64位安装包在hadoop-dist/target目录中,该文件为hadoop-2.2.2.tar.gz

    clip_image074[4]

    2.3验证编译是否成功

    hadoop-dist/target/hadoop-2.2.0/lib/native 目录中查看libhadoop.so.1.0.0属性:

    cd /app/compile/release-2.2.0/hadoop-dist/target/hadoop-2.2.0/lib/native

    file *

    该文件为ELF 64-bit LSB则表示文件成功编译为64位(如果系统没有file命令,则使用sudo yum install file进行安装)

    clip_image076[4]

    3问题解决

    3.1编译Hadoop2.2.0出现代码异常

    目前的2.2.0 Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会提示下面错误:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:

    [ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[88,11] error: cannot access AbstractLifeCycle

    [ERROR] class file for org.mortbay.component.AbstractLifeCycle not found

    [ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[96,29] error: cannot access LifeCycle

    [ERROR] class file for org.mortbay.component.LifeCycle not found

    clip_image078[4]

    直接修改hadoop-common-project/hadoop-auth/pom.xml,其实就是少了一个包,添加一个dependency

    <dependency>

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

          <artifactId>jetty-util</artifactId>

          <scope>test</scope>

    </dependency>

    clip_image080[4]

  • 相关阅读:
    j2ee学习笔记
    go开发和运行环境的配置
    Java基础学习笔记
    经典C/S服务器模型之守护进程
    linux抓包命令-tcpdump命令详解
    PostgreSQL的HA解决方案-2负载均衡(load balance)
    PostgreSQL的HA解决方案-1主从和备份(master/slave and backup)
    PostgreSQL的HA解决方案-项目概述
    将数据写到kafka的topic
    将sparkStreaming结果保存到Redshift数据库
  • 原文地址:https://www.cnblogs.com/shishanyuan/p/4631421.html
Copyright © 2011-2022 走看看