编译hadoop-2.7.2源码的native以支持Snappy压缩

一、下载需要的源码包(注意:我用的是非root用户)

第一步:切换到hadoop-2.7.2目录(自己的安装目录,我的是 /opt/module/hadoop-2.7.2/)

[wwt@note01 ~]$ cd /opt/module/hadoop-2.7.2/

第二步:创建native_snappy目录

[wwt@note01 hadoop-2.7.2]$ mkdir native_snappy

第三步:进入到native_snappy目录

[wwt@note01 hadoop-2.7.2]$ cd native_snappy/

第四步:下载snappy-1.1.1.tar.gz压缩包

[wwt@note01 native_snappy]$ wget http://pkgs.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/snappy-1.1.1.tar.gz

如果提示:-bash: wget: command not found,说明没有安装wget,所以先安装wget,

[wwt@note01 native_snappy]$ sudo yum install -y wget
[wwt@note01 native_snappy]$ wget http://pkgs.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/snappy-1.1.1.tar.gz

第五步:下载protobuf-2.5.0.tar.gz压缩包,官网已没有了,自己找相关下载链接。也可从我下边提供的百度云连接中下载。
第六步:下载hadoop-2.7.2-src.tar.gz压缩包

[wwt@note01 native_snappy]$ wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz
[wwt@note01 native_snappy]$ ll
total 21952
-rw-rw-r--. 1 wwt  wwt  18290860 Jan 26  2016 hadoop-2.7.2-src.tar.gz
-rw-r--r--. 1 root root  2401901 Jul 23  2019 protobuf-2.5.0.tar.gz
-rw-rw-r--. 1 wwt  wwt   1777992 Feb 24  2014 snappy-1.1.1.tar.gz

相关安装包的百度云链接
百度云链接
提取码:n9s9

二、准备编译环境

maven(maven安装
zlib-devel
svn
autoconf
automake
libtool
cmake
ncurses-devel
openssl-devel
gcc-c++

[wwt@note01 native_snappy]$ sudo yum -y install svn autoconf automake libtool cmake ncurses-devel openssl-devel gcc*
三、编译安装snappy (用root用户执行以下命令)
[root@note01 native_snappy]# tar -zxf snappy-1.1.1.tar.gz
[root@note01 native_snappy]# cd snappy-1.1.1
[root@note01 snappy-1.1.1]# ./configure
[root@note01 snappy-1.1.1]# make
[root@note01 snappy-1.1.1]# make install

查看snappy库文件

[root@note01 snappy-1.1.1]# ls -lh /usr/local/lib | grep snappy
-rw-r--r--. 1 root root 229K Jul  2 04:28 libsnappy.a
-rwxr-xr-x. 1 root root  953 Jul  2 04:28 libsnappy.la
lrwxrwxrwx. 1 root root   18 Jul  2 04:28 libsnappy.so -> libsnappy.so.1.2.0
lrwxrwxrwx. 1 root root   18 Jul  2 04:28 libsnappy.so.1 -> libsnappy.so.1.2.0
-rwxr-xr-x. 1 root root 145K Jul  2 04:28 libsnappy.so.1.2.0
四、编译安装protobuf
[root@note01 snappy-1.1.1]# cd ..
[root@note01 native_snappy]# tar -zxf protobuf-2.5.0.tar.gz 
[root@note01 native_snappy]# cd protobuf-2.5.0
[root@note01 protobuf-2.5.0]# ./configure 
[root@note01 protobuf-2.5.0]# make
[root@note01 protobuf-2.5.0]# make install 
五、查看protobuf版本以测试是否安装成功
[root@note01 protobuf-2.5.0]# protoc --version
libprotoc 2.5.0
六、编译hadoop native
[root@note01 protobuf-2.5.0]# cd ..
[root@note01 native_snappy]# tar -zxf hadoop-2.7.2-src.tar.gz 
[root@note01 native_snappy]# cd hadoop-2.7.2-src

注意:将hadoop-2.7的pom.xml文件中的\ <requireMavenVersion>和 <requireJavaVersion>的版本改成自己安装的maven和jdk的版本:

              <requireMavenVersion>
              <version>3.0.5</version>
              </requireMavenVersion>
              <requireJavaVersion>
              <version>1.8.0</version>
			  </requireJavaVersion>
[root@note01 hadoop-2.7.2-src]# mvn install
[root@note01 hadoop-2.7.2-src]# mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy
[INFO] Apache Hadoop Distribution ........................ SUCCESS [1:08.479s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 49:36.495s
[INFO] Finished at: Thu Jul 02 08:45:26 CST 2020
[INFO] Final Memory: 174M/667M
[INFO] -------------------------------------------

执行成功后,hadoop-dist/target/hadoop-2.7.2.tar.gz即为新生成的二进制安装包

注:新生成的安装包与官网安装包的区别就是lib/native中多了一些与snappy相关的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风酌晚月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值