HBase 笔记2

Hadoop 服务启动顺序: zookeeper -》journalnode-》namenode -> zkfc -> datanode

HBase Master WEB控制台: <Master>:60010

如果RegionServer正常启动,但是连接不上Master自己又停止,而Master/Region Server之间网络连接,端口可见性正常,多半是/etc/hosts内映射不正确或/etc/sysconfig/network内hostname设置有问题

HBase自带一个命令行工具 hbase shell

进入hbase 命令行: $HBASE_HOME/bin/hbase shell

创建表: create  'test','cf'   ====>创建表test,包含一个列族cf

查看库中有哪些表: list

查看表的属性:describe 'test'  

建新列族: alter 'test','cf2'   ====>新增列族cf2

插入数据:put 'test','row1','cf:name','jack'  向表test的行键为row1的行的cf列族下的name列插入数据,值为Jack

修改HBase保留的版本数:alter 'test',{NAME=>'cf',VERSION=>5}    ===>设置表test的cf列族保留版本数为5,默认为1(即使单元格插入多个版本数据,也只会保留最新版本)

查看数据:get 'test','row2',{COLUMN=>'cf:name',VERSION=>3}     ====>获取表test,row2行,cf列族下name列的最近3个版本数据

       get 'test','row7','cf:name'   ===》显示某个单元格的全部数据

遍历表的全部数据: scan '表名'

遍历表的部分数据:scan 'test',{STARTROW=>'row3'}   ===>显示所有rowkey大于且等于row3的数据

          scan 'test',{ENDROW=>'row4'}        ====>显示所有rowkey小于row4的数据

删除数据: delete 'test','row4','cf:name'   ====>删除表test中的row4行中的cf:name单元格数据

根据版本删除数据:delete 'test','row1','cf:name',ts    ====>删除ts版本之前的所有版本数据(包含这个版本)

    HBase删除数据并不是真正删除数据,而是放置了一个墓碑标记,导致这个版本+之前的版本都不可见

删除整行数据: deleteall 'test','row3'    ===>删除test表的row3的整行数据

查看打上墓碑标记的数据:scan 'test',{RAW=>true,VERSION=>5}  ===>查询最近的5个版本的数据,墓碑隐藏数据也显示

停用表: disable 'test'

删除表:  删除表之前需要停用表

    drop 'test'

通用命令:

查看集群状态 status 'summary'  | 'simple' | 'detailed'

查看HBase版本: version

查看当前用户: whoami 

查看表操作信息: table_help

表操作:

list  列出所有的表名

alter  更改表/列族的定义

  1)建立/修改列族

    列族属性 BLOOMFILTER  REPLICATION_SCOPE   MIN_VERSIONS COMPRESSION  TTL BLOCKSIZE IN_MEMORY IN_MEMORY_COMPACTION  BLOCKCACHE KEEP_DELETED_CELLS DATA_BLOCK_ENCODING

        CACHE_DATA_ON_WRITE CACHE_DATA_IN_L1 CACHE_BLOOMS_ON_WRITE CACHE_INDEX_ON_WRITE EVICT_BLOCKS_ON_CLOSE PREFETCH_BLOCKS_ON_OPEN ENCRYPTION ENCRYPTION_KEY IS_MOB_BYTES       

        MOB_THRESHOLD_BYTES

    格式: alter '表名',NAME=>'列族',属性名1=>属性值1,....

  2)修改/建立多个列族

    格式:alter '表名',{NAME=>'列族',属性名1=>属性值1,....},{NAME=>'列族',属性名1=>属性值1,....}

  3)删除列族:

    格式: alter '表名',‘delete’=>‘列族名’

  4)修改表级别的属性

    格式:alter '表名',属性名1=>属性值1,......

  5)设置表的配置

    格式 : alter '表名',CONFIGURATION => {'配置名' => '配置值'}

        alter '表名',{NAME=> '列族名',CONFIGURATION => {'配置名' => '配置值'}}

    例: alter 'test',{NAME=>'cf1',CONFIGURATION => {'hbase.hstore.blockingStoreFiles' => '15'}} 

  6) 删除表级别的属性

     格式:alter '表名',METHOD=>'table_att_unset',NAME=>'属性名' 

  7)同时执行多个命令

    格式:alter '表名‘,command1,command2,command3,....

create  建立新表

  格式:create '表名','列族1',’列族2‘,....

       create '表名’,{NAME=>'列族1',属性名=>属性值},{NAME=>'列族2',属性名=>属性值},....

alter_status   查看表的各个Region的更新状况

alter_async    异步更新表

   格式:alter_async '表名',参数列表

describe 输出表的描述信息

  格式:describe '表名‘   或 desc '表名'

dsiable 停用指定表

  格式:disable '表名'

disable_all   使用正则表达式来停用多个表

  格式:disable_all '正则表达式'

is_disabled  检测指定表是否被停用

  格式: is_disabled  ’表名‘

drop 删除指定表

  格式 drop '表名'

drop_all  通过正则表达式删除多个表

  格式:drop_all 正则表达式

enable 启动指定表

  格式:enable '表名'

enable_all 通过正则表达式启动指定表

  格式:enable_all '正则表达式'

is_enabled 判断表是否启用

  格式: is_enabled '表名' 

exists 判断表是否存在

  格式:exists ’表名‘

show_filters 列出所有过滤器

get_table 把表名转换成一个对象

  格式: 变量 = get_table '表名'

locate_region  定位传入的行键对应的行在哪个Region里面

  格式:locate_region '表名',’行键‘

数据操作:

scan 按照字典排序遍历表的数据

  格式:scan '表名'

            scan '表名',{COLUMNS => ['列1 ',....]}  遍历指定列

      scan ‘表名' {STARTROW => '起始行键',END_ROW =》 ’结束行键‘}

     scan '表名',{LIMIT => 行数量}  指定返回的行数量

     scan '表名',{TIMERANGE => [最小时间戳,最大时间戳]}   ===》包含最小时间戳,最大不包含

    scan '表名',{VERSIONS => 版本数}    显示多个版本值

    scan '表名',{RAW =》 true ,VERSIONS => 版本数}  显示原始单元格记录

    scan '表名',{FILTER => '过滤器'}    

get 通过行键获取某行记录

  格式: get '表名',’行键‘

count 计算表的行数

  格式: count ’表名‘

  1)指定计算步长

  格式:count '表名',INTERVAL => 行数计算步长

  2)指定缓存加速计算过程

  格式: count '表名',cache => 缓存条数

INTERVAL 和CACHE可以同时使用

delete 删除某列数据

  格式:delete ’表名‘,’行键‘,’列名‘ 【,时间戳】

deleteall 删除整行数据

  格式:deleteall ’表名‘ ,’行键‘

       deleteall '表名',’行键‘,‘列名’

       deleteall '表名',‘行键’,‘列明’,时间戳

incr  为计数器单元格的值加一,若单元格不存在则创建

  格式: incr '表名',‘行键’,‘列名’【,加减值】

put 新增记录 or 设置属性

  格式:put '表名',‘行键’,‘列名’,‘值’【,时间戳】  

     put '表名',‘行键’,‘列名’,‘值’,{‘属性名’ => ‘属性值’}
append 给某个单元格的值拼接上新的值
  格式:append '表名',‘行键’,‘列名’,‘值’    ===》单元格最新值后面会附加上新的值
truncate 清空表内的数据,但是保留表的属性
  格式:truncate '表名'
truncate_preserve  清空表内数据,但是会保留表对应的Region
  格式:truncate_preserve '表名'
get_splits  获取表对应的region个数
  格式:get_splits '表名'
 
 
工具方法:
close_region 下线指定region   ,先通过locate_region获取行键对应的region
  格式:close_region 'region名字'

通过查询hbase:meta获取某个region的信息,如服务器的标识码

unassign 下线指定的region后马上随机找一台服务器上线该region
  格式:unassign 'region 名字'【,true】
assign 上线指定region
  格式:assign ‘region名字’
move 移动一个region
  格式:move 'region名的hash值',‘服务器的标识码’
split 拆分指定的region
  格式:split ‘表名’
       split 'region名'
      split '表名‘,’切分点行键‘
     split ’region名‘,’切分点行键‘
merge_region 合并2个region为1个
  格式:merge_region 'region1的hash值',’region2的hash值‘
       merge_region 'region1的hash值',’region2的hash值‘,true  ==》强制合并
compact 调用指定表的所有的region或者指定列族的所有region的合并机制,可以合并该region或者该region的列族下所有的Hfile
  格式:compact ’表名‘【,’列族名‘】
       compact ’region名‘
      compact ’region名‘,’列族名
balancer 手动触发平衡器
  格式:balancer
balance_switch 打开或关闭平衡器
  格式:balance_switch true | false  
balancer_enabled 检测当前平衡器是否开启
  格式:balancer_enabled
catalogjanitor_run  开始运行目录管理器,所谓的目录是指hbase:meta表中存储的region信息
flush  手动触发指定表/region的刷血,将memstore内的数据持久化到磁盘,称为HFile文件
  格式:flush ’表名‘ | ’region名‘ | ’region名的hash值‘
zk_dump 打印zookeeper集群中存储的HBase集群信息
 
快照:
在表的某个时刻的结构和数据,使用快照恢复到那个时刻
snapshot 创建快照
  格式:snapshot '表名',’快照名‘【,{SKIP_FLUSH=> true}】
list_snapshots 列出所有的快照
restore_snapshot 使用快照恢复表
  格式:restore_snapshot '快照名'
clone_sanpshot 使用快照的数据创建一个表
  格式:clone_snapshot '快照名',’新表名‘
delete_snapshot  删除快照
  格式:delete_snapshot ’快照名‘
delete_all_snapshot 删除多个快照
  格式:delete_all-snapshot’正则表达式‘
 
命名空间:
list_namespace 列出所有的命名空间
list_namespace_tables 列出该命名空间下的表
  格式:list_namespace_tables '命名空间名'
create_namespace 创建命名空间
  格式:create_namespace '命名空间名'【,{’属性名‘ => '属性值'}】
describe_namespace 显示命名空间定义
  格式describe_namespace’命名空间名‘
alter_namespace 更改命名空间的属性或删除属性
  格式:alter_namespace '命名空间名',{METHOD => 'set','属性名'=> '属性值'}
     alter_namespace '命名空间名',{METHOD => 'unset',NAME => '属性名'}
drop_namespace 删除命名空间
  格式:删除之前确保命名空间内没有表
      drop_namespace '命名空间名'
 
安全:
list_security_capabilities 列出所有支持的安全特性
user_permission  列出指定用户的权限
  格式:user_permission ['表名']
grant 赋予用户权限
  READ  ’R‘  WRITE ’W‘ EXEC ’X‘ CREATE ’C‘ ADMIN ’A‘
  格式:grant ’用户‘ ,’权限表达式‘【,’表名‘】|【,’表名‘,’列族名‘】|【,’表名‘,’列族名‘,’列名‘】
revoke 取消用户权限
  格式:revoke ’用户‘ ,’权限表达式‘【,’表名‘】|【,’表名‘,’列族名‘】|【,’表名‘,’列族名‘,’列名‘】
 
 
    
 
原文地址:https://www.cnblogs.com/zy1234567/p/10311281.html