hadoop(三)-编译hadoop2.x

编译hadoop,hadoop是用java写的,虽然很多功能都可以完全依靠jvm而不依赖操作系统可以实现,但有些功能必须要依赖操作系统系统来实现,比如(bzip2, lz4, snappy, zlib压缩)
这时就需要对hadoop进行编译,生成本操作系统的native文件。

编译环境

  • maven3(配置国内镜像)
  • jdk1.8
  • hadoop2.7.5

编译

  • 安装protobuf,编译hadoop必须
#安装必要编译工具
yum -y install gcc c++ gcc-c++ autoconf automake libtool
#下载protobuf
#https://github.com/google/protobuf/releases
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
#解压
tar xzvf protobuf-xxxx
cd xzvf protobuf-xxx
#编译安装
./configure
make
make install
  • 安装其它必要包
yum install -y cmake zlib-devel openssl-devel 
  • 编译hadoop
#下载源代码
git clone https://github.com/apache/hadoop/archive/rel/release-2.7.5.tar.gz
cd hadoop-xxx
mvn package -Pdist,native -DskipTests -Dtar

编译完成之后
编译生成的文件在hadoop-dist/target/里面
我们输入命令检查下

cd hadoop/bin
./hadoop checknative

Native library checking:
hadoop:  true /home/zhaow/hadoop-rel-release-2.7.5/hadoop-dist/target/hadoop-2.7.5/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /opt/hadoop/lib/native/Linux-amd64-64/libsnappy.so.1
lz4:     true revision:99
bzip2:   false 
openssl: true /lib64/libcrypto.so

下图是编译前后snappy的对比
这里写图片描述
编译成功后可以使用snappy压缩了。

编译成功后就可以把编译好的hadoop拷贝到其它集群机器上使用,在其它集群机器上并不用再重新编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值