`
xiao_2008
  • 浏览: 21272 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

坑爹的Apache hbase 64位机安装Snappy终于成功了

阅读更多

坑爹的网上copy来copy去,都没有一个执行成功的。还是自己记录下来算了。

Apache hadoop2.2.0 hbase 0.96 ,CentOS release 6.5 (Final)64位

 

1.安装基本tool

yum  install gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3,svn

 

 yum Error: Cannot retrieve repository metadata (repomd.xml) for repository: xxxxx

 

sodu vim /etc/yum.repos.d/xxxxx.repo

将项[flexbox]中的enabled=1改为enabled=0

 

解决yum源的问题。

 

2.安装Snappy

  下载snappy

   wget http://snappy.googlecode.com/files/snappy-1.1.1.tar.gz

   然后解压后,执行三步骤:

    ./configure

    make

    sudo make install

    默认安装路径:/usr/local/lib下面

     

  检查安装是否成功

         ls /usr/local/lib/libsn*

 

3.安装hadoop-snappy

    3.1下载hadoop-snappy源码

      svn checkout http://hadoop-snappy.googlecode.com/svn/trunk/ hadoop-snappy

   3.2.安装hadoop-snappy

      cd hadoop-snappy

      mvn package

 

4.hadooo中部署snappy

解压hadoop-snappy-0.0.1-SNAPSHOT.tar.gz文件,会生成hadoop-snappy-0.0.1-SNAPSHOT目录,拷贝这个目录下相关文件到$HADOOP_HOME/lib/native/Linux-amd64-64

cp -r /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,增加内容如下:

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

修改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, 

com.hadoop.compression.lzo.LzoCodec, 

com.hadoop.compression.lzo.LzopCodec, 

org.apache.hadoop.io.compress.SnappyCodec 

</value>

</property>

 

5.往HBase中使用压缩方式

当hadoop的snappy配置成功后,配置hbase就很简单了,两个步骤:

第一步骤复制相关jar包

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

这里需要注意下,有些版本在安装过程中,没有这个Linux-amd64-64这个目录,需要手工创建下。

第二步骤配置hbase-env.sh环境变量

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/

 

6、重启Hadoop、HBase 检查安装是否成功

cd $HBASE_HOME/bin

./hbase org.apache.hadoop.hbase.util.CompressionTest /tmp/testfile snappy

结果:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

 

坑爹的Apache官网提供的是32位编译的,在64位服务器上会有问题。官方竟然没有提供64位版本,要使用得自己编译。

 

7.编译hadoop2.2.0

 

7.1 yum install cmake zlib1g-dev pkg-config libssl-dev

 

7.2 安装protobuf-2.5.0

 

很多博客的protobuf的安装都是shit.不知道他们实践过没有,老是copy来copy去。

下载protobuf-2.5.0.tar.gz,解压。

 

sudo vim /etc/profile

#protobuf 

export PROTOC_HOME=/opt/protobuf-2.5.0

 

export PATH=$PATH:$PROTOC_HOME/src

 

source /etc/profile

$protoc --version

libprotoc.2.5.0

ok就这样。根本不需要什么configure --prefix,make,make install这么麻烦,也不成功。

 

7.3 下载hadoop2.2.0源码

 

Patch sources:

cd hadoop-2.2.0-src

wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch

patch -p0 < HADOOP-10110.patch

 

maven国外服务器可能连不上,maven配置一下国内镜像,在maven目录下,conf/settings.xml,在<mirrors></mirros>里添加,原本的不要动

<mirror>  

     <id>nexus-osc</id>  

      <mirrorOf>*</mirrorOf>  

  <name>Nexusosc</name>  

  <url>http://maven.oschina.net/content/groups/public/</url>  

 </mirror>  

 同样,在<profiles></profiles>内新添加

<profile>  

       <id>jdk-1.7</id>  

       <activation>  

         <jdk>1.4</jdk>  

       </activation>  

       <repositories>  

         <repository>  

           <id>nexus</id>  

           <name>local private nexus</name>  

           <url>http://maven.oschina.net/content/groups/public/</url>  

           <releases>  

             <enabled>true</enabled>  

           </releases>  

           <snapshots>  

             <enabled>false</enabled>  

           </snapshots>  

         </repository>  

       </repositories>  

       <pluginRepositories>  

         <pluginRepository>  

           <id>nexus</id>  

          <name>local private nexus</name>  

           <url>http://maven.oschina.net/content/groups/public/</url>  

           <releases>  

             <enabled>true</enabled>  

           </releases>  

           <snapshots>  

             <enabled>false</enabled>  

           </snapshots>  

         </pluginRepository>  

       </pluginRepositories>  

     </profile>  

 

7.4 编译mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-common

 

编译完成了后,cd hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0

 

file 一下native下面的so文件

 

将 native/*再cp 到$hadoop_home/bin的各个data node的native/* 和native/Linux-amd64-64下。

 

重新运行测试,结果

 

Exception in thread "main" java.lang.RuntimeException:native snappy library not available: this version of libhadoop was built without snappy support.
 
7.5 mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-common -Drequire.snappy -X
重新编译,再scp一把 native/*下面的一切
 
再运行测试OK.
hbase(main):003:0> describe 'mytable'
DESCRIPTION                                                                                                                          ENABLED                                                                  
 'mytable', {NAME => 'colfam', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPR true                                                                     
 ESSION => 'LZO', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false                                                                          
 ', BLOCKCACHE => 'true'}                                                                                                                                                                                     
1 row(s) in 0.0600 seconds
 
hbase(main):004:0> create 'mytable2', {NAME=>'colfam', COMPRESSION=>'snappy'}
0 row(s) in 0.4430 seconds
 
=> Hbase::Table - mytable2
hbase(main):005:0> describe 'mytable2'
DESCRIPTION                                                                                                                          ENABLED                                                                  
 'mytable2', {NAME => 'colfam', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMP true                                                                     
 RESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'f                                                                          
 alse', BLOCKCACHE => 'true'}                                                                                                                                                                                 
1 row(s) in 0.0550 seconds

 

 

 

 

 

 

分享到:
评论
3 楼 xiao_2008 2015-11-05  
zx2fzx2fzx2f 写道
请问,是所有节点都执行一遍snappy安装过程吗?

hbase的region server节点
2 楼 xiao_2008 2015-11-05  
hbase的region server节点
1 楼 zx2fzx2fzx2f 2015-05-27  
请问,是所有节点都执行一遍snappy安装过程吗?

相关推荐

    apache hbase reference guide pdf

    接着,指南会详细地描述HBase的运行模式,包括单机模式(Standalone)和分布式模式(Distributed),并提供检查和确认HBase安装是否成功的步骤。 随后,指南会介绍如何进行HBase的配置,包括默认配置和示例配置。这...

    apache_hbase_reference_guide.pdf

    Apache HBase™是Hadoop数据库,这是一个分布式,可伸缩的大数据存储。当您需要对大数据进行随机,实时的读/写访问时,请使用Apache HBase™。该项目的目标是在商品硬件群集上托管超大型表-数十亿行X数百万列。...

    Apache HBase 2.1.5 API.chm

    Apache HBase 2.1.5 API chm格式文档 hbase-apache离线官方文档

    Apache HBase ™ Reference Guide

    #### 四、Apache HBase Shell **13. 使用 Ruby 脚本** - **13. Scripting with Ruby**:介绍了如何使用Ruby脚本来控制HBase shell,实现自动化操作。 - **14. 非交互模式运行 Shell**:描述了如何在非交互模式下...

    Apache HBase at DIDI

    根据提供的文件内容,以下知识点是关于Apache HBase在滴滴出行(DiDi)的使用情况的总结: 1. 关于滴滴出行 滴滴出行是全球领先的移动出行平台,每天有2000万次出行服务,包括快车、专车、拼车、巴士、出租车等...

    Apache HBase™ 参考指南 2

    Apache HBase™ 参考指南 2 官方文档中文版

    apache_hbase_reference_guide(官网).pdf

    HBase是一个开源的非关系型分布式数据库(NoSQL),基于Google的BigTable论文设计,运行在Hadoop文件系统(HDFS)之上,并且是Apache软件基金会的Hadoop项目的一部分。HBase旨在提供快速的随机访问大量结构化数据,...

    Apache HBase PrimerPDF

    《Apache HBase Primer》这本书是深入理解Apache HBase这一分布式列式数据库的绝佳参考资料。Apache HBase,作为基于Hadoop的开源项目,是为处理大规模数据而设计的NoSQL数据库,它提供了高吞吐量的随机读写能力,...

    Apache HBase Primer

    网上的HBase书都比较老了,这是目前为止最新版本的HBase电子书。 Part I: Core Concepts Chapter 1: Fundamental Characteristics Chapter 2: Apache HBase and HDFS Chapter 3: Application Characteristics...

    Apache HBase ™ Reference Guide.zip

    **Apache HBase ™ Reference Guide** 是一份详细的官方文档,主要针对使用Apache HBase这款分布式、列式存储的NoSQL数据库。HBase是构建在Hadoop文件系统(HDFS)之上,为大数据处理提供高性能、高可用性和强一致性...

    Hadoop HBase 配置 安装 Snappy 终极教程

    本文将深入探讨如何配置和安装Hadoop HBase以及集成Snappy,以优化大数据处理的效率。 首先,我们需要理解Hadoop的环境配置。Hadoop的配置涉及多个文件,如`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`。...

    藏经阁-Apache Spark – Apache HBase Connector.pdf

    Apache Spark - Apache HBase Connector Apache Spark 是一个基于内存的集群计算引擎,可以快速处理大量数据。Apache HBase 是一个基于 Hadoop 的分布式、面向列的 NoSQL 数据库,提供了高性能的数据存储和查询功能...

    hbase-apache离线官方文档

    - 完成安装后,用户需要运行HBase并确认安装成功。文档可能包含检查安装是否成功的步骤和方法。 以上知识点基本覆盖了Apache HBase的入门知识和关键操作,让用户从零开始直至能够熟练地运行HBase。为了更深入地...

    藏经阁-Apache HBase Connector.pdf

    储经阁-Apache HBase Connector Apache HBase Connector是Apache Spark的一个插件,旨在提供高效的访问HBase数据库的方式。下面是对该插件的详细介绍: Motivation Apache HBase Connector的出现是由于Spark在...

    Apache HBase Release 1.0

    Apache HBase是一个开源的非关系型分布式数据库(NoSQL),它是Apache Software Foundation下的Hadoop项目的一部分。HBase使用了Google发表的BigTable模型,是构建在Hadoop文件系统(HDFS)之上的,旨在提供快速的...

    apache_hbase_reference_guide-3.0.0-SNAPSHOT

    Apache HBase 是一个开源的非关系型分布式数据库(NoSQL),它是 Apache Software Foundation 的 Hadoop 项目的一部分,是 Google Bigtable 的开源实现。HBase 提供了高可靠性、高性能、易扩展和面向列的存储模型,...

    藏经阁-Scaling 30 TB’s of Data Lake with Apache HBase and Scala DSL

    藏经阁-Scaling 30 TB’s of Data Lake with Apache HBase and Scala DSL Apache HBase 是一种基于 HDFS 的分布式NoSQL数据库,具有高性能、低延迟和高可扩展性,非常适合大规模数据处理和分析。 Apache HBase 的...

    Hbase设置Snappy压缩测试

    标题中的“Hbase设置Snappy压缩测试”表明我们要探讨的是如何在HBase中配置Snappy压缩,这是一种常见的数据压缩技术,常用于提升大数据存储和处理的效率。Snappy以其较高的解压速度和较低的压缩率著称,尤其适用于...

Global site tag (gtag.js) - Google Analytics