hadoop实践(七):hbase伪分布式部署

HBase的安装对应与hadoop的三种版本,也有单机版和伪分布式、全分布式三种方式。 全分布式采用一组zookeeper来进行保持集群软件之间的一致性,具体在下一节说明。

一、目标
   在伪分布式发布的hadoop主机上,安装配置hbase,并验证可用性


二、准备
   1) 环境说明:  
      主机: linux虚拟机centos6.5
      hadoop: hadoop2.6.4伪分布式发布
      hbase: 准备安装的版本为 1.0.3

      下载地址:http://mirrors.cnnic.cn/apache/hbase/

       hadoop实践(七):hbase伪分布式部署_第1张图片


        hadoop实践(七):hbase伪分布式部署_第2张图片

  

   2) hbase版本说明: 
   hbase与hadoop有对应关系,以下对应关系是从网上收集前人的成果,网址为:http://www.chinahadoop.cn/group/5/thread/1027

hadoop与HBase版本对应关系:
Hbase          Hadoop
0.92.0   1.0.0
0.92.1   1.0.0
0.92.2   1.0.3
0.94.0   1.0.2
0.94.1   1.0.3
0.94.2   1.0.3
0.94.3   1.0.4
0.94.4   1.0.4
0.94.5   1.0.4
0.94.9   1.2.0
0.95.0   1.2.0


hadoop1.2+hbase0.95.0+hive0.11.0 会产生hbase+hive的不兼容,创建hive+hbase的关联表就会报pair对异常。

hadoop1.2+hbase0.94.9+hive0.10.0 没问题,解决了上个版本的不兼容问题。

hadoop实践(七):hbase伪分布式部署_第3张图片



三、安装Hbase


1、 解压hbase-1.1.0.1-bin.tar.gz

         将gz文件用gzip解压,用tar将tar格式解压

[hadoop@master soft]$ ls  -ltr
total 101420
-rw-rw-r-- 1 hadoop hadoop 103847513 Jun 20  2016 hbase-1.0.3-bin.tar.gz
[hadoop@master soft]$ 
[hadoop@master soft]$ 
[hadoop@master soft]$ 
[hadoop@master soft]$ gzip -d hbase-1.0.3-bin.tar.gz
[hadoop@master soft]$ 
[hadoop@master soft]$ ls  -ltr
total 390916
-rw-rw-r-- 1 hadoop hadoop 400291840 Jun 20  2016 hbase-1.0.3-bin.tar
[hadoop@master soft]$ 
[hadoop@master soft]$  tar -vxf hbase-1.0.3-bin.tar




 2、 将hbase添加到环境变量中
  切换到root用户

         vi /etc/profile  在最后面添加如下代码:      

     export HBASE_HOME=/opt/hadoop/hbase-1.0.3
     export PATH=$HBASE_HOME/bin:$PATH


使其生效: [root@master opt]# source  /etc/profile


  切换到hadoop用户,使用set命令可以查看已经生效。


3、修改配置文件
    1) 进入到/opt/hadoop/hbase-1.0.3/conf 目录,修改hbase-env.sh
     找到下面项目,修改如下
export JAVA_HOME=/usr/java/jdk1.7.0_80
export HBASE_CLASSPATH=/opt/hadoop/hbase-1.0.3/conf
export HBASE_MANAGES_ZK=true

说明:伪分布式部署,由自己管理一致性,在完全分布式下, HBASE_MANAGES_ZK 是zookeeper管理,配置为false

 
    2) 修改hbase-site.xml



      hbase.rootdir
     hdfs://master:9000/hbase


    hbase.cluster.distributed
    true


说明:
hdfs://master:9000/hbase
此属性中的master是本机的hostname。要根据自己的hadoop的配置信息进行相应的修改

2、运行HBase

启动HBase:

[hadoop@master bin]$ start-hbase.sh 
localhost: starting zookeeper, logging to /opt/hadoop/hbase-1.0.3/bin/../logs/hbase-hadoop-zookeeper-master.out
starting master, logging to /opt/hadoop/hbase-1.0.3/logs/hbase-hadoop-master-master.out
starting regionserver, logging to /opt/hadoop/hbase-1.0.3/logs/hbase-hadoop-1-regionserver-master.out
[hadoop@master bin]$ 
[hadoop@master bin]$ 
[hadoop@master bin]$ 


检查进程:

[hadoop@master bin]$ jps
14914 NameNode
24756 Jps
24406 HRegionServer
15195 SecondaryNameNode
15445 NodeManager
15009 DataNode
24223 HQuorumPeer
24283 HMaster
15348 ResourceManager

比hadoop之前的内容,多了 HRegionServer,HQuorumPeer,HMaster


验证hbase: 执行hbase shell

[hadoop@master bin]$  hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hadoop/hbase-1.0.3/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016


hbase(main):001:0> 
hbase(main):002:0* 
hbase(main):003:0* 
hbase(main):004:0* quit
[hadoop@master bin]$ 

上述过程是本机验证,网上有人遇到hbase和hadoop不匹配报错,附上解决办法:

替换Hbase中的jar包

需 要用{HADOOP_HOME}下的hadoop-0.20.2-core.jar 替换掉{HBASE_HOME}/lib目录下的hadoop-core-0.20-append-r1056497.jar 。如果不替换jar文件Hbase启动时会因为hadoop和Hbase的客户端协议不一致而导致HMaster启动异常。报错如下:

localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)

所以如果遇到以上错误,就通过替换jar包解决。


 








你可能感兴趣的:(HADOOP,大数据)