HBase 操作入门

第一部分 HBase 安装

一 Linux 上安装 HBase

HBase 有 3 种运行模式,即单机模式、伪分布式模式和分布式模式:

  1. 单机模式:采用本地文件系统存储数据。
  2. 伪分布式模式:采用伪分布式模式的 HDFS 存储数据。
  3. 分布式模式:采用分布式模式的 HDFS 存储数据。

在进行 HBase 安装配置之前,需要确认已经安装了 3 个组件:JDK、SSH 和 Hadoop:

1 下载安装文件

HBase 是 Hadoop 生态系统中的一个组件,但是,Hadoop 安装以后本身并不包含 HBase,因此需要单独安装 HBase。

我们在这里选择下载 2.2.4 版本的 HBase 作为示例,也可酌情选择下载其他版本:

  1. 进入 HBase 官网安装文件下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/,点击 2.2.4/:
    在这里插入图片描述
  2. 点击下载 hbase-2.2.4-bin.tar.gz:
    在这里插入图片描述
  3. 打开 Linux 终端,进入刚才下载文件所在的目录,通过下列命令将下载文件解压并保存到 /usr/local/ 目录下:
    sudo tar -zxf hbase-2.2.4-bin.tar.gz -C /usr/local/
    
  4. 进入 /usr/local/ 目录,通过下列命令修改文件夹名为 hbase,以方便使用:
    sudo mv ./hbase-2.2.4/ ./hbase/
    

2 配置环境变量

将 HBase 安装目录下的 bin 目录即 /usr/local/hbase/bin/,添加到系统的 PATH 环境变量中,这样每次启动 HBase 时就不需要到 /usr/local/hbase/bin/ 目录下执行启动命令,方便 HBase 的使用。

  1. 使用 vim 编辑器打开 ~/.bashrc 文件,命令如下:
    vim ~/.bashrc
    
  2. 打开 .bashrc 文件以后,将以下语句加到文件第一行,如果已经有其他的 PATH 环境变量配置信息,只需要用英文冒号 “:” 隔开,将 /usr/local/hbase/bin 追加到其后即可:
    export PATH=$PATH:/usr/local/hbase/bin
    
  3. 保存并退出 .bashrc 文件后,执行如下命令使设置生效:
    source ~/.bashrc
    

3 添加用户权限并检查

  1. 为当前登录 Linux 系统的用户添加访问 HBase 目录的权限,将 HBase 安装目录下的所有文件的所有者改为当前登录用户,命令如下:
    sudo chown -R 自己的用户名 /usr/local/hbase/
    
  2. 查看 HBase 版本信息,查看 HBase 是否安装成功:
    hbase version
    
    出现以下信息,说明安装成功:
    在这里插入图片描述

4 单机模式配置

  1. 配置 hbase-env.sh 文件,打开 hbase-env.sh 文件以后,需要在 hbase-env.sh 文件中配置 JAVA 环境变量,通过以下命令可以知道自己的 JAVA 环境变量:
    echo $JAVA_HOME
    
    此外,还需要添加 Zookeeper 配置信息,配置 HBASE_MANAGES_ZK 为 true,表示由 HBase 自己管理 Zookeeper,不需要单独的 Zookeeper,因此,需要在 hbase-env.sh 文件中加入以下信息:
    export JAVA_HOME=<自己的 JAVA 环境变量>
    export HBASE_MANAGES_ZK=true
    
  2. 配置 hbase-site.xml 文件,在 hbase-site.xml 文件中,需要设置属性 hbase.rootdir,用于指定 HBase 数据的存储位置,如果没有设置,则 hbase.rootdir 默认数据存储在临时文件夹,这意味着每次重启系统都会丢失数据,这里把 hbase.rootdir 设置为 HBase 安装目录下的 hbase-tmp 文件夹,即 /usr/local/hbase/hbase-tmp,修改后的 hbase-site.xml 文件中的配置信息如下:
    <configuration>
    	<property>
    		<name>hbase.rootdir</name>
    		<value>file:///usr/local/hbase/hbase-tmp</value>
    	</property>
    </configuration>
    
  3. 启动并运行 HBase,可通过以下命令启动 HBase:
    start-hbase.sh
    
    输入 hbase shell 命令进入 HBase Shell 命令行模式,在该命令行模式,我们可以通过输入 Shell 命令来操作 HBase 数据库,输入 quitexit 即可退出该模式:
    在这里插入图片描述
  4. 停止 HBase 运行:
    stop-hbase.sh
    

5 伪分布式模式配置

  1. 配置 hbase-env.sh 文件,除了如单机模式那样配置 JAVA_HOME 和 HBASE_MANAGES_ZK 外,在伪分布式模式下,我们还需要设置 HBASE_CLASSPATH 参数为本机 Hadoop 安装目录下的 conf 目录,因此,在 hbase-env.sh 文件中,应该添加如下信息:

    export JAVA_HOME=<自己的 JAVA 环境变量>
    export HBASE_CLASSPATH=<自己的 Hadoop 安装目录>/conf/
    export HBASE_MANAGES_ZK=true
    
  2. 配置 hbase-site.xml 文件,不同于单机模式那样设置 hbase.rootdir 属性为 HBase 安装目录下的 hbase-tmp 文件夹,在伪分布式模式下,需要使用伪分布式模式的 HDFS 存储数据,因此需要把 hbase.rootdir 属性设置为 HBase 在 HDFS 上的存储路径,一般地,HDFS 的访问路径为 hdfs://localhost:9000/,所以该属性应该设置为 hdfs://localhost:9000/hbase,此外,在伪分布式模式下,我们还需要设置 hbase.cluster.distributed 为 true,修改后的 hbase-site.xml 文件中的配置信息如下:

    <configuration>
    	<property>
    		<name>hbase.rootdir</name>
    		<value>hdfs://localhost:9000/hbase</value>
    	</property>
    	<property>
    		<name>hbase.cluster.distributed</name>
    		<value>true</value>
    	</property>
    </configuration>
    
  3. 登录 SSH:

    ssh localhost
    
  4. 启动 Hadoop,让 HDFS 进入运行状态,从而可以为 HBase 存储数据:

    start-dfs.sh
    

    输入命令 jps,如果能够看到 NameNode、DataNode 和 SecondaryNameNode 这三个进程,则表示已成功启动 Hadoop。

  5. 启动并运行 HBase:

    start-hbase.sh
    

    输入命令 jps,如果能够看到 HRegionServer、HQuorumPeer 和 HMaster 这三个进程,则表示已成功启动 HBase。

    启动成功后,可以输入 hbase shell 命令进入 HBase Shell 命令行模式,在该命令行模式,我们可以通过输入 Shell 命令来操作 HBase 数据库。

  6. 先后关闭 HBase 和 Hadoop 服务:

    stop-hbase.sh
    
    stop-dfs.sh
    

第二部分 初步了解 HBase

在使用具体的 Shell 命令操作 HBase 数据之前,需要首先启动 Hadoop, 然后再启动 HBase 和 HBase Shell,进入 Shell 命令提示符状态,具体命令如下:

start-dfs.sh
start-hbase.sh
hbase shell

一 创建表

在关系型数据库(如 MySQL)中,需要首先创建数据库,然后再创建表,但是在 HBase 数据库中,不需要创建数据库,只要直接创建表就可以了,在 HBase 中创建表的 Shell 命令为 create '表名','字段名1','字段名2','字段名3',例如,我们可以通过如下命令建立一张学生表:

create 'student','Sname','Ssex','Sage','Sdept','course'

创建完表后,可通过 describe '表名' 命令查看表的基本信息,我们可以执行 describe 'student' 命令查看学生表的信息:
在这里插入图片描述
还可以使用 list 命令查看当前 HBase 数据库中已经创建了哪些表:
在这里插入图片描述

二 添加数据

HBase 使用命令 put '表名','行键','字段名1','值1' 添加数据,一次只能为一个表的一行数据的一个列(也就是一个单元格,单元格是 HBase 中的概念)添加一个数据,所以直接用 Shell 命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。

需注意的是,对于 HBase 而言,在创建 HBase 表时,不需要自行创建行键,系统会默认一个属性作为行键,通常是把 put 命令操作中跟在表名后的第一个数据作为行键。

我们对刚才的学生表插入一条学生记录:
在这里插入图片描述
上面的 put 命令会为学生表中学号为 ‘12345’ 的学生添加信息,系统默认把跟在表名 student 后面的第一个数据 ‘12345’ 作为行键。

三 查看数据

HBase 中有两个用于查看数据的命令:

  • 命令 get '表名','行键':用于查看表的某一个单元格数据,例如可以使用如下命令返回学生表中学号为 12345 的学生的数据:
    在这里插入图片描述
  • 命令 scan '表名':用于查看某个表的全部数据,例如查询学生表的全部数据:
    在这里插入图片描述

四 删除数据

HBase 中有两个用于删除数据的命令:

  • 命令 delete '表名','行健','字段名1':用于删除一个单元格数据,是 put 的反向操作,例如删除学生表中 12345 这一行中的 Ssex 列的所有数据:
    在这里插入图片描述
  • 命令 deleteall '表名','行健':用于删除一行数据,例如删除学生表中 12345 这一行的全部数据:
    在这里插入图片描述

五 删除表

删除表需要分两步操作:

  1. 使用命令 disable '表名' 让要删除的表不可用;

  2. 使用命令 drop '表名' 删除表.

例如删除刚才的学生表:
在这里插入图片描述

六 查询历史数据

在添加数据时,HBase 会自动为添加的数据添加一个时间戳,在修改数据时,HBase 会为修改后的数据生成一个新的版本(时间戳),从而完成 “改” 操作,但是旧的版本依旧会保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。

为了查询历史数据,这里创建一个教师表,在创建表的时候,指定保存的版本数为 5:
在这里插入图片描述
然后插入数据,并更新数据,使其产生历史版本数据,需要注意的是,这里插入数据和更新数据都是使用 put 命令:
在这里插入图片描述
查询时默认情况下会显示当前最新版本的数据,如果要查询历史数据,需要指定查询的历史版本数,由于上面设置了保存版本数为 5,所以,在查询时指定的历史版本数的有效取值为 1 到 5,但超过了不会报错,只会显示最大数目个版本:
在这里插入图片描述
参考资料:《大数据技术原理与应用概念、存储、处理、分析与应用》第二版

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值