返回顶部
首页 > 资讯 > 数据库 >Hadoop HBase配置安装Snappy的详细教程
  • 353
分享到

Hadoop HBase配置安装Snappy的详细教程

2024-04-02 19:04:59 353人浏览 安东尼
摘要

这篇文章主要介绍“hadoop HBase配置安装Snappy的详细教程”,在日常操作中,相信很多人在Hadoop HBase配置安装Snappy的详细教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用

这篇文章主要介绍“hadoop HBase配置安装Snappy的详细教程”,在日常操作中,相信很多人在Hadoop HBase配置安装Snappy的详细教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hadoop HBase配置安装Snappy的详细教程”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本篇文章主要包括:

1. Snappy 压缩算法介绍及集中压缩算法比较

2. Snappy 安装过程及验证

3. Hadoop Snappy 源码编译过程及问题解决方案

4. Hadoop上Hadoop Snappy 安装配置过程及验证

5. HBase 配置Snappy及验证

6.如何在集群中所有节点部署

废话不多说,现在开始:

1. Snappy 压缩算法介绍及几种压缩算法比较

这一部分可以参考我的上一篇博文:Hadoop压缩-SNAPPY算法,或者直接参看Google文档:Http://code.google.com/p/snappy/ 及 http://code.google.com/p/hadoop-snappy/。不再详细介绍。

2. Snappy 安装过程及验证

① 前置条件

GCc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3

前五个如果不能确定的话,可以直接使用yum install XXX来确认一下,如果已安装会提示,没有安装的话,会自动安装上。

② 下载Snappy 1.0.5

下载地址:http://code.google.com/p/snappy/downloads/list。

③ 编译并安装动态链接库到本地

?

1

2

3

./configure

make

make install

默认是安装到了/usr/local/lib。这时在此目录下查看会生成:

?

1

2

3

4

5

6

7

8

9

10

[root@slave1 lib]# pwd

/usr/local/lib

[root@slave1 lib]# ll

total 536

-rw-r--r--. 1 root root 369308 Jan 14 11:02 libsnappy.a

-rwxr-xr-x. 1 root root    957 Jan 14 11:02 libsnappy.la

lrwxrwxrwx. 1 root root     18 Jan 14 11:02 libsnappy.so -> libsnappy.so.1.1.3

lrwxrwxrwx. 1 root root     18 Jan 14 11:02 libsnappy.so.1 -> libsnappy.so.1.1.3

-rwxr-xr-x. 1 root root 171796 Jan 14 11:02 libsnappy.so.1.1.3

[root@slave1 lib]#

如果没有错误且文件及链接一致,snappy的安装已经成功。

3. Hadoop Snappy 源码编译过程及问题解决方案

① 下载Hadoop-Snappy源码

下载地址:http://code.google.com/p/hadoop-snappy/

② 编译hadoop snappy源码

mvn package [-Dsnappy.prefix=SNAPPY_INSTALLATioN_DIR]

注:如果第二步snappy安装路径是默认的话,即/usr/local/lib,则此处 [-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR] 可以不写,或者 -Dsnappy.prefix=/usr/local/lib

这个过程如果你的Centos各个软件的版本正好和Hadoop Snappy要求的一致的话,真的恭喜你,可以一部成功,但是有些还是会有问题。我遇到的三个比计较棘手的问题:

错误一:/root/modules/hadoop-snappy/maven/build-compilenative.xml:62: Execute failed: java.io.IOException: Cannot run program “autoreconf” (in directory “/root/modules/hadoop-snappy/target/native-src”): java.io.IOException: error=2, No such file or directory

解决方案:说明缺少文件,但是这个文件是在target下的,是编译过程中自动生成的,原本就不该存在,这是问什么呢?其实根本问题不是缺文件,而是Hadoop Snappy是需要一定的前置条件的:Requirements: gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3。

我这里边缺少了autoconf,automake,libtool的缘故。在ubuntu中,你可以直接依次apt-get install autoconf,automake,libtool即可,如果是在CentOS中,只需将apt-get 换成 yum。

错误二:

?

1

2

3

4

[exec] make: *** [src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.lo] Error 1

 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (compile) on project hadoop-snappy: An Ant BuildException has occured: The following error occurred while executing this line:

[ERROR] /home/ngc/Char/snap/hadoop-snappy/hadoop-snappy-read-only/maven/build-compilenative.xml:75: exec returned: 2

解决方案:这个是最恶心的。Hadoop Snappy的前置条件需要安装gcc,但是它的官方文档仅仅列出了需要gcc,而没有列出需要什么版本的gcc。在Google中英文搜索了半天,刨来刨去,终于发现,有句话说Hadoop Snappy是需要gcc4.4的。而我的是gcc4.6.3。

?

1

2

3

4

5

[root@master modules]# gcc --version

gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

那么我们就要回退,如何回退:

?

1

2

3

4

5

6

7

1. apt-get install gcc-3.4

 

2. rm /usr/bin/gcc

 

3. ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

 

之后,再gcc --version,你就会发现,gcc已经变成4.4.7了。

错误三:

?

1

2

3

4

5

[exec] /bin/bash ./libtool --tag=CC   --mode=link gcc -g -Wall -fPIC -O2 -m64 -g -O2 -version-info 0:1:0 -L/usr/local//lib -o libhadoopsnappy.la -rpath /usr/local/lib src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.lo src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.lo  -lJVM -ldl

     [exec] /usr/bin/ld: cannot find -ljvm

     [exec] collect2: ld returned 1 exit status

     [exec] make: *** [libhadoopsnappy.la] 错误 1

     [exec] libtool: link: gcc -shared  -fPIC -DPIC  src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o   -L/usr/local//lib -ljvm -ldl  -O2 -m64 -O2   -Wl,-soname -Wl,libhadoopsnappy.so.0 -o .libs/libhadoopsnappy.so.0.0.1

解决方案:如果你去搜,你会发现网上有很多 解决/usr/bin/ld: cannot find -lxxx 这样的博客,但是这里,我告诉你,他们的都不适用。因为这儿既不是缺什么,也不是版本不对,是因为没有把安装jvm的libjvm.so symbolic link到usr/local/lib。如果你的系统时amd64,可到/root/bin/jdk1.6.0_37/jre/lib/amd64/server/察看libjvm.so link到的地方,这里修改如下:

ln -s /root/bin/jdk1.6.0_37/jre/lib/amd64/server/libjvm.so /usr/local/lib/ 问题即可解决。

③ hadoop snappy源码编译成功以后,在target包下,会有如下文件:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[root@master snappy-hadoop]# cd target/

[root@master target]# ll

total 928

drwxr-xr-x. 2 root root   4096 Jan 13 19:42 antrun

drwxr-xr-x. 2 root root   4096 Jan 13 19:44 arcHive-tmp

drwxr-xr-x. 3 root root   4096 Jan 13 19:42 classes

-rw-r--r--. 1 root root    168 Jan 13 19:44 copynativelibs.sh

drwxr-xr-x. 4 root root   4096 Jan 13 19:42 generated-sources

-rw-r--r--. 1 root root  11526 Jan 13 19:44 hadoop-snappy-0.0.1-SNAPSHOT.jar

-rw-r--r--. 1 root root 337920 Jan 13 19:44 hadoop-snappy-0.0.1-SNAPSHOT-linux-amd64-64.tar

drwxr-xr-x. 3 root root   4096 Jan 13 19:44 hadoop-snappy-0.0.1-SNAPSHOT-tar

-rw-r--r--. 1 root root 180661 Jan 13 19:44 hadoop-snappy-0.0.1-SNAPSHOT.tar.gz

drwxr-xr-x. 2 root root   4096 Jan 13 19:44 maven-archiver

drwxr-xr-x. 3 root root   4096 Jan 13 19:42 native-build

drwxr-xr-x. 7 root root   4096 Jan 13 19:42 native-src

drwxr-xr-x. 2 root root   4096 Jan 13 19:44 surefire-reports

drwxr-xr-x. 3 root root   4096 Jan 13 19:42 test-classes

-rw-r--r--. 1 root root 365937 Jan 13 19:44 test.txt.snappy

[root@master target]#

4. Hadoop上Hadoop Snappy 安装配置过程及验证

这个过程也比较繁杂,配置点比较多要仔细:

① 解压第三步target下hadoop-snappy-0.0.1-SNAPSHOT.tar.gz,解压后,复制lib文件

?

1

cp -r /root/modules/snappy-hadoop/target/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/Linux-amd64-64/

② 将第三步target下的hadoop-snappy-0.0.1-SNAPSHOT.jar复制到$HADOOP_HOME/lib 下。

③ 配置hadoop-env.sh,添加:

?

1

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

④ 配置mapred-site.xml,这个文件中,所有跟压缩有关的配置选项有:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<property>

  <name>mapred.output.compress</name>

  <value>false</value>

  <description>Should the job outputs be compressed?

  </description>

</property>

 

<property>

  <name>mapred.output.compression.type</name>

  <value>RECORD</value>

  <description>If the job outputs are to compressed as SequenceFiles, how should

               they be compressed? Should be one of NONE, RECORD or BLOCK.

  </description>

</property>

 

<property>

  <name>mapred.output.compression.codec</name>

  <value>org.apache.hadoop.io.compress.DefaultCodec</value>

  <description>If the job outputs are compressed, how should they be compressed?

  </description>

</property>

 

<property>

  <name>mapred.compress.map.output</name>

  <value>false</value>

  <description>Should the outputs of the maps be compressed before being

               sent across the network. Uses SequenceFile compression.

  </description>

</property>

 

<property>

  <name>mapred.map.output.compression.codec</name>

  <value>org.apache.hadoop.io.compress.DefaultCodec</value>

  <description>If the map outputs are compressed, how should they be

               compressed?

  </description>

</property>

根据自己的需要,配置进去即可。我们为了验证方便,仅配置map部分:

?

1

2

3

4

5

6

7

8

<property>

        <name>mapred.compress.map.output</name>

        <value>true</value>

        </property>

        <property>

        <name>mapred.map.output.compression.codec</name>

        <value>org.apache.hadoop.io.compress.SnappyCodec</value>

</property>

⑤ 重新启动hadoop。为了验证是否成功,往hdfs上传一个文本文件,敲入一些词组,运行Wordcount程序。如果map部分100%完成,即说明我们hadoop snappy安装成功。

因为hadoop没有像HBase一样提供util.CompressionTest类(或者是我没有找到),所以只能按照这种方法来测试。接下来,将详细列出HBase使用Snappy的配置过程。

5. HBase 配置Snappy及验证

在Hadoop上配置Snappy成功以后,相对来说,在HBase上配置要简单一些了。

① 配置HBase lib/native/Linux-amd64-64/ 中的lib文件。HBase中的lib文件,即需要第三步中/root/modules/snappy-hadoop/target/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/ 下的所有lib文件,也需要Hadoop中,$HADOOP_HOME/lib/native/Linux-amd64-64/下的hadoop的lib文件(我看到的大部分介绍snappy的文章,均为提到这一点)。简单起见,我们只需要将$HADOOP_HOME/lib/native/Linux-amd64-64/下lib文件,全部复制到相应HBase目录下:

?

1

cp -r $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64/

② 配置HBase环境变量hbase-env.sh

?

1

2

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

③ 重启HBase。

④ 验证安装是否成功

首先,使用 CompressionTest 来查看snappy是否 enabled 并且能成功 loaded:

hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://192.168.205.5:9000/output/part-r-00000 snappy

其中,/output/part-r-00000 为我们在验证hadoop snappy的时候,wordcount的输出。

执行命令后结果为:

?

1

2

3

4

5

6

7

8

9

10

11

12

[root@master ~]# hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://192.168.205.5:9000/output/part-r-00000 snappy

13/01/13 21:59:24 INFO util.ChecksumType: org.apache.hadoop.util.PureJavaCrc32 not available.

13/01/13 21:59:24 INFO util.ChecksumType: Checksum can use java.util.zip.CRC32

13/01/13 21:59:24 INFO util.ChecksumType: org.apache.hadoop.util.PureJavaCrc32C not available.

13/01/13 21:59:24 DEBUG util.FSUtils: Creating file:hdfs://192.168.205.5:9000/output/part-r-00000with permission:rwxrwxrwx

13/01/13 21:59:24 WARN snappy.LoadSnappy: Snappy native library is available

13/01/13 21:59:24 INFO util.NativeCodeLoader: Loaded the native-hadoop library

13/01/13 21:59:24 INFO snappy.LoadSnappy: Snappy native library loaded

13/01/13 21:59:24 INFO compress.CodecPool: Got brand-new compressor

13/01/13 21:59:24 DEBUG hfile.HFileWriterV2: Initialized with CacheConfig:disabled

13/01/13 21:59:24 INFO compress.CodecPool: Got brand-new decompressor

SUCCESS

说明Snappy 安装已经enable并且能够成功loaded。

⑤ 接下来创建并操作Snappy压缩格式的表

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

[root@master ~]# hbase shell

HBase Shell; enter 'help<RETURN>' for list of supported commands.

Type "exit<RETURN>" to leave the HBase Shell

Version 0.94.2, r1395367, Sun Oct  7 19:11:01 UTC 2012

//创建表

hbase(main):001:0> create 'tsnappy', { NAME => 'f', COMPRESSION => 'snappy'}

0 row(s) in 10.6590 seconds

//describe表

hbase(main):002:0> describe 'tsnappy'

DESCRIPTION                                                                                                        ENABLED                                                      

 {NAME => 'tsnappy', FAMILIES => [{NAME => 'f', DATA_BLOCK_ENcoding => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_ true                                                         

 SCOPE => '0', VERSIONS => '3', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CE                                                              

 LLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true'}]}                                                                  

1 row(s) in 0.2140 seconds

//put数据

hbase(main):003:0> put 'tsnappy', 'row1', 'f:col1', 'value'

0 row(s) in 0.5190 seconds

//scan数据

hbase(main):004:0> scan 'tsnappy'

ROW                                           COLUMN+CELL                                                                                                                       

 row1                                         column=f:col1, timestamp=1358143780950, value=value                                                                               

1 row(s) in 0.0860 seconds

 

hbase(main):005:0>

以上所有过程均成功执行,说明Snappy 在Hadoop及HBase上配置成功~

6.如何在集群中所有节点部署

这一步就非常简单了,尤其是如果你配置过Hadoop集群。仅需要将我们上边所有配置过的文件,分发到所有其他节点的相应目录即可,包括生成的/usr/lib/local下的snappy链接库。

到此,关于“Hadoop HBase配置安装Snappy的详细教程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Hadoop HBase配置安装Snappy的详细教程

本文链接: https://lsjlt.com/news/60145.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hadoop HBase配置安装Snappy的详细教程
    这篇文章主要介绍“Hadoop HBase配置安装Snappy的详细教程”,在日常操作中,相信很多人在Hadoop HBase配置安装Snappy的详细教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • VirtualBox安装CentOS及JDK、Hadoop的安装与配置详细教程
    目录1.先决条件1.1 支持平台1.2 jdk及hadoop安装包1.3 Xshell 7与Xftp 7工具安装2.具体安装步骤 2.1 网络配置2.2 Xshell连接2...
    99+
    2024-04-02
  • hadoop集群服务器详细安装配置教程
    这篇文章主要讲解了“hadoop集群服务器详细安装配置教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop集群服务器详细安装配置教程”吧! 一、安装包准备1、虚拟机分布式...
    99+
    2023-06-02
  • Hadoop+Hbase 安装配置实录
    生产环境:3台机器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63) 注意:hostname设置为master/slave1/s...
    99+
    2024-04-02
  • Mysql的安装配置教程(详细)
    首先简单概述分为几个步骤: 一、下载Mysql 二、安装Mysql 三、验证Mysql安装是否成功 四、 配置环境变量 五、验证配置环境变量是否成功 一、下载Mysql 要在Windows或Mac上安装MySQL,首先从MySQL官方网站...
    99+
    2023-08-30
    mysql 数据库 java
  • Vmware + Ubuntu18.04 安装 Hbase 2.3.5的详细教程
    前言 上篇安装了 Hadoop ,这篇来安装 Hbase ,当然,如果只是简单做实验的话,其实还是比较简单的。前后大概只需要 十多分钟左右 就可以解决这个实验。😄 ...
    99+
    2024-04-02
  • Linux下Hbase安装配置教程
    目录Linux下Hbase安装配置1. Hbase安装包下载2. 安装3. 配置java_HOME环境变量4. (可选)配置hbase-site.xml5. 启动HbasePhoenix安装和配置1. Hbase安装包下...
    99+
    2022-06-04
    Linux Hbase安装配置 Linux Hbase安装
  • hadoop安装文件配置教程
    这篇文章主要讲解了“hadoop安装文件配置教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop安装文件配置教程”吧! 目前只是单机环境,namenode和datanode都在一台...
    99+
    2023-06-03
  • MySQL8.0.26的安装与配置——详细教程
    网上的教程有很多,基本上大同小异。 但是安装软件有时就可能因为一个细节安装失败。 我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的。 一、Mysql下载安装包 https://dev.mysql.com/downloads...
    99+
    2015-11-21
    MySQL8.0.26的安装与配置——详细教程
  • MySQL的安装与配置详细教程
    目录免安装版的Mysql一、下载安装包:二、Mysql的配置2.1可能会出现的问题2.2命令参考:免安装版的Mysql   MySQL是一种关系数据库管理系统,所使用的 SQL 语言...
    99+
    2024-04-02
  • MySQL的安装与配置—详细教程
    MySQL的安装与配置——详细教程 一、MySQL简介 MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其...
    99+
    2023-10-27
    mysql 数据库 服务器
  • Tomcat安装与配置(详细教程)
    Tomcat是一个开源的Java Servlet容器,用于将Java代码转换为可以在Web服务器上运行的网页。以下是Tomcat的安...
    99+
    2023-09-13
    Tomcat
  • Tomcat安装与配置(详细教程)
    一、安装Tomcat服务器 下载地址(Tomcat官网)http://tomcat.apache.org/ 将下载的zip文件解压到指定的目录(例如:D盘,目录不要有中文)    D:\apache-tomcat-9.0.43 二、配置T...
    99+
    2023-08-31
    tomcat 服务器 java eclipse
  • MySQL 8.0详细安装配置教程
    一. 前言 MySQL是目前最为流行的开源数据库产品,是完全网络化跨平台的关系型数据库系统。它起初是由瑞典MySQLAB公司开发,后来被Oracle公司收购,目前属于Oracle公司。因为开源,所以任何人都能从官网免费下载MySQL软件,并...
    99+
    2023-09-01
    分布式 缓存 spring
  • Maven安装和配置详细教程
    一、安装Maven 1.官网下载 Binary是可执行版本,已经编译好可以直接使用。 Source是源代码版本,需要自己编译成可执行软件才可使用。 tar.gz和z...
    99+
    2023-08-31
    maven java Powered by 金山文档
  • Linux 系统 Hadoop+Hbase安装配置实录
    生产环境: 3台机器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63) 注意:hostname设置为master/slave1/...
    99+
    2024-04-02
  • Linux的安装和配置tomcat详细教程
    这篇文章主要讲解了“Linux的安装和配置tomcat详细教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的安装和配置tomcat详细教程”吧!下载zokeeper上传到 /us...
    99+
    2023-06-05
  • 超详细的Pycharm+Anconda安装配置教程
    文章目录 一、基本认识二、Anconda的安装三、pycharm的安装四、为Pycharm配置解释器五、美化1.右击美化2.主题 一、基本认识  Anconda本质是一个...
    99+
    2023-08-31
    pycharm python anaconda
  • MySQL的安装与配置——2023详细教程
    MySQL的安装与配置——详细教程 免安装版的MySQL1.下载安装包2.Mysql的配置2.1 安装mysql的服务2.2 开启mysql的服务2.3 修改密码2.4 设置系统的全局变量2.5 命令参考 免安装版的MySQ...
    99+
    2023-08-21
    mysql 数据库 java
  • MySQL5.7免安装版配置详细教程
      MySQL5.7免安装版配置详细教程 一、 软件下载 Mysql是一个比较流行且很好用的一款数据库软件,如下记录了我学习总结的mysql免安装版的配置经验,要安装的朋友可以当做参考哦 mysql5.7 64位下载地址: h...
    99+
    2015-09-28
    MySQL5.7免安装版配置详细教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作