前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用源码编译Hadoop

使用源码编译Hadoop

作者头像
张子阳
发布2018-09-30 09:50:06
7350
发布2018-09-30 09:50:06
举报

使用源码编译Hadoop

2018-8-12 作者: 张子阳 分类: 大数据处理

Hadoop以两种方式发行,一种是binary格式的tar压缩包,一种是source源文件。考虑到暂时并无修改Hadoop源码的需求,简单起见,我都是直接使用编译好的binary包。然后,在运行Hadoop时,却会收到一个警告:“Unable to load native-hadoop library for your platform” 。在stackoverflow站点上,找到了相关问题的一个帖子,stackoverflow,按照其中的一个高票回复,按下面这样修改了一下环境变量,解决了这个问题:

代码语言:txt
复制
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。

安装编译工具

代码语言:txt
复制
# yum install gcc gcc-c++ openssl-devel make cmake

安装maven

本文所有下载的文件都位于 ~/downloads 文件夹下,可以事先创建好。

代码语言:txt
复制
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:

代码语言:txt
复制
vim ~/.bashrc;
export M3_HOME=/opt/apache-maven-3.5.4
export PATH=$PATH:$M3_HOME/bin

安装protobuf

代码语言:txt
复制
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

代码语言:txt
复制
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这个位置中断了,之后只要像下面这样重新执行一下就好了:

代码语言:txt
复制
# 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节点)

感谢阅读,希望这篇文章能给你带来帮助!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-8-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用源码编译Hadoop
    • 安装编译工具
      • 安装maven
        • 安装protobuf
          • 编译Hadoop
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档