Hadoop配置Snappy压缩

  |   0 评论   |   3,134 浏览

Snappy简介


Snappy是谷歌推出的一种压缩方法,Hadoop默认支持该压缩方式

安装Snappy主要分为两步:

  1. 安装snappy本地库

  2. 安装hadoop-snappy,使snappy和hadoop连接起来,此步骤编译阶段不需要,可在编译完成后,将类库手动添加至部署包里

安装snappy本地库

下载Snappy

Snappy

安装

[root@nn1 hadoop-snappy]# wget https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz 
[root@nn1 hadoop-snappy]# tar zxvf snappy-1.1.3.tar.gz -C /usr/local/bin
[root@nn1 hadoop-snappy]# cd /usr/local/bin/snappy-1.1.3
[root@nn1 hadoop-snappy]# ./configure
[root@nn1 hadoop-snappy]# make && make install

注意此处不要使用--prefix=改变安装的目录,否则仍然会报以下的错误

默认会安装到/usr/local/lib/目录

否则会报以下错误

main:
     [exec] -- Configuring incomplete, errors occurred!
     [exec] See also "/usr/local/src/hadoop-2.6.0-cdh5.11.1/hadoop-common-project/hadoop-common/target/native/CMakeFiles/CMakeOutput.log".
     [exec] JAVA_HOME=, JAVA_JVM_LIBRARY=/usr/local/jdk/jre/lib/amd64/server/libjvm.so
     [exec] JAVA_INCLUDE_PATH=/usr/local/jdk/include, JAVA_INCLUDE_PATH2=/usr/local/jdk/include/linux
     [exec] Located all JNI components successfully.
     [exec] CMake Error at CMakeLists.txt:162 (MESSAGE):
     [exec]   Required snappy library could not be found.
     [exec]   SNAPPY_LIBRARY=/usr/lib64/libsnappy.so.1, SNAPPY_INCLUDE_DIR=,
     [exec]   CUSTOM_SNAPPY_INCLUDE_DIR=, CUSTOM_SNAPPY_PREFIX=, CUSTOM_SNAPPY_INCLUDE=
     [exec] 
     [exec]

添加Snappy本地库至Hadoop

[root@nn1 hadoop-2.6.0-cdh5.11.1]# cd /usr/local/src/hadoop-2.6.0-cdh5.11.1/hadoop-dist/target/hadoop-2.6.0-cdh5.11.1/lib/native/
[root@nn1 native]# cp -d /usr/local/lib/* .
[root@nn1 native]# ll
total 15740
-rw-r--r--. 1 root root 1211220 Jun 24 06:34 libhadoop.a
-rw-r--r--. 1 root root 1487316 Jun 24 06:34 libhadooppipes.a
lrwxrwxrwx. 1 root root      18 Jun 24 06:34 libhadoop.so -> libhadoop.so.1.0.0
-rwxr-xr-x. 1 root root  716628 Jun 24 06:34 libhadoop.so.1.0.0
-rw-r--r--. 1 root root  582128 Jun 24 06:34 libhadooputils.a
-rw-r--r--. 1 root root  369326 Jun 24 06:34 libhdfs.a
lrwxrwxrwx. 1 root root      16 Jun 24 06:34 libhdfs.so -> libhdfs.so.0.0.0
-rwxr-xr-x. 1 root root  235716 Jun 24 06:34 libhdfs.so.0.0.0
-rw-r--r--. 1 root root 7706948 Jun 24 06:34 libnativetask.a
lrwxrwxrwx. 1 root root      22 Jun 24 06:34 libnativetask.so -> libnativetask.so.1.0.0
-rwxr-xr-x. 1 root root 3082885 Jun 24 06:34 libnativetask.so.1.0.0
-rw-r--r--. 1 root root  472958 Jun 24 07:17 libsnappy.a
-rwxr-xr-x. 1 root root     955 Jun 24 07:17 libsnappy.la
lrwxrwxrwx. 1 root root      18 Jun 24 07:17 libsnappy.so -> libsnappy.so.1.3.0
lrwxrwxrwx. 1 root root      18 Jun 24 07:17 libsnappy.so.1 -> libsnappy.so.1.3.0
-rwxr-xr-x. 1 root root  228177 Jun 24 07:17 libsnappy.so.1.3.0

安装hadoop-snappy

下载

hadoop-snappy下载地址

安装依赖项

[root@nn1 hadoop-snappy]# yum install -y libtool autoconf gcc-c++

安装

git clone https://github.com/electrum/hadoop-snappy.git 
cd hadoop-snappy/
mvn package

验证

[root@nn1 hadoop-snappy]# ll /usr/local/bin/hadoop-snappy/target/
total 836
drwxr-xr-x. 2 root root   4096 Jun 24 03:44 antrun
drwxr-xr-x. 2 root root   4096 Jun 24 03:51 archive-tmp
drwxr-xr-x. 3 root root   4096 Jun 24 03:44 classes
-rw-r--r--. 1 root root    183 Jun 24 03:51 copynativelibs.sh
drwxr-xr-x. 4 root root   4096 Jun 24 03:51 generated-sources
-rw-r--r--. 1 root root  11768 Jun 24 03:51 hadoop-snappy-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 root root 296960 Jun 24 03:51 hadoop-snappy-0.0.1-SNAPSHOT-Linux-amd64-64.tar
drwxr-xr-x. 3 root root   4096 Jun 24 03:51 hadoop-snappy-0.0.1-SNAPSHOT-tar
-rw-r--r--. 1 root root 141951 Jun 24 03:51 hadoop-snappy-0.0.1-SNAPSHOT.tar.gz
-rw-r--r--. 1 root root 101076 Jun 24 03:51 hadoop-snappy-Linux-amd64-64.tar.gz
drwxr-xr-x. 2 root root   4096 Jun 24 03:51 maven-archiver
drwxr-xr-x. 3 root root   4096 Jun 24 03:51 native-build
drwxr-xr-x. 8 root root   4096 Jun 24 03:51 native-src
drwxr-xr-x. 2 root root   4096 Jun 24 03:51 surefire-reports
drwxr-xr-x. 3 root root   4096 Jun 24 03:51 test-classes
-rw-r--r--. 1 root root 249957 Jun 24 03:51 test.txt.snappy

添加hadoop-snappy的jar包至hadoop

[root@nn1 native]# cp /usr/local/bin/hadoop-snappy/target/hadoop-snappy-0.0.1-SNAPSHOT.jar /usr/local/src/hadoop-2.6.0-cdh5.11.1/hadoop-dist/target/hadoop-2.6.0-cdh5.11.1/lib/


读后有收获可以支付宝请作者喝咖啡