设为首页 收藏本站
查看: 690|回复: 0

[经验分享] 坑爹的Apache hbase 64位机安装Snappy终于成功了

[复制链接]

尚未签到

发表于 2017-1-14 07:18:37 | 显示全部楼层 |阅读模式
坑爹的网上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源码
 

  • Download Hadoop sources.
  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
 

 
   
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328051-1-1.html 上篇帖子: Apache Ant运行时Unable to locate tools.jar解决方法 下篇帖子: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表