Hadoop上配置Hbase数据库

已有环境:

1. Ubuntu:14.04.2

2.jdk: 1.8.0_45

3.hadoop:2.6.0

4.hBase:1.0.0

详细过程:

1.下载最新的Hbase,这里我下载的是hbase-1.0.0版本,然后打开终端,输入: tar zxvf hbase-1.0.0.tar.gz解压,然后将hbase放到合适的路径下(可以是用户目录,也可以是根目录,不太清楚是否必须要与hadoop放在用一个根目录下,本人是放在同一个目录下的)

2.修改2个配置文件(这里是伪分布式,单机版不再叙述)

  • hbase-env.sh(在hbase的安装目录下的conf文件夹中)
export JAVA_HOME=/usr/lib/jvm/java
export HBASE_MANAGES_ZK=true
//打开注释,并配置java环境
  • hbase-site.xml
//加入如下配置信息:
   <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:8020/hbase</value>//这里的路径必须与hadoop的core-site.xml中的fs.default.name一致,还有一个需要注意的地方是端口号8020,默认是9000。我的设置9000时没能成功启动hbase,当换成8020时,成功启动
    </property>

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/server1/Documents/zookeeper</value>//设置让hbase存储zookeeper文件的地方
    </property>

3.启动hadoop.

4.启动hbase。进入bin,输入命令:./start-hbase.sh

13808 Jps
12880 HQuorumPeer
13044 HRegionServer
12948 HMaster   //出现HMster说明配置成功 
12105 SecondaryNameNode
11913 DataNode
11758 NameNode

5.在终端输入 bin/hbase shell进入shell模式。

6。在shell模式下进行建表等操作:

create 'test','cf'   //建立一张名为‘test’,含有一个列族‘cf’的表
describe 'test'   //列出表的详细信息
put 'test','row1','cf:a','value1'   //在表中插入一行数据,
//row1为唯一标识,cf中含一列名为a,它的值为value1

7.关闭hbase和hadoop

8.可能出现的问题及解决方案:

  • hbase无法启动的问题。
    • 导致hbase无法启动的原因有多种,由于本人太过幸运,种种问题均遇到过O(∩_∩)O~
    • 一,启动hbase后,没有HMaster。
    • 二,启动hbase后,HMaster闪退。
    • 三,建表时产生空指针错误。
    • 四,hbase无法启动。
  • 解决方案:
    • 搜索了网络上各种解决方案,大致有以下几种方法:
      • 修改hbase-site.xml,添加各种配置信息;
      • 修改etc/hosts,将Ubuntu对应的IP那一项删除;
      • 修改etc/profile,配置hbase的环境变量(类似JDK的配置);
      • 将hadoop里的core-site.xml和hadoop-core-xxx.jar copy到hbase中的相应目录中(由于我安装的是hadoop-2.6.0版本,搜索了半天都没有找到hadoop-core jar文件,然后Google之,说是2.x以上的版本都没有这些jar文件,非要使用的话只能从官网下载);
    • 自己的解决方案:
      • 真正的原因是hadoop,hbase与jdk版本不兼容,导致以上各种问题的出现,包括闪退,无法启动等等。最后一个解决方案正是为了解决不兼容的问题。由于我自己起初用的是hadoop-2.6.0,jdk是1.8.x,hbase是0.8.27。本质原因就是hbase版本太低,而jdk版本太高。最简单的方案是删除低版本的hbase,然后安装最新的高版本hbase,问题即可轻易解决。

      

            总结:版本不一致会导致兼容问题,需要配置各种信息,所以以后要先查看课本或者别人的博客是用的那个版本的文件,然后在安装,站在巨人的肩上,才能走得更远!!

      

原文地址:https://www.cnblogs.com/little-YTMM/p/4445727.html