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

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

、编译环境

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  JDK:1.7.0_55 64位

l  Hadoop:1.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,如下图所示:

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

sudo mkdir /app

sudo chown -R shiyanlou:shiyanlou /app

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

mkdir /app/lib

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

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

6.编译并验证

source /etc/profile

java -version

1.2.2安装并设置maven

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

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

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

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

export PATH=$PATH:$MAVEN_HOME/bin

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

source /etc/profile

mvn -version

1.2.3使用yum安装svn

sudo yum install svn

1.2.4使用yum安装autoconf automake libtool cmake

sudo yum install autoconf automake libtool cmake

1.2.5使用yum安装ncurses-devel

sudo yum install ncurses-devel

1.2.6使用yum安装openssl-devel

sudo yum install openssl-devel

1.2.7使用yum安装gcc*

sudo yum install gcc*

1.2.8安装并设置protobuf

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

1.下载protobuf安装包

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

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

3.进行目录运行命令

进入目录运行如下命令:

cd /app/lib/protobuf-2.5.0/

sudo ./configure

 

sudo make

sudo make check

sudo make install

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

check结果如下

运行install命令及结果如下

4.验证是否安装成功

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

protoc

、编译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

2.2编译Hadoop源代码

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

cd /app/compile/release-2.2.0/

mvn package -Pdist,native -DskipTests –Dtar

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

分钟左右。

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

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 *

位(如果系统没有file命令,则使用sudo yum install file进行安装)

、问题解决

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

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

<dependency>

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

      <artifactId>jetty-util</artifactId>

      <scope>test</scope>

</dependency>

Hadoop入门进阶课程2--Hadoop2.X 64位编译的更多相关文章

  1. Hadoop入门进阶课程3--Hadoop2.X64位环境搭建

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  2. (转)Hadoop入门进阶课程

    http://blog.csdn.net/yirenboy/article/details/46800855 1.Hadoop介绍 1.1Hadoop简介 Apache Hadoop软件库是一个框架, ...

  3. Hadoop入门进阶课程13--Chukwa介绍与安装部署

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  4. Hadoop入门进阶课程12--Flume介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  5. Hadoop入门进阶课程11--Sqoop介绍、安装与操作

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  6. Hadoop入门进阶课程10--HBase介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  7. Hadoop入门进阶课程9--Mahout介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  8. Hadoop入门进阶课程8--Hive介绍和安装部署

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  9. Hadoop入门进阶课程7--Pig介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

随机推荐

  1. 我所理解的JavaScript闭包

    目录 一.闭包(Closure) 1.1.什么是闭包? 1.2.为什么要用闭包(作用)? 1.2.1.保护函数内的变量安全. 1.2.2.通过访问外部变量,一个闭包可以暂时保存这些变量的上下文环境,当 ...

  2. aehyok.com的成长之路三——框架结构

    前言 首先奉上个人网站地址传送门:aehyok.com. aehyok.com的成长之路一——开篇 中主要阐述了自己为什么建立自己的网站,以及个人网站的大致方向. aehyok.com的成长之路二—— ...

  3. mac上安装homebrew

    1:关于homebrew下载地址 homebrew下载地址网上版本很多:我用了几个都是显示 404 bad request 如图:均无法现在 有一个网址会给出最新的 安装地址: the URL is: ...

  4. svchost占用内存达1-2G的问题

    win7 64位,前一段时间老是如此,很烦,重装,还是有这个问题. 服务中禁用superfect服务,关闭后继续出现1G以上的内存占用,下载svchost viewer检查,发现: 关闭windows ...

  5. 创建一个Windows的NTP Server

    搭建一个VMware vRealize Suite的时候遇见了不少时间同步的问题, 实验室里网络与外界隔绝, 不能使用公网的NTP服务器, 所以使用文中的方法自己搭建了一个. 蛮好用的. Creati ...

  6. (转)create table #temptable 临时表 和 declare @bianliang table ()表变量

    在开发过程中,经常会遇到使用表变量和本地临时表的情况.下面是对二者的一个介绍: 1. 为什么要使用表变量 表变量是从2000开始引入的,微软认为与本地临时表相比,表变量具有如下优点:  a.与其他变量 ...

  7. Windows8和CentOS6.4(64)双系统硬盘安装(图文)【转】

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://asange.blog.51cto.com/7125040/1193980 最近在 ...

  8. linux部署war包方案

    batch.sh内容: su - -c" 使用管理员权限 service tomcat6 stop; 停止tomca6t服务 mkdir /home/jnfwzFtp/bushubackup ...

  9. Flask-Babel 中文支持(zh-CN和zh-Hans-CN)

    命名的翻译文件夹必须命名为zh_Hans-CN,其他的都是不标准的命名!

  10. Scala 深入浅出实战经典 第49课 Scala中Variance代码实战(协变)

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...