Hbase是什么
Hbase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用Hbase。
尽管已经有许多数据存储和访问的策略和实现方法,但事实上大多数解决方案,特别是一些关系类型的,在构建时并没有考虑超大规模和分布式的特点。许多商家通过复制和分区的方法来扩充数据库使其突破单个节点的界限,但这些功能通常都是事后增加的,安装和维护都和复杂。同时,也会影响RDBMS的特定功能,例如联接、复杂的查询、触发器、视图和外键约束这些 *** 作在大型的RDBMS上的代价相当高,甚至根本无法实现。
Hbase从另一个角度处理伸缩性问题。它通过线性方式从下到上增加节点来进行扩展。Hbase不是关系型数据库,也不支持SQL,但是它有自己的特长,这是RDBMS不能处理的,Hbase巧妙地将大而稀疏的表放在商用的服务器集群上。
Hbase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, Hbase 利用Hadoop HDFS 作为其文件存储系统;Google 运行MapReduce 来处理Bigtable中的海量数据, Hbase 同样利用Hadoop MapReduce来处理Hbase中的海量数据;Google Bigtable 利用Chubby作为协同服务, Hbase 利用Zookeeper作为对应。
Hbase的特点
海量存储、列式存储、极易扩展、高并发、稀疏数据、准实时查询(弥补MapReduce的离线延时)
Hbase的架构如图
一般Hbase集群有一个HMaster服务器和几个HRegionServer服务器。HMaster服务器负责维护表的结构信息,HRegionServer服务器负责存储数据。客户端通过直连HRegionServer获取数据,所以当HMaster宕机后依然可以查询数,只是不能新建表了
Client:包含了访问Hbase的接口,还有维护缓存加速Hbase的访问。
Zookeeper:实现HMaster的高可用;监控HRegionServer的状态;存储.meta.的地址。
HMaster:维护.meta.;为HRegionServer分配Region;维护集群的负载均衡。
HRegionServer:处理客户端的读写请求;管理HMaster分配的Region。
Hbase集群的启动
(1) 启动三个节点上的Zookeeper,在master、slave1和slave2执行以下命令:
zkServer.sh start
zkServer.sh status
(2) 启动Hadoop,在master执行以下命令: start-dfs.sh start-yarn.sh
(3) 启动Hbase,在master执行以下命令: start-hbase.sh
(4) 在3个节点使用jps命令查看Hbase进程,内容如下:
master:HMaster,HRegionServer
slave1:HMaster,HRegionServer
slave2:HRegionServer
Hbase集群的关闭
在master使用stop-hbase.sh命令即可关闭Hbase集群
Hbase Shell是Hbase集群的命令行接口。用户可以使用Shell访问本地或远程服务器并与其进行交互。Shell同时提供了客户端和管理功能的 *** 作
启动shell
hbase shell
离开可以输入exit或者quit
命名规则:
(1) 引用名:命令行要求在使用表名和列名时,必须通过单引号或者双引号对其引用。
(2) 引用值:命令行支持二进制、八进制、十六进制的输入和输出。用户在引用时必须使用双引号,否则会被当做文件进行处理。
(3) 使用逗号分隔参数:参数之间需要使用逗号进行分隔。
(4) 散列属性:一些命令需要使用键值对属性
shell命令:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)