运行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

解压

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

环境变量

 vi /etc/profile
#JAVA_HOME
export JAVA_HOME=/home/hadoop/jdk1..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. maven339

环境变量

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

测试是否安装成功

source /etc/profile
mvn -version

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

 yum install gcc
yum intall gcc-c++
yum install make

或者是直接运行

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

第四步安装protoc

解压编译,逐步执行

 tar -zxvf protobuf-2.5..tar.gz
cd protobuf-2.5.
./configure --prefix=/home/hadoop/protobuf250
make
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

 tar -zxvf hadoop-2.6.-cdh5.12.0-src.tar.gz
mv hadoop-2.6.-cdh5.12.0 hadoop260-src
cd hadoop-2.6.-src
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目录

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

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

 scp -r hadoop260-src/hadoop-dist/target/hadoop-2.6.-cdh5.12.0/lib/native/ hadoop@ltt2.bg.cn:/home/hadoop/hadoop260/lib/
..
..
..

提君博客原创

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

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


hadoop-2.6.0源码编译的更多相关文章

  1. hadoop-1.2.0源码编译

    以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...

  2. hadoop-2.6.0源码编译问题汇总

    在上一篇文章中,介绍了hadoop-2.6.0源码编译的一般流程,因个人计算机环境的不同, 编译过程中难免会出现一些错误,下面是我编译过程中遇到的错误. 列举出来并附上我解决此错误的方法,希望对大家有 ...

  3. Spark1.0.0 源码编译和部署包生成

    问题导读:1.如何对Spark1.0.0源码编译?2.如何生成Spark1.0的部署包?3.如何获取包资源? Spark1.0.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对 ...

  4. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  5. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目

    编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...

  6. hadoop-2.0.0-mr1-cdh4.2.0源码编译总结

    准备编译hadoop-2.0.0-mr1-cdh4.2.0的同学们要谨慎了.首先看一下这篇文章: Hadoop作业提交多种方案 http://www.blogjava.net/dragonHadoop ...

  7. 基于cdh5.10.x hadoop版本的apache源码编译安装spark

    参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ...

  8. Spark2.0.0源码编译

    Hive默认使用MapReduce作为执行引擎,即Hive on mr,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark.由于MapRedu ...

  9. Ubantu16.04进行Android 8.0源码编译

    参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...

  10. jmeter4.0 源码编译 二次开发

    准备: 1.jmeter4.0源码 - apache-jmeter-4.0_src.zip 2.IDE Eclipse - Oxygen.3 Release (4.7.3) 3.JDK - 1.8.0 ...

随机推荐

  1. 【秒懂】号称最为简明实用的Django上手教程(下)

    号称最为简明实用的Django上手教程(下) 作者:白宁超 2017年8月25日08:51:58 摘要:上文号称[最为简明实用的Django上手教程]介绍了django基本概念.配置和相关操作.相信通 ...

  2. Intel VT-X

    VT-x是intel运用Virtualization虚拟化技术中的一个指令集,是CPU的硬件虚拟化技术,VT可以同时提升虚拟化效率和虚拟机的安全性,在x86平台上的VT技术,一般称之为VT-x,而在I ...

  3. pwnable.kr brainfuck之write up

    I made a simple brain-fuck language emulation program written in C. The [ ] commands are not impleme ...

  4. mysq建立索引的优缺点

    建立索引的优点及必要性: 第一.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性: 第二.可以大大加快 数据的检索速度,这也是创建索引的最主要的原因: 第三.可以加速表和表之间的连接,特别是在 ...

  5. Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...

  6. Ext.grid.EditorGridPanel点击单元格添加菜单栏

    1.定义菜单栏需要的全局变量 var khbm; var type; 2.新建一个菜单栏 var smenu = new Ext.menu.Menu({ id:"sMenu", i ...

  7. jvm系列 (四) ---强、软、弱、虚引用

    java引用 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 我的博客目录 为什么将引用分为不同的强度 因为我们需要实现这样一种情 ...

  8. Day-6: 函数式编程

    函数式编程就是封装成一个个函数,一次调用来完成复杂任务. 函数式编程的一个特点是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 高阶函数 高阶函数就是将函数的变量名作为参数传入,内部再对 ...

  9. Google的SPDY协议成为HTTP 2.0的基础

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt384 据TNW援引 IFTF HTTP 工作组主席 Mark Notting ...

  10. windows系统,优化C盘空间的方法

    C盘在使用过程中,内容会越来越多,剩余空间越来越小.如何清理出更多空间呢?以windows7为例 转载请保留 http://www.cnblogs.com/lion-zheng/ cleanmgr w ...