说明

本篇文章整个操作都是在root账号下进行,所有操作步骤完成后,可以根据实际的需求,更改目录权限。
整个操作的目的有两个:

  • 安装snappy包,安装完成后所在路径是/usr/local/lib/
  • 安装hadoop依赖的snappy包,安装完成后所在路径是 $HADOOP_HOME/lib/native

然后将上面两个拷贝分发到所有节点,其中第2个在安装hadoop时会拷贝,通常第一个分发拷贝操作可能会遗忘。

1. 安装编译环境

1.1 安装C++编译器

yum install -y automake autoconf gcc-c++ libedit libtool openssl-devel ncurses-devel

1.2 安装cmake

注意版本需要大于3
查看cmake的版本,如果是2.8.12.2,则需要卸载掉,单独安装。

cmake --version

卸载cmake

yum remove cmake -y

重新安装cmake3.9版本

wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
tar zxvf cmake-3.9.2.tar.gz
cd cmake-3.9.2
./configure
make & make install

1.3 安装protobuf-2.5.0

版本必须是该版本

tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make & make install

安装完成后,退出重新登录。

1.4 安装maven

yum install wget -y
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar xvf apache-maven-3.5.4-bin.tar.gz

修改环境变量/etc/profile

export MAVEN_HOME=/opt/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

修改setting文件仓库位置:

<localRepository>/opt/local/maven/repo</localRepository>

修改镜像服务器地址:

<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>

2. 安装snappy

2.1 安装snappy

wget https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.3.tar.gz/7358c82f133dc77798e4c2062a749b73/snappy-1.1.3.tar.gz
tar xvf snappy-1.1.3.tar.gz
cd snappy-1.1.3
./configure
make
make install
#卸载命令 make uninstall

注意:安装完成后,在/usr/local/lib/目录下生成对应的snappy文件

/usr/local/lib 目录下所有文件拷贝到 其他节点相同目录下。

2.2 编译hadoop-snappy(未做似乎不影响)

wget下载,或者直接从git地址https://github.com/electrum/hadoop-snappy 手工选择download ZIP包。

wget https://github.com/electrum/hadoop-snappy/archive/refs/heads/master.zip

解压缩,编译

yum install unzip
unzip master.zip
cd hadoop-snappy-master
mvn package

一定要先安装好snappy,然后检查在/usr/local/lib/目录下有对应的snappy文件,否则该步骤无法打包成功。

编译成功后,在target文件夹下面如下:

3. hadoop

hadoop编译的目的是为了获取到编译完成后的lib库,编译完成的lib库保存在路径

/opt/local/hadoop-3.1.3-src/hadoop-dist/target/hadoop-3.1.3/lib/native

然后将lib库拷贝到对应版本已安装的节点上。
拷贝后,需要重启节点。

3.1 编译hadoop

wget http://archive.apache.org/dist/hadoop/core/hadoop-3.1.3/hadoop-3.1.3-src.tar.gz
tar -zxvf hadoop-3.1.3-src.tar.gz
cd hadoop-3.1.3-src

hadoop-3.1.3-src目录里新建文件compile.sh,填写以下内容,并修改权限755。

vim compile.sh
export MAVEN_OPTS="-Xms256m -Xmx512m"
mvn clean package -Pdist,native -DskipTests -Dtar -rf :hadoop-common -Drequire.snappy -X

这种编译是将snappy包直接编译到一起,编译过程大于20分钟左右。

chmod 755 compile.sh
./compile.sh

编译成功如下:

网上还有一段增加其他依赖的编译命令如下,可以自行尝试。

#!/bin/bash
mvn package -Pdist,native,nexus -DskipTests=true -Dmaven.javadoc.skip=true -Dtar -Dcontainer-executor.conf.dir=/etc/hadoop/ -Drequire.snappy -Dbundle.snappy -Dsnappy.lib=/opt/develop/snappy/lib -Dsnappy.prefix=/opt/develop/snappy -Drequire.openssl -Dbundle.openssl -Dopenssl.lib=/opt/develop/openssl/lib -Dopenssl.prefix=/opt/develop/openssl -Drequire.bzip2=true -Dzstd.prefix=/opt/develop/zstd -Dzstd.lib=/opt/develop/zstd/lib -Dbundle.zstd -Drequire.zstd -Disal.prefix=/opt/develop/isal -Drequire.isal=true -Dbundle.isal -Disal.lib=/opt/develop/isal/lib

3.2 修改hadoop配置文件

3.2.1 修改core-site.xml

<!-- 用于压缩/解压的CompressionCodec列表,多种算法使用逗号分隔的类名  -->
<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

3.2.2 修改yarn-site.xml

<!-- 压缩MapReduce作业的输出 -->
<property><name>mapreduce.map.output.compress</name><value>true</value>
</property>
<!-- 指定压缩算法的类名 -->
<property><name>mapred.map.output.compress.codec</name><value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

4. 拷贝文件

4.1 分发snappy文件

如果2.1没做拷贝,就将/usr/local/lib 目录下所有文件拷贝到 其他节点相同目录下

scp -r /usr/local/lib/*  hadoop100:/usr/local/lib/

4.2 分发hadoop lib库

将hadoop目录中lib/native文件夹复制拷贝到 /opt/local/hbase/lib/目录下,需要所有节点都拷贝。

scp -r $HADOOP_HOME/lib/native hadoop100:/opt/local/hbase/lib/

5. 修改hbase配置

修改hbase-env.sh,在末尾添加以下配置:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/:/usr/local/lib/
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/:/usr/local/lib/
export CLASSPATH=$CLASSPATH:$HBASE_LIBRARY_PATH

修改完,在所有节点同步该文件。

6. Hbase测试

create 'test2',{NAME=>'f1',COMPRESSION => 'gz'}
create 'test3',{NAME=>'f1',COMPRESSION => 'SNAPPY'}

Hbase支持snappy压缩格式相关推荐

  1. Hadoop/HBase 配置snappy压缩

    Hadoop/HBase 开启snappy压缩 参考链接 hadoop-snappy Google Code snappy.compression hbase docs cnblogs参考资料 ins ...

  2. Java批量高效压缩支持加解密支持所有压缩格式(Zip/7z/rar)

    前言:有时候需要对很多文件进行压缩,几个还好如果有100个呢对吧,为什么不借助咱们强大的java呢,所以我就写了一个可以批量压缩,支持所有压缩格式的工具类当然也支持加密和解密,下面就是工具类的代码 废 ...

  3. cdh编译安装支持各种压缩格式

    在安装CDH版本的hadoop的时候, 我们下载下来的CDH的hadoop安装包中, 并没有native包,不支持各个任务阶段的压缩功能,但在生产任务中是必须要支持压缩功能的,所以要对CDH进行编译以 ...

  4. hadoop配置支持LZO压缩格式

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 简介 安装lzo lzo并不是linux系统原生支持,所以需要下载安装软件包.这里至少需要安装3个软件包:lzo ...

  5. 编译支持JPEG2000压缩格式的GDAL(ECW库、OpenJPEG)

    该文是在我另一篇博客"gdal.geos的 windows编译 openCL加速"基础上进行进一步扩展的,那篇博客记录的是gdal2.2.0的整个编译过程,由于那篇博客的文末记录了 ...

  6. hadoop2.2支持snappy压缩安装及配置

    由于我们的生产环境没有root用户使用权限,且为了不在所有主机上安装一些依赖插件,因此我启用了使用hadoop native本地库,即在core-site.xml中配置了: <property& ...

  7. 澄清 | snappy压缩到底支持不支持split? 为啥?

    前两天,群里小伙伴问了一个问题: 不是说snappy压缩不支持split嘛,为什么我改小mapred.max.split.size一倍之后,mapper数翻倍? 一直以来大家都知道snappy是不支持 ...

  8. 哎哟我去!betterzip居然支持这么多压缩格式!

    Mac解压软件 BetterZip 是一款功能强大的Mac压缩工具,不仅有着强大的数据密码保护功能,让我们的压缩数据更加安全,还支持着多种压缩格式,不管是主流的还是其他的,都可以试用BetterZip ...

  9. 【hive】hive常见的几种文件存储格式与压缩方式的结合-------Parquet格式+snappy压缩 以及ORC格式+snappy压缩文件的方式

    一.使用Parquet存储数据 数据使用列存储之前是普通的行存储,下面是行存储的的文件大小,这个HDFS上的数据 使用parquet列存储,可以将文件的大小减小化.下面具体讲parquet存储数据的代 ...

  10. HIVE Parquet格式+snappy压缩及ORC格式+snappy压缩文件的方式

    一.使用Parquet存储数据 数据使用列存储之前是普通的行存储,下面是行存储的的文件大小,这个HDFS上的数据 使用parquet列存储,可以将文件的大小减小化.下面具体讲parquet存储数据的代 ...

最新文章

  1. mybatisplus 结果_springboot整合mybatisPlus 乐观锁的实现
  2. 静态路由出接口的配置
  3. php中this的使用技巧,JavaScript中this关键字使用方法详解
  4. htc+one+m7+linux驱动,HTC One M7简易刷Recovery教程
  5. 如何删除 EMC存储认到的鬼盘LUNZ disk,在存储上出现initiators storage group ~management的情况...
  6. 图片列表模板 html代码,图片列表模板
  7. 插入的数据不能时时查询到_漫谈 LevelDB 数据结构(一):跳表(Skip List)
  8. Android Clipboard(复制/剪贴板)
  9. Leetcode 刷题笔记(九) —— 解题方法:双指针
  10. 数据预处理和数据特征工程
  11. yii2 默认路由,默认动作
  12. POJ1015 Jury Compromise【背包问题】
  13. 从NFC卡(校园卡或者门禁卡)分析看ACR122U读写原理 (转载)
  14. python修改wav文件声音大小_Python更改wav文件的音高
  15. DCDC Bootstrap自举电路
  16. sa登录失败,错误代码18456
  17. java课设迷宫游戏_Java编写迷宫小游戏
  18. “我,从油漆工开始的80后,曾经靠副业的收入买车买房”
  19. 常见的电商直播模式有哪些,你都了解过吗?
  20. lsdyna如何设置set中的node_list_如何为3CX配置Gigaset N670 N870 IP PRO

热门文章

  1. UOJ【UR #12】实验室外的攻防战 题解
  2. 【论文下饭】Temporal Graph Network for Deep Learning on Dynamic Graphs
  3. 《缠中说禅108课》28:下一目标:摧毁基金
  4. python求矩阵逆、伪逆、转置、矩阵乘法
  5. 2014年总结和2015年的规划
  6. pinctrl学习笔记---描述/获得引脚
  7. UNI-APP,动态设置view的背景图片
  8. 极值点、驻点、拐点、关系点
  9. CentOS7+VMware 14的安装教程
  10. TCP/IP模型背后的内涵(一)