使用的是Ubuntu18.04版本,编译hadoop2.7.6支持snappy。请按下面所说的版本进行,其它版本不一定能够成功。
下载Apache Hadoop 官网下载hadoop2.7.6版本,目前最新版本是hadoop3.0.3。
解压
#读取 BUILDING.txt文件 上图中用红色框选中的文件,是官方的编译步走: Build instructions for Hadoop Requirements: * Unix System * JDK 1.7+ * Maven 3.0 or later * Findbugs 1.3.9 (if running findbugs) * ProtocolBuffer 2.5.0 * CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac * Zlib devel (if compiling native code) * openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance ) * Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs ) * Internet connection for first build (to fetch all Maven and Hadoop dependencies) Installing required packages for clean install of Ubuntu 14.04 LTS Desktop: * Oracle JDK 1.7 (preferred) $ sudo apt-get purge openjdk* $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java7-installer * Maven $ sudo apt-get -y install maven * Native libraries $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev * ProtocolBuffer 2.5.0 (required) $ sudo apt-get -y install libprotobuf-dev protobuf-compiler Optional packages: * Snappy compression $ sudo apt-get install snappy libsnappy-dev * Bzip2 $ sudo apt-get install bzip2 libbz2-dev * Jansson (C Library for JSON) $ sudo apt-get install libjansson-dev * Linux FUSE $ sudo apt-get install fuse libfuse-dev
安装依赖 jdk、参考:https://ywnz.com/linuxjc/1746.html,maven就不说了,不会的话你也别学hadoop了。也可以参考:https://ywnz.com/linuxjc/1836.html
本地依赖 sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev snappy libsnappy-dev bzip2 libbz2-dev libjansson-dev fuse libfuse-dev 注意 libssl-dev安装换成 libssl1.0-dev版本。 我之前就是默认安装,在编译OpenSSL功能的时候一直卡主编译不通过。具体错误大致形式如下:
安装protobuf 1.下载 1].googletest下载,protobuf编译需要依赖它,下载地址,最好选择1.7.0版本,1.7.0版本后目录结构有变化。 2].protobuf下载 官方文档中说可以通过下面命令安装,但是我发现libprotobuf-dev没有,只好手动安装 $ sudo apt-get -y install libprotobuf-dev protobuf-compiler protobuf下载地址,最好选择2.5.0版本与官方一致, 解压后,把前面下载的googletest复制到protobuf的跟目录,并且重命名为gtest
2.编译 1].运行autogen.sh 生成configure 2]运行configure 3]make 4]sudo make install 验证protobuf是否安装成功 benny@benny-ubuntu:~/software/protobuf-2.5.0$ protoc --version libprotoc 2.5.0 可看到安装成功了。
安装snappy 1.下载地址 2.编译安转和protobuf一样。configure、make、sudo make install 安装完成可以验证
编译hadoop 到现在,准备工作算是做完了。maven命令编译。 3.进入hadoop的根目录执行下面的maven命令 mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib -Drequire.snappy -Dbundle.snappy -Drequire.openssl -Dbundle.openssl 4.编译完成后./hadoop-dist/target/ 目录下就是最终生成的文件了。 benny@benny-ubuntu:~/software/hadoop-2.7.6-src$ ll ./hadoop-dist/target/
支持snappy的本地动态链接库位于./hadoop-dist/target/hadoop-2.7.6/lib/native/ benny@benny-ubuntu:~/software/hadoop-2.7.6-src$ ll ./hadoop-dist/target/hadoop-2.7.6/lib/native/*
相关主题 |