第四章 分布式数据库HBase.pptVIP

  • 50
  • 0
  • 约2.05万字
  • 约 69页
  • 2018-12-29 发布于湖北
  • 举报
4.7.3 HBase常用Java API及应用实例 比如,现在要获取姓名为“zhangsan”在“English”上的数据,就可以在运行上述代码时,指定参数tableName为“student”、rowKey为“zhangsan”、colFamily为“score”、col为“English”。 getData(student, zhangsan, score, English); 上述代码与如下HBase Shell命令等效: get ‘student,zhangsan,{COLUMN=score:English}” 4.7.3 HBase常用Java API及应用实例 //关闭连接 public static void close(){ try{ if(admin != null){ admin.close(); } if(null != connection){ connection.close(); } }catch (IOException e){ e.printStackTrace(); } } 关闭连接 本章小结 HBase数据库的知识。HBase数据库是BigTable的开源实现,和BigTable一样,支持大规模海量数据,分布式并发数据处理效率极高,易于扩展且支持动态伸缩,适用于廉价设备。 HBase可以支持Native Java API、HBase Shell、Thrift Gateway、REST Gateway、Pig、Hive等多种访问接口,可以根据具体应用选择访问方式。 HBase实际上就是一个稀疏、多维、持久化存储的映射表,它采用行键、列键和时间戳进行索引,每个值都是未经解释的字符串。 HBase采用分区存储,一个大的表会被分拆许多个Region,这些Region会被分发到不同的服务器上实现分布式存储。 HBase的系统架构包括客户端、Zookeeper服务器、Master主服务器、Region服务器。客户端包含访问HBase的接口;Zookeeper服务器负责提供稳定可靠的协同服务;Master主服务器主要负责表和Region的管理工作;Region服务器负责维护分配给自己的Region,并响应用户的读写请求。 HBase运行机制和编程实践的知识。 HBase逻辑模型 以表的形式存放数据 HBase物理模型 HBase是按照列存储 HBase运行时架构 * BigTable为谷歌旗下的搜索、地图、财经、打印、以及社交网站Orkut、视频共享网站YouTube和博客网站Blogger等业务提供技术支持。 * 本质上说,Bigtable是一个键值(key-value)映射。Bigtable的键有三维,分别是行键(row key)、列键(column key)和时间戳(timestamp),行键和列键都是字节串,时间戳是64位整型;而值是一个字节串。 * 行是表的第一级索引,我们可以把该行的列、时间和值看成一个整体,简化为一维键值映射。列是第二级索引,每行拥有的列是不受限制的,可以随时增加减少。为了方便管理,列被分为多个列族(column family,是访问控制的单元),一个列族里的列一般存储相同类型的数据。一行的列族很少变化,但是列族里的列可以随意添加删除。 * 时间戳是第三级索引。 * Bigtable数据库的架构,由主服务器和分服务器构成,如图1所示。如果我们把数据库看成是一张大表,那么可将其划分为许多基本的小表,这些小表就称为tablet,是bigtable中最小的处理单位了。主服务器负责将Tablet分配到Tablet服务器、检测新增和过期的Tablet服务器、平衡Tablet服务器之间的负载、GFS垃圾文件的回收、数据模式的改变(例如创建表)等。Tablet服务器负责处理数据的读写,并在Tablet规模过大时进行拆分。 Bigtable使用集群管理系统来调度任务、管理资源、监测服务器状态并处理服务器故障。 BigTable将数据存储分为两部分:最近的更新存储在内存(memtable)中,较老的更新则以SSTable的格式存储在GFS,后者是主体部分,不可变的数据结构。写操作的内容插入到memtable中,当memtable的大小达到一个阈值时就冻结,然后创建一个新的memtable,旧的就转换成一个SSTable写入GFS。 Bigtable使用分布式的锁服务Chubby来保证集群中主服务器的唯一性、保存Bigtable数据的引导区位置

文档评论(0)

1亿VIP精品文档

相关文档