Hadoop安装snappy(编译源码)

了解Hive的数据压缩

hive 的数据压缩 == MR的数据压缩

1.在哪个阶段进行数据压缩

MR阶段过程:

  input  -> map   -> shuffle  ->  reduce  ->  output

shuffle 阶段几个重要内容:

  分区   ->  排序   -> combiner(map端的reduce)  -> 压缩   -> 分组

compression压缩的阶段:

  map 输出  和   reduce 输出

2.为什么要数据压缩

  • 节省磁盘空间
  • 减小网络IO、磁盘IO

3.有哪些数据压缩方案

  zlib 
  gzip
  bzip2
  snappy(google 企业应用)
  lz4
  lzo
  • 节省存储空间:bzip2 > gzip > lzo
  • 解压速度:lzo > gzip > bzip2

4.查看Hadoop中的压缩数据工具

bin/hadoop checknative -a

在这里插入图片描述
下面要开始安装数据压缩snappy

Hadoop安装snappy(编译源码)

准备工具

  • 电脑系统:macOS 10.15.4
  • 虚拟机软件:Parallels Desktop14
  • Hadoop各节点节点操作系统:CentOS 7
  • JDK版本:jdk1.7.0_67
  • Hadoop CDH版本:hadoop-2.6.0-cdh5.9.3
  • 官方Hadoop2.6.0源码:hadoop-2.6.0-src
  • protobuf版本:protobuf-2.5.0
  • snappy版本:snappy-1.1.3
  • maven版本:apache-maven-3.5.4-bin

snappy下载链接:
https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.3.tar.gz/7358c82f133dc77798e4c2062a749b73/

protobuf下载链接:
https://github.com/google/protobuf/releases/tag/v2.5.0

官方Hadoop2.6.0源码下载链接:
https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/

maven3.5.4下载链接:
https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/


第一步:配置阿里云yum源

1、打开centos的yum文件夹

cd /etc/yum.repos.d/

2、用wget下载repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

如果wget命令不生效,说明还没有安装wget工具

yum -y install wget

回车进行安装,当前目录是/etc/yum.repos.d/,刚刚下载的Centos-7.repo也在这个目录上。

3、备份系统原来的repo文件

mv CentOS-Base.repo CentOS-Base.repo.bak

4、替换系统原理的repo文件

mv Centos-7.repo CentOS-Base.repo

5、执行yum源更新命令

yum clean all
yum makecache
yum update

第二步:配置/etc/resolv.conf

vim /etc/resolv.conf

添加内容:

nameserver 8.8.8.8
nameserver 8.8.4.4

第三步:下载Hadoop源码并解压

chmod u+x hadoop-2.6.0-src.tar.gz
tar -zxvf hadoop-2.6.0-src.tar.gz -C /opt/modules

第四步:配置JDK

在Hadoop安装snappy的时候需要jdk7,这是我在测试的时候成功过,jdk1.8在编译的时候会报错
在这里插入图片描述
下面就需要重新安装jdk7,并修改配置文件,记得在编译过之后要把jdk换回来8d

export JAVA_HOME=/opt/modules/jdk1.7.0_67
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

第五步:安装配置maven

chmod u+x apache-maven-3.5.4-bin.tar.gz
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /opt/modules

配置环境变量

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

测试

mvn -version

配置conf/setting.xml

<mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/repository/public</url>
</mirror>

第六步:protobuf-2.5.0安装

在安装protobuf-2.5.0之前需要安装gcc、PCRE、zlib、openssl等依赖库。

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
tar zxvf pcre-8.40.tar.gz

下面先解压protobuf-2.5.0

tar -vxf protobuf-2.5.0.tar -C /opt/modules

然后进入到protobuf-2.5.0目录下,进入到root模式下,依次执行

   ./configure

   ./make
   
   ./make install

查看版本

[caizhengjie@bigdata-pro-m01 protobuf-2.5.0]$ protoc --version
libprotoc 2.5.0

即可表示安装成功

第七步:snappy安装

先解压snappy-1.1.3.tar

tar -xvf snappy-1.1.3.tar -C /opt/modules

然后进入到snappy-1.1.3目录下,进入到root模式下,依次执行

   ./configure

   ./make
   
   ./make install

默认的安装路径

/usr/local/lib

在这里插入图片描述

第八步:安装CMake

sudo yum install cmake 

第九步:hadoop编译

解压之后,进入hadoop-2.6.0-src,进入到root模式
然后使用如下编译命令:

mvn clean package  -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

大概要等三四十分钟,在网络稳定的情况下即可安装成功
在这里插入图片描述
我的这里安装的路径在

/opt/modules/hadoop-2.6.0-src/hadoop-dist/target/hadoop-2.6.0/lib/native

在这里插入图片描述

下面需要将hadoop-2.6.0/lib/native里面的安装文件拷贝到HadoopCDH版本的lib/native

cp -r ../native/* /opt/modules/hadoop/lib/native/

最后查看/opt/modules/hadoop/lib/native里面的文件

第十步:hadoop配置修改

(1)修改core-site.xml

3台机在core-site.xml文件中添加:

<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec
</value>
</property>

(2)修改mapred-site.xml

在mapred-site.xml文件中添加:

<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>

<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

这里只配置了map端的数据压缩
如何查看:
首先启动服务

sbin/mr-jobhistory-daemon.sh start historyserver

查看历史服务器web访问端口:19888
在这里插入图片描述

测试

bin/hadoop checknative -a

在这里插入图片描述
在测试一下mapreduce的wordcount程序,看一下压缩数据的效果

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.9.3.jar wordcount /user/caizhengjie/datas/wordcount.txt /user/caizhengjie/mr/output1

在这里插入图片描述

疑惑详解

/usr/local/lib下有snappy,那么为什么不直接把snappy拷贝到Hadoop的lib/native目录下,而是还需要编译Hadoop源码
在这里插入图片描述
经过mapreduce的wordcount测试,出现了报错
在这里插入图片描述
在这里插入图片描述


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<一蓑烟雨任平生>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值