编译hadoop2.x

来源:互联网 发布:淘宝铁观音哪家好 编辑:程序博客网 时间:2024/05/22 17:07

编译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/releaseswget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz#解压tar xzvf protobuf-xxxxcd xzvf protobuf-xxx#编译安装./configuremakemake install
  • 安装其它必要包
yum install -y cmake zlib-devel openssl-devel 
  • 编译hadoop
#下载源代码git clone https://github.com/apache/hadoop/archive/rel/release-2.7.5.tar.gzcd hadoop-xxxmvn package -Pdist,native -DskipTests -Dtar

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

cd hadoop/bin./hadoop checknativeNative 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.0zlib:    true /lib64/libz.so.1snappy:  true /opt/hadoop/lib/native/Linux-amd64-64/libsnappy.so.1lz4:     true revision:99bzip2:   false openssl: true /lib64/libcrypto.so

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

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

原创粉丝点击