zoukankan      html  css  js  c++  java
  • 在Ubuntu X64上编译Hadoop

    在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop。但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告:

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    所以我们最好是自己在Ubuntu中编译Hadoop。先介绍一下我的环境是Ubuntu 16.1 X64 Server版,当前最新的Hadoop是2.7.3。我们可以先下载源代码,在其中有BUILDING.txt,指导我们如何在Ubuntu中编译Hadoop:

    Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:

    * Oracle JDK 1.7 (preferred)
      $ sudo apt-get purge openjdk*
      $ sudo apt-get install software-properties-common
      $ sudo add-apt-repository ppa:webupd8team/java
      $ sudo apt-get update
      $ sudo apt-get install oracle-java7-installer
    * Maven
      $ sudo apt-get -y install maven
    * Native libraries
      $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
    * ProtocolBuffer 2.5.0 (required)
      $ sudo apt-get -y install libprotobuf-dev protobuf-compiler

    Optional packages:

    * Snappy compression
      $ sudo apt-get install snappy libsnappy-dev
    * Bzip2
      $ sudo apt-get install bzip2 libbz2-dev
    * Jansson (C Library for JSON)
      $ sudo apt-get install libjansson-dev
    * Linux FUSE
      $ sudo apt-get install fuse libfuse-dev

    我用的Linux16.1 X64 Server版本,也是大同小异,接下来是编译Hadoop的过程:

    1.更新apt源

    首先需要更新我们的apt源,因为如果是国外源的话,接下来安装会很慢。使用命令

    sudo vi /etc/apt/sources.list

    打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:

    :%s/us./cn./g

    就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。

    sudo apt-get update

    更新一下源。

    2.安装必备软件

    2.1安装SSH

    sudo apt-get install ssh

    安装完毕后我们就可以用putty或者SecureCRT连接到Ubuntu了。

    2.2安装JDK

    sudo apt-get install default-jdk

    安装后可以运行java –version看安装的版本

    2.3安装Maven

    sudo apt-get install maven

    这是编译Hadoop的工具,安装完成后,可以运行mvn -–version看安装的版本

    2.4安装依赖库

    sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

    2.5安装ProtocolBuffer 2.5.0

    注意,我要编译的是Hadoop2.7.3,必须安装的ProtocolBuffer是2.5这个版本,如果不是的话,接下来会编译失败:

    protoc version is 'libprotoc 3.0.0, expected version is '2.5.0'

    如果我们运行文档中的:

    sudo apt-get -y install libprotobuf-dev protobuf-compiler

    protoc –version 会告诉我们安装的是3.0版本,这是不对的。我们需要的是2.5版。怎么办呢?只有去GitHub找到2.5版,然后重新编译安装。过程如下:

    wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
    tar -xzf protobuf-2.5.0.tar.gz
    cd protobuf-2.5.0/
    ./autogen.sh
    ./configure
    make
    make install
    现在我们重新运行protoc –version 会看到版本是2.5了。
    2.6更新Maven镜像
    由于Maven默认连接的是国外的服务器,会很慢,所以我们需要更新Maven源为国内的服务器。推荐还有阿里云的Maven源:http://maven.aliyun.com/
    具体做法是:
    cd ~/.m2 (如果没有这个文件夹,那么就在~目录mkdir .m2创建这个文件夹)
    vi settings.xml
    然后输入以下的内容:
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    </mirrors>
    </settings>

    3.编译Hadoop

    首先我们下载最新的Hadoop源代码,访问官网http://hadoop.apache.org/releases.html,可以看到最新的是2.7.3,所以我们点击2.7.3的source,会给我们一个比较快的下载地址。

    wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3-src.tar.gz

    下载完毕后解压:

    tar -zxvf hadoop-2.7.3-src.tar.gz
    
    cd hadoop-2.7.3-src

    最后,就是用Maven编译Hadoop:

    mvn package -Pdist,native -DskipTests –Dtar

    这是一个比较漫长的过程,可能要等10~20来分钟。如果一切正常,那么运行完毕后,我们会看到成功编译的通知:

    image

    我是在虚拟机中,花了23分钟,我们的Hadoop X64版本就编译出来了。

    编译好的Hadoop是在:

    hadoop-dist/target/ 目录下,hadoop-2.7.3.tar.gz文件便是

    我们可以把这个包下载到本地,或者传输到其他服务器,接下来就是用这个包安装Hadoop,具体安装配置过程参见我这篇博客

     
  • 相关阅读:
    js Grid 列表插件
    Pagination 分页插件
    Textarea 富文本编辑器插件
    Accordion 手风琴 折叠菜单插件(2)
    AutoComplete 自动完成插件
    Draggable 拖放插件
    过渡特效插件
    Select下拉列表选择插件(包含下拉选择图片,下拉grid等)
    Sliding Panels 滑动门插件
    把图片转化为16进制信息的方式
  • 原文地址:https://www.cnblogs.com/studyzy/p/6165105.html
Copyright © 2011-2022 走看看