《HBase权威指南》读书笔记5:第五章 客户端API: 管理功能

来源:互联网 时间:1970-01-01


类似传统数据库中的DDL 和 DML

模式定义

表描述符 HTableDescriptor

Writable 和无参数的构造函数

大部分类都有一个无参数的构造函数,这些类都实现了Hadoop 的 Writable接口。任意不相交系统间的远程通信:例如客户端与服务端或者服务端之间彼此通信,都使用了Hadoop RPC框架。框架中需要远程方法的参数都实现 Writable接口,进而能够序列化对象并进行传输。writable接口有两个实现方法
  • void write(DataOutput out)
  • void readFields(Datainput in)
数据接收服务器先读取元数据信息,并创建类的无参数实例,然后调用readFields方法将字节流中的信息读取到对应对象的字段中。所以如果用户开发并扩展了HBase的基础实现,例如,过滤器和协处理器,则必须
  • 在RPC两端都必须可用
  • 实现writable接口
  • 拥有无参数的构造函数
没有任何参数的构造函数仅仅是为了反序列化,并且不应该被直接使用

列族

HTableDescriptor 虽然名字叫 HTable但是其实是针对列族的

压缩

HBase支持插件式的压缩算法,这个功能允许用户选择合适的压缩算法支持的压缩算法NONE不压缩(默认)GZ使用Java提供的或者本地库的 GZIPLZO启用LZO压缩,需要安装LZO的类库 SNAPPY启用SNAPPY压缩,需要独立安装
算法描述
压缩类型是 Compression.Algorithm枚举
压缩分为 一般压缩 和 合并压缩

块大小

默认为64KB列族的块,或者说HFile的块不同HDFS层面的块。HDFS中的块默认是64MB, HBase中的HFile的块大小默认是64KB

in-memory

默认为false。如果为true,则块数据会以较高优先级被加载到内存中 ,除非堆压力大,这个时候才会强制从内存卸载这部分数据这个参数非常适合数据量小的列族,例如,保存登录账号和密码的用户表

布隆过滤器

是HBase中的高级功能,能够减少特定访问模式下的查询时间,但是由于这种模式增加了内存和存储的负担,这个模式默认为关闭。

复制范围

复制(replication)提供了跨集群的同步的功能。replication scope默认为0,意味着是关闭的。setScope(1)可以开启该功能

HBaseAdmin

  • HBaseAdmin实例的生命周期不宜太长。
  • getMaster() 可以获取HMasterInterface 接口的RPC代理实例。除非用户确定自身的调用时安全的,否则不要显式调用 getMaster。
  • 另一种高级建表的方式是 伴随建表操作进行预分区
  • createTableAsync 是异步建表命令
关于异步命令:其实大多数命令都是异步的,同步的命令也只是对异步模式的封装,增加了不断检查这个任务是否已经完成的循环操作,例如 createTable 方法其实包装了 createTableAsync

集群管理

  • checkHBaseAvailable(conf) 可以验证客户端能否与远程HBase集群进行通信
  • flush(tableNameOrRegionName) 可以在memstore 达到 memstore flush size 之前显示的让数据flush到磁盘上
  • compact   让表或者region合并
  • majorCompact  会迭代这张表的所有region,并顺序调用合并操作
  • split 可以提供 splitPoint 进行制定键的拆分
  • assign  和 unassign 可以控制region的上线和下线
  • move 可以移动region
  • balanceSwitch 可以控制是否开启负载均衡算法
  • balancer 主动运行负载均衡
  • shutdown stopMaster stopRegionServer 可以关闭集群,master,某个region server




相关阅读:
Top