Windows环境搭建HBase及HBase数据库操作示例

  • A+
所属分类:大数据分析
摘要我在网上搜索了一下,发现Windows环境搭建HBase的教程没有特别详细的,加上最近自己也在进行环境的搭建,就在这里详细记录一下,希望可以方便之后的使用,方便大家查询。

HBase简介

Apache HBase 是一个基于 Hadoop 的、适用于大数据存储的、具有高可扩展性的分布式数据库。

HBase 适用于随机的、实时的大数据的 I/O 访问,它的设计目标是在商品硬件的集群上托管非常大的表(数十亿行乘以百万列)。同时,HBase 作为一款非关系型数据库,起源于谷歌的 Bigtable 。

我们知道,HDFS 是一个分布式文件系统,非常适合存储大型文件。但是它并不是一个通用的文件系统,可能是因为它不能够查找文件中的单个记录。而 HBase 是构建在 HDFS 之上的,它能够为大型表提供快速的记录查找和更新。HBase 在内部将数据放入带索引的“存储文件”中以便于快速查找,而这些文件存放在 HDFS 上。

Windows下HBase安装部署

HBase的伪分布模式是依赖于HDFS的,因此在安装HBase之前需要安装匹配版本的Hadoop。

在我这里,我的Hadoop版本为hadoop-2.8.4,下载的HBase版本为HBase-2.0.2,下载地址如下:

Apache HBase Download

文件下载及解压

首先我们现在官网上下载对应版本的HBase,并进行解压,我这里是解压在了D盘,解压后如下;

Windows环境搭建HBase及HBase数据库操作示例

修改配置文件

接着我们修改配置文件,./hbase/conf/hbase-site.xml

打开之后,可以看到<configuration>标签是空的,我们增加下面的内容:

  1. <configuration>
  2.     <property>
  3.         <name>hbase.rootdir</name>
  4.         <value>hdfs://localhost:9000/hbase</value>
  5.     </property>
  6.     <property>
  7.         <name>hbase.zookeeper.property.dataDir</name>
  8.         <value>/home/hadoop/zookeeper</value>
  9.     </property>
  10.     <property>
  11.         <name>hbase.cluster.distributed</name>
  12.         <value>false</value>
  13.     </property>
  14. </configuration>

这里的 hbase.cluster.distribute是指HBase以分布式模式进行,这个功能在win下不支持,写成false,否则无法启动(见可能出现的问题第一条

接着我们修改hbase-env.sh文件,指定JAVA_HOME,这里改成自己的路径,我是之前在环境变量里设置过

Windows环境搭建HBase及HBase数据库操作示例

所以这里就直接写成了下面的样子;

  1. export JAVA_HOME=${JAVA_HOME}

 环境变量的设置

接下来进行环境变量的设置,环境变量的设置都大同小异,我就直接进行截图的说明;

首先是环境变量新建,里面添加 HBASE_HOME:

Windows环境搭建HBase及HBase数据库操作示例

接着在Path中添加:

Windows环境搭建HBase及HBase数据库操作示例

启动HBase服务

在启动HBase之前,我们需要先启动Hadoop;

接着在命令行里输出 start-hbase.cmd即可启动(如果没有添加Path,需要进行hbase/bin/中进行启动);

可以通过jps进行查看:

Windows环境搭建HBase及HBase数据库操作示例

同时我们可以通过 hadoop fs -ls /hbase进行查看,检查一下HDFS上是否有HBase产生的文件:

Windows环境搭建HBase及HBase数据库操作示例

HBase数据库模型操作示例

下面使用HBase Shell做一下演示:

在终端输入hbase shell进行HBase Shell(感觉说得好绕啊,其实就是这么回事)

表的一些操作

创建表

Windows环境搭建HBase及HBase数据库操作示例

这里的 test_1是表名,cf是列族;

列出与描述表

我们使用list进行列出表:

Windows环境搭建HBase及HBase数据库操作示例

我们使用describe查看表的一些详细信息:

Windows环境搭建HBase及HBase数据库操作示例

禁用与启用表

在删除表和修改表的配置之前,我们需要先禁用表:

Windows环境搭建HBase及HBase数据库操作示例

删除表

删除表使用drop命令,如删除上面的表:drop 'test_1'

我就不演示了。


行的一些操作

HBase的行有一个行键和一个或多个组成,这些列的值与行键相互关联,存储时按照行键的字母顺序进行排列;

插入数据

插入数据使用put命令,我在这里插入多条数据,方便后面的演示:

Windows环境搭建HBase及HBase数据库操作示例

查看数据

我们可以通过scan获取一张表里的全部数据(这里没有限制)

Windows环境搭建HBase及HBase数据库操作示例

也可以通过get获取某一行的数据

Windows环境搭建HBase及HBase数据库操作示例

列与列族的一些操作

HBase 中的一个列(Column)由一个列族和一个列限定符组成,它由一个 : (冒号)字符分隔。

我们可以看上面插入数据的操作,插入时候会有 'cf:a',这里cf就是列族,a就是列限定符;

列族的含义

列族出于性能的原因,在物理上连续地排列一组列及它的值。每个列族都有一组存储属性,比如是否应该将其值缓存在内存中、如何压缩数据或对其行键进行编码等等。表中的每一行都有相同的列族,尽管给定的行可能不会在给定的列族中存储任何数据。

列限定符的含义

列族中的列限定符用于提供指定数据块的索引。举个例子,如果指定一个列族,则其列限定符可能是 content:age,另一个可能是 content:address。虽然在表创建时就已经固定了列族,但列限定符是可变的,并且在不同的行之间可能有很大的差异。


退出HBase

使用 quit 命令进行退出;

关闭HBase服务

我们在终端输入 stop-hbase.cmd 进行关闭HBase的服务;

可能出现的问题

This is not implemented yet. Stay tuned.

这是由于在windows环境启动时,不允许使用分布式的zk,需要把上面配置文件./hbase/conf/hbase-site.xml中的hbase.cluster.distribute改成false即可;

参考资料

Windows环境搭建HBase

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: