Hadoop源码编译并配置Snappy压缩

Hadoop源码编译并配置Snappy压缩


如果大家直接在官方网站下载Hadoop 安装包,然后安装启动Hadoop集群,会报本地库找不到的警告, 但是不影响集群的运行,警告如下所示:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

上面这个警告就是因为缺少Hadoop本地库,我们可以下载Hadoop对应版本的源码进行编译,生成我们需要的本地库,然后替换集群上面的本地库就可以了。

Hadoop 源码编译并安装Snappy压缩

特别提醒

1、参考哪里来进行源码编译:Hadoop源码文件夹下的BUILDING.txt文件

2、要注意的问题

(1)网络要保持畅通

(2)几个依赖软件要提前安装

(3)要注意版本:jdk1.7(因为1.8和hadoop2.2和2.6版本不匹配)

(4)Setting 文件的替换(用阿里的镜像站,开源中国的好像现在还是不能用)

(5)Snappy安装使用默认的安装路径

点击这里下载settings文件

我们通过以下几个步骤即可完成Hadoop源码的编译以及Snappy安装。

● 首先检查并安装gcc-c++

在root用户下在线下载:

yum -y install gcc-c++

● 安装maven

下载并解压apache-maven-3.3.3-bin.tar.gz

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

配置环境变量

vi /etc/profile
MAVEN_HOME=/usr/java/apache-maven-3.3.3
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME

文件生效

source /etc/profile

查看是否安装成功

mvn –v

● 安装ProtocolBuffer

下载并解压protobuf-2.5.0.tar.gz

tar -zxvf protobuf-2.5.0.tar.gz
mv protobuf-2.5.0 protobuf
cd protobuf
./configure --prefix=/usr/local/protobuf
make
make check
make install

配置环境变量

vi /etc/profile
PROTOBUF_HOME=/usr/local/protobuf
PATH=$PROTOBUF_HOME/bin:$PATH
export  PROTOBUF_HOME

使文件生效

source /etc/profile

查看是否安装成功

protoc --version

● 安装cmake

 yum -y install cmake

● zlib安装

yum -y install zlib

● openssl devel

yum -y install openssl-devel

● 安装snappy

下载并解压snappy-1.1.3.tar.gz

tar -zxvf snappy-1.1.3.tar.gz
mv snappy-1.1.3 snappy
cd snappy
./configure
make
make install

● Hadoop源码编译

下载并解压hadoop-2.6.0-src.tar.gz,然后进入hadoop-2.6.0-src目录编码Hadoop源码和Snappy压缩。 当然,大家选择其它版本的Hadoop也是可以的。

///usr/local/lib是Snappy默认安装目录
1、执行mvn package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib
然后一直等待,直到hadoop源码编译成功,出现下图表示成功。

2、Hadoop源码编译成功之后,在hadoop-2.2.0-src/hadoop-dist/target目录找到编译后的hadoop 安装包,即hadoop-2.2.0.tar.gz如下图,然后输入命令tar -zxvf hadoop-2.2.0.tar.gz解压安装包得到hadoop-2.2.0,如下图

3、输入命令cd ./hadoop-2.2.0/lib/native,切换到native目录下,会发现多了一些和snappy有关的文件。

4、输入命令cp ./* /usr/java/hadoop/lib/native(注意:这里的路径要和自己本地的路径对应)把该native目录下的文件copy到原hadoop安装目录下的native目录里,简单的说就是替换原来的native。然后切换到原hadoop安装目录下的native目录下,查看是否替换成功(这里大家也可以提前看一下原native和现native里边文件的区别,做个对照)

5、最后输入命令hadoop checknative -a检查本地库是否安装成功。出现如下结果表示安装成功。

注意:如果用mvn命令编译源码时出现-bash: mvn: command not found这种错误,可以重新打开/etc/profile ,然后重新使配置文件生效source /etc/profile,然后再执行mvn命令

到这里,Hadoop 源码编译完毕,下面我们来配置Snappy压缩。

Hadoop 配置Snappy压缩

Hadoop 配置Snappy压缩比较简单,主要分为以下几步:

● 配置hadoop-env.sh

修改hadoop-env.sh配置文件,增加以下配置

export HADOOP_HOME=/usr/java/hadoop 安装目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native

● 配置core-site.xml

修改core-site.xml配置文件,增加以下配置

<property>
	<name>io.compression.codecs</name>
	<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

● 配置mapred-site.xml

如果MR中间结果需要使用snappy压缩,修改mapred-site.xml

<property>
	<name>mapreduce.map.output.compress</name>
	<value>true</value>
</property>        
<property>
	<name>mapreduce.map.output.compress.codec</name>
	<value>org.apache.hadoop.io.compress.SnappyCodec</value>
 </property>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值