文章目录
一、hadoop checknative
首先检查下 hadoop 是否已经集成 snappy:
hadoop checknative -a
Native library checking:
hadoop: true /home/bigdata/hadoop/lib/native/libhadoop.so.1.0.0
zlib: true /lib/x86_64-linux-gnu/libz.so.1
snappy: false
zstd : false
lz4: true revision:10301
bzip2: true /lib/x86_64-linux-gnu/libbz2.so.1
openssl: false Cannot load libcrypto.so (libcrypto.so: cannot open shared object file: No such file or directory)!
二、所需组件
- Snappy 1.1.3: https://pan.baidu.com/s/1aT-voN7TM6kUeZIVIa5p_w&shfl=sharepset 提取码:ly76
- protobuf-2.5.0: https://pan.baidu.com/s/1pJlZubT
三、安装依赖包
sudo apt-get install gcc g++ libtool cmake maven zlib1g.dev autoconf automake gzip unzip
# 后续编译出错:CMAKE Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE),添加如下依赖
sudo apt-get install --reinstall pkg-config cmake-data
# 编译继续出错:CMake not able to find OpenSSL library,添加如下依赖
sudo apt-get install libssl-dev
四、安装 Snappy
解压下载的 sanppy 安装包
tar -xvf snappy-1.1.3.tar.gz
cd snappy-1.1.3
./configure
make
sudo make install
默认目录是 /usr/local/lib,查看snappy是否安装成功
ll /usr/local/lib | grep snappy
出现下面5个文件,安装成功
libsnappy.a
libsnappy.la*
libsnappy.so -> libsnappy.so.1.3.0*
libsnappy.so.1 -> libsnappy.so.1.3.0*
libsnappy.so.1.3.0*
五、安装 protobuf
tar -xvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/home/bigdata/protobuf
make && make install
编译成功后加入环境变量并生效:
export PATH= /home/bigdata/protobuf/bin:$PATH
最后,protoc --version命令,如显示libprotoc 2.5.0 则安装成功。
六、hadoop-src-2.9.2 编译源码
Hadoop2.x 以后版本在 hadoop-common 模块已经内置 snappy 编解码,所以编译安装 hadoop-snappy 是多余的(Hadoop1.x 需要),只要安装 snappy 本地库和重新编译 hadoop native 库。
由于下载hadoop-2.9.2.tar.gz中不包含源码文件,所以需要使用 hadoop-src-2.9.2包来编译源码;
官网下载后解压:
tar -xvf hadoop-2.9.2-src.t