内容简介:Hadoop以两种方式发行,一种是binary格式的tar压缩包,一种是source源文件。考虑到暂时并无修改Hadoop源码的需求,简单起见,我都是直接使用编译好的binary包。然后,在运行Hadoop时,却会收到一个警告:“Unable to load native-hadoop library for your platform” 。在stackoverflow站点上,找到了相关问题的一个帖子,export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib
Hadoop以两种方式发行,一种是binary格式的tar压缩包,一种是source源文件。考虑到暂时并无修改Hadoop源码的需求,简单起见,我都是直接使用编译好的binary包。然后,在运行Hadoop时,却会收到一个警告:“Unable to load native-hadoop library for your platform” 。在stackoverflow站点上,找到了相关问题的一个帖子, stackoverflow ,按照其中的一个高票回复,按下面这样修改了一下环境变量,解决了这个问题:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
但同时,最高票的答复说,造成这个问题的原因是官方的binary是32位编译的,如果在64位系统上运行,需要重新编译(I assume you're running Hadoop on 64bit CentOS. The reason you saw that warning is the native Hadoop library $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.)。众所周知,32位系统存在着最大4GB内存的问题,因此,我觉得还是下载Hadoop源码,然后重新编译一下比较稳妥。本文编译的Hadoop版本是2.9.1。
安装编译工具
# yum install gcc gcc-c++ openssl-devel make cmake
安装maven
本文所有下载的文件都位于 ~/downloads 文件夹下,可以事先创建好。
cd ~/downloads; wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz; tar -zvxf apache-maven-3.5.4-bin.tar.gz -C /opt;
修改~/.bashrc:
vim ~/.bashrc; export M3_HOME=/opt/apache-maven-3.5.4 export PATH=$PATH:$M3_HOME/bin
安装protobuf
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz tar -xvzf protobuf-2.5.0.tar.gz -C /opt/ cd /opt/protobuf-2.5.0 ./configure make;make install;
截止2018.8,protobuf的最新版本是3.6.1,但是编译Hadoop2.9.1时,protobuf的版本需为2.5.0。编译protobuf的时间可能会很长,我是用了大概30分钟。
编译Hadoop
cd ~/downloads wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.9.1/hadoop-2.9.1-src.tar.gz; tar -xvzf hadoop-2.9.1-src.tar.gz -C /opt/; cd /opt/hadoop-2.9.1-src; mvn package -Pdist,native -DskipTests -Dtar
这个编译过程更长,可能有1个小时,而且因为网络不稳定可能会中断,中断后可以在中断的位置重新开始。例如,我就在安装hadoop-aws这个位置中断了,之后只要像下面这样重新执行一下就好了:
# mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-aws
编译成功后,按照上面的配置,hadoop的安装包将位于:/opt/hadoop-2.9.1-src/hadoop-dist/target/hadoop-2.9.1.tar.gz
接下来,就可以安装Hadoop了,可以参考: 安装和配置Hadoop(单节点) 、 安装和配置Hadoop集群(3节点) 。
感谢阅读,希望这篇文章能给你带来帮助!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang源码探索(一) 编译和调试源码
- 写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实 原 荐
- JVM源码分析-JVM源码编译与调试
- Runtime源码编译
- 下载编译AOSP源码
- 源码编译LNMP平台架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。