HBase编程实践

编程环境

Ubuntu 18.04
在这里插入图片描述

实验内容

安装Hbase

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.11/hbase-2.4.11-bin.tar.gz

已安装的hadoop版本:
Hadoop 3.3.2
在这里插入图片描述
解压安装包

tar -zxf hbase-2.4.11-bin.tar.gz

  1. 配置环境变量

记住自己的安装的路径
在这里插入图片描述

vim ~/.bashrc

在这里插入图片描述
使资源生效

source ~/.bashrc

验证HBase是否安装成功

bin/hbase version

输出版本即安装成功
在这里插入图片描述



单机模式配置

找到自己JAVA安装路径可以参考(https://blog.csdn.net/wr456wr/article/details/124249644)中的安装JAVA环境变量或者在**~/.bashrc** 中查看自己已经配置好的环境路径
在这里插入图片描述

在conf/hbase-env.sh内进行配置,大概在第28行设置JAVA环境变量
(在vim内使用set nu可以查看到行数信息)
以及126行的注释去掉
在这里插入图片描述
在这里插入图片描述
配置hbase-site.xml文件,在hbase安装的目录下的conf文件内,设置属性hbase.rootdir,用于指定HBase数据的存储位置,因为如果不设置的话,hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据,此处设置为HBase安装目录下的hbase-tmp文件夹
在这里插入图片描述
配置项:

  <property>
    <name>hbase.rootdir</name>
    <value>file:///root/rDesk/hbase/hbase-tmp</value>
  </property>

在这里插入图片描述
之后尝试启动HBase,成功启动

bin/start-hbase.sh
bin/hbase shell
bin/stop-hbase.sh (HBase停止操作)

在这里插入图片描述



伪分布式配置

在conf/hbase-env.sh文件内配置三项分别为JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.

其中HBASE_CLASSPATH值设置为安装hbase目录下的conf文件的位置

在vim内命令模式下使用/可以进行搜索:
在这里插入图片描述
在这里插入图片描述
配置conf内的hbase-site.xml文件.

修改hbase.rootdir,指定HBase数据在HDFS上的存储路径;将属性hbase.cluter.distributed设置为true。假设当前Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口。

添加的配置项如下:

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

在这里插入图片描述
hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式.

另外,上面配置文件中,hbase.unsafe.stream.capability.enforce这个属性的设置,是为了避免出现启动错误。也就是说,如果没有设置hbase.unsafe.stream.capability.enforce为false,那么,在启动HBase以后,会出现无法找到HMaster进程的错误


尝试启动Hbase和Hadoop

bin/start-hbase.sh
/root/rDesk/hdoop-3.3.2/sbin/start-dfs.sh (启动Hadoop)

在这里插入图片描述

输入jps查看是否启动成功
在这里插入图片描述
其中NameNode,DataNode,SecondaryNameNode为Hadoop的进程,HQuirumPeer,HRegionServer,HMaster为HBase的进程


HBase shell命令说明

  1. create: 创建表

  1. list: 列出HBase中所有的表的信息

  1. put:向表,行,列指定的单元格添加数据

  1. get:通过指定表名,行,列,时间戳,时间范围和版本号来获得相应的单元格的值

  1. scan:浏览表的相关信息

  1. alter:修改列族模式

  1. count:统计表中的行数

  1. describle: 显示表的相关信息

  1. enable/disable:使表有效或无效

  1. delete:删除指定单元格的数据

  1. drop:删除表

  1. exists:判断表是否存在

  1. truncate:使表无效,删除该表,然后重新建立表

  1. exit:退出hbase shell

  1. shutdown:关闭Hbase集群

  1. version:输出Hbase版本信息

  1. status:输出hbase集群状态信息

简单命令实践

打开hbase的shell

bin/hbase shell

在这里插入图片描述

  1. 创建一个Student表

create ‘student’, ‘Sname’, ‘Ssex’, ‘Sage’, ‘Sdept’, ‘course’
在这里插入图片描述

  1. 查看student表的信息

describe 'student’describe ‘student’

在这里插入图片描述
3. 使用put向student表插入数据
put命令添加数据,一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据

put ‘student’, ‘122’, ‘Sage’, ‘77’

(含义是向student表中的122行号内的Sage族内插入一条数据,数据值为77)

在这里插入图片描述

  1. 使用scan查看student表内的数据

scan ‘student’

在这里插入图片描述

  1. 使用delete删除数据

delete ‘student’, ‘122’, ‘Sage’

在这里插入图片描述

  1. 使用deleteall删除一行的数据

deleteall ‘student’, ‘123’

在这里插入图片描述

  1. 使用get获取某一行的数据

get ‘student’, ‘11’

在这里插入图片描述

  1. 删除表
    先使用disable使表不可用,然后使用drop删除表

disable ‘student’
drop ‘student’

在这里插入图片描述
或者在使用disable表后也可以使用enable重新使表可用
在这里插入图片描述



参考资料:

http://dblab.xmu.edu.cn/blog/2442-2/
https://blog.csdn.net/weixin_44990104/article/details/117596231
https://github.com/steveloughran/winutils

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值