hadoop编译java,Hadoop源码编译(2.4.1)
背景
Hadoop 2.4.1预编译版本自带的libhadoop.so是在32位机器上编译上,导致在64位OS上运行时,总出现如下告警:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
查看libhadoop.so的位数,显示是32位的:
file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
为彻底解决此问题,自行编译Hadoop 2.4.1源码。
编译过程
安装相关软件
yum install -y cmake autoconf automake libtool gcc zlib1g-dev pkg-config libssl-dev openssl gcc g++ make maven zlib zlib1g-dev libcurl4-o
安装protobuf-2.5.0
1
2
3
4
5
6wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
tar -zxvf protobuf-2.5.0.tar.gz
cdprotobuf-2.5.0
./configure
make
make install
编译Hadoop源码
1
2
3
4
5wget https://archive.apache.org/dist/hadoop/core/hadoop-2.4.1/hadoop-2.4.1-src.tar.gz
tar -zxvf hadoop-2.4.1-src.tar.gz
cdhadoop-2.4.1-src
exportPlatform=x64
mvn package -Pdist,native -DskipTests -Dtar
查看编译后的本地库,已经是64位:
1
2
3cdhadoop-dist/target/hadoop-2.4.1/lib/native
file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
拷贝到Hadoop环境中
1
2
3
4
5cdhadoop-dist/target/hadoop-2.4.1/lib/native
cp * /opt/hadoop/lib/native/
scp * data01:/opt/hadoop/lib/native/
scp * data02:/opt/hadoop/lib/native/
scp * data03:/opt/hadoop/lib/native/
修改环境变量
在etc/hadoop/hadoop-env.sh中增加:
1
2exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/:/usr/local/lib/
exportJAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/opt/hadoop/lib/native/
参考文档
hadoop编译java,Hadoop源码编译(2.4.1)相关推荐
- Ubuntu下源码编译VirtualBox六 —— 源码编译(5)
接前一篇文章<Ubuntu下源码编译VirtualBox五 -- 源码编译(4)>,链接如下: Ubuntu下源码编译VirtualBox五 -- 源码编译(4)_蓝天居士的博客-CSDN ...
- Ubuntu下源码编译VirtualBox五 —— 源码编译(4)
接前一篇文章<Ubuntu下源码编译VirtualBox四 -- 源码编译(3)>,链接如下: Ubuntu下源码编译VirtualBox四 -- 源码编译(3)_蓝天居士的博客-CSDN ...
- java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法
利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...
- php 7.0 编译安装mysql_源码编译安装php7.0.5
源码编译安装php7.0.5 源码包下载地址 安装epel扩展yum源 [root@xuegod63 ~]# yum clean all [root@xuegod63 ~]# yum list 注:R ...
- 项目编译失败_Swift源码编译让底层更清晰
WWDC2020 大会将通过 Apple Developer App 和 Apple Developer网站免费向所有开发者开放! 从去年火遍全网的 SwiftUI 以及 Combine 到今年全新的 ...
- tensorflow源码编译教程_源码编译安装tensorflow 1.8
参考官方指南 基本要求 官网测试过的源代码配置如下: image 也就是说,按照这个版本安装的话不应该再产生版本的问题了. 我的配置 ubuntu 16 python 2.7 nccl 2.3 gcc ...
- .net core linux 编译,.NET Core 源码编译的问题解析
引言: .NET Core 源码编译 https://github.com/dotnet git clone https://github.com/dotnet/runtime.git 一:Windo ...
- 源码编译mysql5.5_源码编译安装MySQL5.5
前面的blog都有介绍mysql数据库存,不过那都是通用二进制的格式安装的,本文主要介绍在Centos6.5系统上源码编译安装MySQL数据库以及如何在Centos5系列版本的系统上如何编译安装cma ...
- linux boost 1.53编译,boost-1.53源码编译
1.下载源码.首先得明白,boost大多数库都只有头文件,链接时不需Lib文件:以下库需要单独编译成库: Boost.Filesystem Boost.GraphParallel Boost.IOSt ...
- 简诉android源代码编译过程,Android源码编译过程及原理(二)
在未来等风也等你 本节主要记录的内容anroid 编译系统的结构 编译中枢中main.mk的基本解析 除非特别说明本节中的目录都是基于android的源码目录 1. android 编译系统的结构 a ...
最新文章
- shell 工具_Kali Linux渗透工具【八】:系统命令注入漏洞工具 – Commix使用
- Task和async/await详解
- 数据库开发——MySQL——约束条件与表关系
- shell echo 彩色字体
- MSComm控件过程中内存溢出和GetOneDimSize出错的问题
- 我的程序员之路(英语的学习)
- 【Scratch】进阶篇-《Scratch游戏开发》恐龙跳一跳
- android win10 双系统,安卓+Win10双系统?这个可以有!
- Ubuntu之安装拼音输入法
- 用Python做了个图片识别系统(附源码)
- 谈马云创业人生中的十大苦难
- 常见浏览器宽高及可视区域的宽高获取问题
- 一亿用户背后架构的秘密
- Java定时任务的解决方案(Quartz等)
- 企查查爬虫python实现(二)报错与细节
- 安卓讲课笔记3.4 网格布局
- 计算机考研经验贴-初试
- 项目管理之如何控制项目进度和质量
- 计算机界的传奇人物:高德纳
- springboot 微信小程序支付回调