HBase学习总结(2):HBase介绍及其基本操作
(HBase是一种数据库:Hadoop数据库,它是一种NoSQL存储系统,专门设计用来快速随机读写大规模数据。在已成功安装并正常启动的前提下,本文介绍HBase的基本操作。)
一、HBase简介
什么是HBase(Hadoop Database)呢?有以下两种常见的说法:
第一,它是一种稀疏的、分布式的、持久化的、多维有序映射,它基于行键(row key)、列键(column key)和时间戳(timestamp)建立索引。
第二,它是一种键值(key value)存储,面向列族的数据库,有时也是一种存储多时间戳版本映射的数据库。
以上两种描述都是对的。但从根本上来说,HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,是一个可以随机访问的存储和检索数据的平台。大家可以按照需要写入数据,然后再按照需要读取数据。
HBase有如下特点:
第一,它不介意数据类型,允许动态的、灵活的数据模型,并不限制存储的数据的种类。因此,它可以自如地存储结构化和半结构化的数据。
第二,它不用SQL语言,也不强调数据之间的关系。
第三,它不允许跨行的事务,可以在一行的某一列存储一个整数,而在另一行的同一列存储字符串。
第四,它被设计成在一个服务器集群上运行,而不是单台服务器。这意味着一种强大的、可扩展的数据的使用方式。
从HBase的特点可以看出,HBase的设计与目标都与传统的关系型数据库不同。
二、HBase的基本操作
在已成功安装并正常启动HBase的前提下,我们可以使用HBase Shell,通过命令行方式与HBase进行交互。
1.启动HBase Shell
转到HBase解压包的“bin”目录下,使用命令“./hbase shell”或“sh hbase shell”命令即可启动HBase Shell。启动之后的信息如下:
HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.0.1, r66a93c09df3b12ff7b86c39bc8475c60e15af82d, Fri Apr 17 22:14:06 PDT 2015 hbase(main):001:0>
为了验证HBase是否安装成功,我们可以输入“list”查看HBase中所有的表。该命令的执行情况如下:
hbase(main):001:0> list TABLE 0 row(s) in 0.2390 seconds => []
由于是首次登录,因此HBase中包含了0个表。
2.创建表
HBase使用表作为顶级结构来存储数据,写数据到HBase,也就是写数据到表。下面创建一个有一个列族(“cf”)的表“mytable”:
hbase(main):002:0> create 'mytable', 'cf' 0 row(s) in 0.3250 seconds => Hbase::Table - mytable hbase(main):003:0> list TABLE mytable 1 row(s) in 0.0090 seconds => ["mytable"]
使用“list”命令,我们可以看到,表创建成功。
3.写数据
表创建好之后,就需要写入一些数据。例如,我们想往表里写入“hello hbase”,那么我们就在“mytable”表的“first”行中的“cf:info”列对应的数据单元中插入“hello hbase”。命令执行如下:
hbase(main):004:0> put 'mytable', 'first', 'cf:info', 'hello hbase' 0 row(s) in 0.0970 seconds
我们还可以继续多增加几个值,如下:
hbase(main):005:0> put 'mytable', 'second', 'cf:name', 'zhou' 0 row(s) in 0.0180 seconds hbase(main):006:0> put 'mytable', 'third', 'cf:nation', 'China' 0 row(s) in 0.0080 seconds
现在表里面有3行和3个数据单元。在使用列的时候,大家并没有提前定义这些列,也没有定义往每个列中存储的数据类型。因此,HBase是一种无模式的数据库。
4.读数据
HBase有两种方式读取数据:get和scan。get方式可以读取一行的数据信息,scan方式可以读取表中所有行的数据信息。
get命令执行如下:
hbase(main):008:0> get 'mytable', 'first' COLUMN CELL cf:info timestamp=1435548279711, value=hello hbase 1 row(s) in 0.0770 seconds
该命令输出了该行所有的数据单元。
scan命令执行如下:
hbase(main):009:0> scan 'mytable' ROW COLUMN+CELL first column=cf:info, timestamp=1435548279711, value=hello hbase second column=cf:name, timestamp=1435548751549, value=zhou third column=cf:nation, timestamp=1435548760826, value=China 3 row(s) in 0.0320 seconds
该命令返回了所有数据。HBase返回行的顺序,是按照行的名字排序的。HBase称之为行键(rowkey)。
5.删除表
要想删除一张表,需要先将其“disable”掉,然后再“drop”掉。命令执行如下:
hbase(main):010:0> disable 'mytable' 0 row(s) in 1.2380 seconds hbase(main):011:0> drop 'mytable' 0 row(s) in 0.1770 seconds hbase(main):012:0> list TABLE 0 row(s) in 0.0070 seconds => []
HBase还有很多技巧,但是其他所有的东西都是建立在上面那些基本操作基础之上的。大家一定要好好体会。
本人微信公众号:zhouzxi,请扫描以下二维码:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于Spark机器学习和实时流计算的智能推荐系统
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46675501 概要: 随着电子商务的高速发展和普及应用,个性化推荐的推荐系统已成为一个重要研究领域。 个性化推荐算法是推荐系统中最核心的技术,在很大程度上决定了电子商务推荐系统性能的优劣,决定着是否能够推荐用户真正感兴趣的信息,而面对用户的不断提升的需求,推荐系统不仅需要正确的推荐,还要实时地根据用户的行为进行分析并推荐最新的 结果。 实时推荐系统的任务就是为每个用户,不断地、精准地推送个性化的服务,甚至到达让用户体会到推荐系统比他们更了解自己的感觉。 本文主要研究的是基于模型的协同过滤算法—ALS以及实时推荐系统的可行性并详细讲解ALS(交替最小二乘法)的思想 然后在Spark Streaming框架上运用ALS算法进行测试,评估实时推荐中算法的可靠性 最后,在Spark Mllib和Streaming框架上构建了实时推荐引擎,将推荐数据保存在Hbase中,WebApp通过读取Hbase中的推荐数据来向用户展示推荐结果 关于其...
- 下一篇
NoSQL数据库概览及其与SQL语法的比较
【文章摘要】 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,同时也是知名的NoSQL数据库之一。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题。 本文对NoSQL数据库的定义、分类、特征、当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考。 一、NoSQL的出现 关系型数据库系统多年来在解决数据存储、服务和处理问题方面取得了巨大的成功。一些大型的公司使用关系型数据库建立了自己的系统,如联机事务处理系统和后端分析应用系统。联机事务处理(OLTP)系统用来实时记录交易信息。对这类系统的期望是能够快速返回响应信息(一般在毫秒级)。联机分析处理(OLAP)系统用来分析查询所储存的数据。OLAP属于商业智能的范畴,数据需要研究、处理和分析,以便收集信息,进一步驱动商业决策。 关系型数据库的内部设计由关系算法决定,这些系统需要预先定义一个模式(schema)和数据要遵守的类型。SQL是与这些系统交互的标准方式。但在对象-关系不匹配问题出...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址