Hbase分布式数据库管理案例

HBase的安装与配置

注意:先做好hadoop集成配置后再来进行

HBase是Apache的Hadoop项目的子项目。HBase是一个分布式的、面向列的开源数据库。HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

1、创建用户

分别在四台节点机上创建用户hbase,密码都为123456,uid和gid与hadoop用户的相同,因为Hadoop没设gid,因此是随机分配的,所以先进行查看
(如果做过Hadoop用户的集成之后,可以直接用Hadoop用户去完成)

[root@node1 ~]# cat /etc/group

在这里插入图片描述
因此执行命令

[root@node1 ~]# useradd -u 660 -g 1002 -o hbase

上面的仅作参考,之后依然用Hadoop用户进行搭建

2、分别修改四台节点机的环境变量。

(Hadoop配置时已经完成)

3、下载hbase软件包。

4、使用WinSCP上传hbase软件包到node1节点机的root目录下

在这里插入图片描述

5、解压文件,安装文件。

[root@node1 ~]# tar xzvf hbase-1.1.5-bin.tar.gz 
[root@node1 ~]# mv hbase-1.1.5 /home/hadoop/

6、Hbase配置文件(主要三个)

主要有:hbase-env.sh、hbase-site.xml、regionservers,配置文件在/home/hadoop/hbase-1.1.5/conf/目录下。
1)修改hbase-env.sh文件,主要设置jdk路径和设置由hbase自动启动zookeeper。

[root@node1 ~]# cd /home/hadoop/hbase-1.1.5/conf
[root@node1 conf]# vim hbase-env.sh 

直接后面添加,java的版本要跟自己安装的一样
在这里插入图片描述

2)修改hbase-site.xml文件,将文件中的<configuration></configuration>修改为如下内容。

<configuration>
      <property>
          <name>hbase.master</name>          #指明master节点
          <value>node1:60000</value>
      </property>
      <property>
          <name>hbase.master.port</name>
          <value>60000</value>
      </property>
      <property>
           <name>hbase.master.maxclockskew</name>
           <value>180000</value>
       </property>
       <property>
           <name>hbase.rootdir</name>          #指明数据位置
           <value>hdfs://node1:9000/hbase-1.1.5</value> #该值hdfs://node1:9000与
                                               #hadoop的core-site.xml配置相同
       </property>
        <property>
           <name>hbase.cluster.distributed</name>  #指明是否配置成为集群模式
           <value>true</value>
       </property>
       <property>
           <name>hbase.zookeeper.quorum</name>  #指明zookeeper安装节点
           <value>node2,node3,node4</value>
       </property>
       <property>
           <name>hbase.zookeeper.property.dataDir</name>  
                                                #指明zookeeper数据存储目录
           <value>/home/hadoop/hbase-1.1.5/tmp/zookeeper</value>
       </property>
</configuration>

3)修改配置文件regionservers,添加slave节点的机器名或IP地址。
在这里插入图片描述

7、修改“/home/hbase/”文件用户主/组属性。

[root@node1 conf]# chown -R hadoop:hadoop /home/hadoop

8、将配置好的hbase系统复制到其他三个节点机上。

[root@node1 ~]# cd /home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node2:/home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node3:/home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node4:/home/hadoop/

9、分别登录node2、node3、node4节点机,修改 “/home/hbase/”文件用户主/组属性。

[root@node2 ~]# chown -R hadoop:hadoop /home/hadoop
[root@node3 ~]# chown -R hadoop:hadoop /home/hadoop
[root@node4 ~]# chown -R hadoop:hadoop /home/hadoop

HBase管理与HBase Shell

Hbase是分布式数据库,运行在hadoop环境上,HBase Shell是HBase提高的操作命令。
HBase Shell的主要命令包括:create 创建表,describe 查看表的结构,enable/disable 表激活/取消,drop 删除表,get/put 表读/写。本实训主要完成HBase数据库服务的启动、停止,HBase数据库的管理操作。

1、启动hbase服务。

(开启hbase前需要先开启hadoop)
在这里插入图片描述
在这里插入图片描述

2、检查运行结果

Master节点机的进程如下所示:(若出现节点少HRegionServer,考虑时间没有同步,先进行同步配置,参考同专栏《网络时间协议》)也可以手动去虚拟机设置那里直接选择与物理主机时间同步选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、停止hbase服务。(暂不操作)

stop-hbase.sh

4、登录hbase的 web界面。

在这里插入图片描述

5、启动hbase shell(进行以下一系列数据库操作)

在这里插入图片描述

6、建立表scores,两个列簇:grade和course。

hbase(main):001:0> create 'scores','grade','course'
#以下为输出
0 row(s) in 1.4890 seconds

=> Hbase::Table - scores

7、查看当前hbase中的表。

hbase(main):002:0> list
#以下为输出
TABLE                                                                                                
scores                                                                                               
1 row(s) in 0.0260 seconds

=> ["scores"]

8、添加6条纪录。
1)记录1:jie,grade:143cloud。操作命令如下:

hbase(main):003:0> put 'scores','jie','grade:','143cloud'
#以下为输出
0 row(s) in 0.1760 seconds

2)记录2:jie,course:math,85。操作命令如下:

hbase(main):004:0> put 'scores','jie','course:math','85'
#以下为输出
0 row(s) in 0.0180 seconds

3)记录3:jie,course:cloud,92。操作命令如下:

hbase(main):005:0> put 'scores','jie','course:cloud','92'
#以下为输出
0 row(s) in 0.0190 seconds

4)记录4:shi,grade:133soft。操作命令如下:

hbase(main):006:0> put 'scores','shi','grade:','133soft'
#以下为输出
0 row(s) in 0.0160 seconds

5)记录5:shi,grade:math,86。操作命令如下:

hbase(main):007:0> put 'scores','shi','course:math','86'
#以下为输出
0 row(s) in 0.0140 seconds

6)记录6:shi,grade:cloud,90。操作命令如下:

hbase(main):008:0> put 'scores','shi','course:cloud','90'
#以下为输出
0 row(s) in 0.0110 seconds

9、
1)读取jie的记录。

hbase(main):009:0> get 'scores','jie'

在这里插入图片描述

2)读取jie的班级。

hbase(main):010:0> get 'scores','jie','grade'

在这里插入图片描述

10、查看整个表记录。

hbase(main):011:0> scan 'scores'

在这里插入图片描述

11、按列查看表记录。

hbase(main):012:0> scan 'scores',{COLUMNS=>'course'}

在这里插入图片描述

12、增加新的列簇。

hbase(main):013:0> alter 'scores',NAME=>'age'

在这里插入图片描述

13、查看表结构。

hbase(main):014:0> describe 'scores'

在这里插入图片描述

14、删除指定记录。

delete 'scores','shi','grade'

15、删除列簇,删除表

alter 'scores',NAME=>'age',METHOD=>'delete' #删除列簇

disable 'scores' #删除表
drop 'scores'   #删除表
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
案例一:电商网站 电商网站是一个复杂的信息系统,需要支持用户注册、商品展示、购物车管理、订单处理等业务。以下是该系统实施中使用的技术和框架: 1. 消息队列:使用Kafka作为消息队列,用于异步处理订单和库存信息。当用户下单时,订单信息会被发送到Kafka,然后由订单处理系统进行处理。库存信息也会被发送到Kafka,由库存管理系统进行处理。 2. 分布式存储:使用MongoDB作为分布式存储,存储商品信息、用户信息、订单信息等。MongoDB支持水平扩展,可以满足系统的高并发访问需求。 3. 分布式事务:使用Saga模式实现分布式事务,当用户下单后,订单处理系统会向库存管理系统发起扣减库存的请求,如果请求成功,则确认订单,否则回滚事务。 4. 分布式缓存:使用Redis作为分布式缓存,缓存商品信息、用户信息、订单信息等。Redis支持高并发访问和快速响应,可以提高系统的性能。 5. 分布式数据库:使用MySQL作为分布式数据库,用于存储用户登录信息、地址信息、商品评价等。MySQL支持水平扩展和读写分离,可以提高系统的可用性和性能。 6. RPC服务框架:使用Dubbo作为RPC服务框架,实现系统的服务化架构。订单处理系统、库存管理系统、商品展示系统等均作为Dubbo服务提供者,供其他系统调用。 7. 网关:使用Nginx作为网关,将用户请求路由到不同的系统。Nginx支持负载均衡和反向代理,可以提高系统的可用性和性能。 案例二:在线教育平台 在线教育平台是一个大型的信息系统,需要支持学生注册、课程管理、作业管理、成绩管理等业务。以下是该系统实施中使用的技术和框架: 1. 消息队列:使用RocketMQ作为消息队列,用于异步处理作业和成绩信息。当学生提交作业时,作业信息会被发送到RocketMQ,然后由作业处理系统进行处理。成绩信息也会被发送到RocketMQ,由成绩管理系统进行处理。 2. 分布式存储:使用HBase作为分布式存储,存储学生信息、课程信息、作业信息、成绩信息等。HBase支持高并发访问和快速响应,可以满足系统的高并发访问需求。 3. 分布式事务:使用TCC模式实现分布式事务,当学生提交作业时,作业处理系统会向成绩管理系统发起提交成绩的请求,如果请求成功,则确认提交作业,否则回滚事务。 4. 分布式缓存:使用Ehcache作为分布式缓存,缓存学生信息、课程信息、作业信息、成绩信息等。Ehcache支持高并发访问和快速响应,可以提高系统的性能。 5. 分布式数据库:使用Oracle作为分布式数据库,用于存储学生登录信息、地址信息、课程评价等。Oracle支持水平扩展和读写分离,可以提高系统的可用性和性能。 6. RPC服务框架:使用Spring Cloud作为RPC服务框架,实现系统的微服务化架构。作业处理系统、成绩管理系统、课程展示系统等均作为Spring Cloud服务提供者,供其他系统调用。 7. 网关:使用Zuul作为网关,将用户请求路由到不同的系统。Zuul支持负载均衡和反向代理,可以提高系统的可用性和性能。 总结 以上两个案例中,我们展示了电商网站和在线教育平台的实施案例。可以看出,这些信息系统中使用了多种技术和框架,如消息队列、分布式存储、分布式事务、分布式缓存、分布式数据库、RPC服务框架、网关等。这些技术和框架的使用,可以提高系统的可用性、性能、可扩展性和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侬本多情。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值