Hadoop入门进阶课程2--Hadoop2.X 64位编译

原创 2015年07月10日 14:27:49

【注】该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237

1 编译Hadoop2.X 64位

1.1 软硬件环境说明

节点使用CentOS系统,防火墙和SElinux禁用,创建了一个shiyanlou用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。
Hadoop搭建环境:
- 虚拟机操作系统:三个节点均为CentOS6 64位,单核,1G内存
- JDK:1.7.0_55 64位
- Hadoop:1.1.2

1.2 环境搭建

1.2.1 JDK安装和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=JAVAHOME/bin:PATH
- export CLASSPATH=.:JAVAHOME/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.验证是否安装成功
运行成功之后,通过如下方式来验证是否安装成功
- protoc

这里写图片描述

2 编译Hadoop

2.1 下载Hadoop源代码 Release2.2.0

在/app目录下新建compile子目录,在该文件夹通过SVN获取Hadoop2.2.0源代码,命令如下:
- cd /app
- mkdir 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源代码的根目录执行如下命令:
mvn package -Pdist,native -DskipTests –Dtar
(注意:这行命令需要手工输入,如果复制执行会报异常!)

这里写图片描述

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

这里写图片描述

这里写图片描述

编译好的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属性:
- file ./libhadoop.so.1.0.0

该文件为ELF 64-bit LSB则表示文件成功编译为64位

这里写图片描述

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

这里写图片描述

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

<dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-util</artifactId>
    <scope>test</scope>
</dependency>

这里写图片描述

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

* 1 搭建环境* 部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用...
  • yirenboy
  • yirenboy
  • 2015年08月03日 15:55
  • 634

Hadoop入门进阶步步高(一)-环境准备

前言Hadoop从存储上来说,是类似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System);从计...
  • fenglibing
  • fenglibing
  • 2014年06月15日 21:53
  • 9166

Hadoop大数据零基础高端实战培训系列课程分享

 第一阶段:Hadoop基础篇(50课时) - 千里之行,始于足下(赠送课程) 课程一、基于Linux操作系统平台下的Java语言开发(20课时) 本套课程主要介绍了Linu...
  • bbspc007
  • bbspc007
  • 2015年04月29日 21:20
  • 1087

Hadoop入门进阶步步高(五)-搭建Hadoop集群

五、搭建Hadoop集群上面的步骤,确认了单机可以执行Hadoop的伪分布执行,真正的分布式执行无非也就是多几台slave机器而已,配置方面的有一点点区别,配置起来就非常简单了。1、准备三台服务器19...
  • fenglibing
  • fenglibing
  • 2014年06月15日 22:16
  • 5976

hadoop64位编译及开发环境搭建(一)

大数据越来越火,作为大数据开发的开源框架hadoop成为大部分大数据开发人员的首选。今天我就来做个hadoop开发平台。 一.hadoop源码下载及编译     由于hadoop部分只提供32位的执行...
  • qyl445
  • qyl445
  • 2014年11月30日 03:07
  • 4157

Hadoop入门进阶步步高(二)-目录介绍

二、Hadoop目录结构这里重点介绍几个目录bin、conf及lib目录。1、$HADOOP_HOME/bin目录文件名称说明hadoop用于执行hadoop脚本命令,被hadoop-daemon.s...
  • fenglibing
  • fenglibing
  • 2014年06月15日 21:56
  • 9180

hadoop64位编译及开发环境搭建(二)

上次已经编译好了64位的hadoop可执行文件,现在正式开始安装hadoop。         一.先准备三台服务器,一台主节点,2台数据节点,分别装上系统,我这里用的系统是centos7.0-min...
  • qyl445
  • qyl445
  • 2014年11月30日 21:08
  • 2997

hadoop-2.8.2编译64位教程 CentOS7 jdk1.8

一.编译前的准备 1.CentOS7系统的机器 2.jdk1.8  安装命令:rpm -ivh jdk-8u151-linux-x64.rpm 验证命令:java -version 3.源码包hado...
  • zxz306418932
  • zxz306418932
  • 2017年11月06日 22:24
  • 342

Hadoop入门进阶步步高(四)-测试Hadoop

四、测试Hadoop一个简单的求每年温度最大值的程序。1、准备两个文本测试数据准备两个名为data1.txt及data2.txt的文件,用于做为计算的输入数据,将其放于/home/fenglibin/...
  • fenglibing
  • fenglibing
  • 2014年06月15日 22:11
  • 6877

Hadoop2.6.4版本64位编译

安装过程中遇到的问题 安装依赖包 1 安装jdk17版本 2 安装配置maven 3 安装Ant 4 安装protobuf 5 安装依赖包 6 下载Hadoop源码 编译Hadoop 1 编译Hado...
  • sl1992
  • sl1992
  • 2017年01月11日 17:29
  • 1380
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop入门进阶课程2--Hadoop2.X 64位编译
举报原因:
原因补充:

(最多只允许输入30个字)