zoukankan      html  css  js  c++  java
  • hadoop-2.6.0源码编译

    运行hadoop环境时,常常会出现这种提示

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
    意思是无法加载本地native库。

    这里就需要我们自己本地进行编译hadoop源码,用生成的文件来替换原有的native库。

     下面就是我整理的hadoop编译流程

    首先介绍一下我的环境

    centos6.5

    jdk-7u79-linux-x64.tar.gz

    apache-maven-3.3.9-bin.tar.gz

    protobuf-2.5.0.tar.gz

    hadoop-2.6.0-cdh5.12.0-src.tar.gz

    接下来就进行步骤介绍

    提君博客原创

    第一步,安装jdk

    解压

    1 tar -zxvf jdk-7u79-linux-x64.tar.gz

    环境变量

    1 vi /etc/profile
    #JAVA_HOME
    export JAVA_HOME=/home/hadoop/jdk1.7.0_79
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 

    测试是否安装成功

    source /etc/profile
    java -version

    第二步,安装maven

    >>提君博客原创  http://www.cnblogs.com/tijun/  <<

    解压

    tar -zxvf apache-maven-3.3.9-bin.tar.gz

    更改名称

    mv apache-maven-3.3.9 maven339

    环境变量

    vi /etc/profile
    #MAVEN_HOME
    export MAVEN_HOME=/home/hadoop/maven339
    export PATH=$MAVEN_HOME/bin:$PATH

    测试是否安装成功

    source /etc/profile
    mvn -version

    第三步,根据多次踩坑,准备编译时需要的安装

    1 yum install gcc  
    2 yum intall gcc-c++  
    3 yum install make

    或者是直接运行

    yum install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

    第四步安装protoc

    解压编译,逐步执行

    1 tar -zxvf protobuf-2.5.0.tar.gz
    2 cd protobuf-2.5.0
    3 ./configure --prefix=/home/hadoop/protobuf250
    4 make
    5 make install

    环境变量

    vi /etc/profile
    #PROTOC_HOME
    export PROTOC_HOME=/home/hadoop/protobuf250
    export PATH=$PROTOC_HOME/bin:$PATH

    测试

    source /etc/profile
    protoc --version

    第四步,编译hadoop

    1 tar -zxvf hadoop-2.6.0-cdh5.12.0-src.tar.gz
    2 mv hadoop-2.6.0-cdh5.12.0  hadoop260-src
    3 cd hadoop-2.6.0-src
    4 mvn clean package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar

    经过一段时间的等待,出现 build success ,说明编译成功。

    提君博客原创

    >>提君博客原创  http://www.cnblogs.com/tijun/  <<

    编译源码生成的部分都在hadoop260-src/hadoop-dist/target/目录下

    将编译后的native文件夹下的东西替换到原来的native目录

    1 cp -r hadoop260-src/hadoop-dist/target/hadoop-2.6.0-cdh5.12.0/lib/native/ /home/hadoop/hadoop260/lib/

    同样,其他机器的文件同样替换

    1 scp -r hadoop260-src/hadoop-dist/target/hadoop-2.6.0-cdh5.12.0/lib/native/ hadoop@ltt2.bg.cn:/home/hadoop/hadoop260/lib/
    2 ..
    3 ..
    4 ..

    提君博客原创

    注意:不同的linux环境,编译过程中会有不同,有可能会出一些编译过程的错误,我将再接下来的一篇文章中整理出来,供大家参考。

    >>提君博客原创  http://www.cnblogs.com/tijun/  <<




  • 相关阅读:
    MySQL 索引相关
    MySQL 事务操作
    MySQL 分支循环
    详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
    快速集成华为AGC云存储服务-NodeJS
    随心译——无广告的专属实时翻译神器
    如何实现情景式精准触达用户,提高用户活跃与转化?
    快速集成华为AGC-AppLinking服务-iOS平台
    华为联运游戏或应用审核驳回:点击登录进入游戏,未显示欢迎栏
    视频App如何使用无线传输服务获得更好的播放体验
  • 原文地址:https://www.cnblogs.com/tijun/p/7542751.html
Copyright © 2011-2022 走看看