网站移动转换,江苏网站建设市场,自己这么做网站,深圳市工程招标网中标公告目录
一、Hbase原理
二、HBase数据库操作
三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型#xff1a; 行键 时间戳 列族#xff1a;contents 列族#xff1a;anchor 列族#xff1a;mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…目录
一、Hbase原理
二、HBase数据库操作
三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型 行键 时间戳 列族contents 列族anchor 列族mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:my.lock.ca”CNN.com” T6 Contents:html”html…” Mime:type”text/html” T5 Contents:html”html…” T3 Contents:html”html…” HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。利用HBase技术可在廉价的PC Server上搭建起大规模结构化存储集群。 HBase是非关系型数据库它不要求数据之间有严格的关系同时它允许在同一列不同行中存储不同类型的数据。Hbase作为Hadoop框架下的数据库是被设计成在一个服务器集群上运行的。
二、HBase数据库操作
示例在Hbase建立如下表格数据表格命名为Phone并对Phone表执行数据查询、修改、删除及表格的删除操作。 行键 info sale 时间戳 brand name price P001 Apple Iphone16 8999 202404 P001 Iphone15 202303 P003 HUAWEI Mate 30 pro 5999 201906
1、在虚拟机终端输入hbase shell进入hbase。 2、HBase创建数据库表
1建立数据库表使用create ‘表名’, ‘列族名1’,’列族名2’,’列族名N’具体操作如下所示。 2执行命令list查看所有数据库表下图显示Phone表说明已经创建成功。 3describe ‘Phone’查看Phone表的结构。 4count ‘Phone’查看Phone表中的所有记录数量此时未添加数据记录为0。 2、增加数据操作
put ‘表名’,’行键’,’列族列’,’值’具体操作如下所示。对Phone表所有记录进行添加。 3、查询数据操作
1查看表的所有记录使用 scan ‘表名’具体操作如下所示。 2查看某个行键下的所有记录使用 get ‘表名’,‘行键’具体操作如下所示。 3查看某个行键下的列族记录使用get 表名,行键,列族具体操作如下所示。 4查看列族的某个列记录使用get 表名,行键,列族列’具体操作如下所示。 3、更新数据操作
Hbase更新数据即追加数据对相同行键、列族和列名的数据再次添加即为数据的更新重写一遍进行覆盖实现更新。Phone表中要把P001的价格从8999更新为9888具体操作如下所示。 4、删除数据操作
1删除某个列族中的列使用delete‘表名’,‘行名’,‘列族列具体操作如下所示。 2使用get查询删除是否成功具体操作如下所示。 3删除整行记录使用deleteall 表名,行键具体操作如下所示。 3清空表所有记录使用truncate 表名具体操作如下所示。 5、删除数据表
1蔽数据表 disable ‘表名’
2查看表是否可用is_enabled ‘表名’
3删除数据表drop 表名
具体操作如下所示。 三、遇到的问题和解决方法
我自己操作时遇到的问题和一些解决方法大家可以在评论区讨论
1、hbase shell命令回车后报错提示zookeeper连接出现问题后来发现是hbase-site.xml文件没有正确配置正确配置后可以启动zookeeper正常运行。这里可以查看我的Hadoop和Hbase的配置文章里面有说如何配置hbase-site.xml文件
【Hadoop和Hbase集群配置】3台虚拟机、jdkhadoophbase下载和安装、环境配置和集群测试_虚拟机hbase环境配置-CSDN博客
2、增加数据时put之后没有报错可是get和scan查看数据却没有显示内容说明添加数据出现问题我试了重新启动hbase服务也没有解决后来删除Phone表重新创建就可以添加数据了。
3、Phone表里有一个时间戳为202303的P001记录可是在已经添加了Iphone16的数据之后Iphone15的就put失效和上面的问题一样或许是因为202303的记录比202404的记录要旧被新时间戳的记录覆盖了所以显示不了。