HBase 笔记2

时间:2022-08-31 23:41:22

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,....

HBase 笔记2

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 笔记2

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

HBase 笔记2

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 ’用户‘ ,’权限表达式‘【,’表名‘】|【,’表名‘,’列族名‘】|【,’表名‘,’列族名‘,’列名‘】
 
 
    
 

HBase 笔记2的更多相关文章

  1. HBase笔记:对HBase原理的简单理解

    早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...

  2. Hbase笔记——RowKey设计

    一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...

  3. HBase笔记--自定义filter

    自定义filter需要继承的类:FilterBase 类里面的方法调用顺序   方法名 作用 1 boolean filterRowKey(Cell cell) 根据row key过滤row.如果需要 ...

  4. HBase笔记--filter的使用

    HBASE过滤器介绍: 所有的过滤器都在服务端生效,叫做谓语下推(predicate push down),这样可以保证被过滤掉的数据不会被传送到客户端. 注意:        基于字符串的比较器,如 ...

  5. HBase笔记--编程实战

    HBase总结:http://blog.csdn.net/lifuxiangcaohui/article/details/39997205  (very good) Spark使用Java读取hbas ...

  6. HBase笔记--安装及启动过程中的问题

    1.使用hbase shell的时候运行命令执行失败 例如:在shell下执行 status,失败. 可能的原因:节点之间的时间差距过大 解决方法调整两个节点的时间,使二者一致,这里用了个比较笨的方法 ...

  7. HBase笔记6 过滤器

    过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器 ...

  8. HBase笔记5(诊断)

    阻塞急救: RegionServer内存设置太小: 解决方案: 设置Region Server的内存要在conf/hbase-env.sh中添加export HBASE_REGIONSERVER_OP ...

  9. HBase笔记4(调优)

    Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修 ...

  10. HBase 笔记3

    数据模型 Namespace 表命名空间: 多个表分到一个组进行统一的管理,需要用到表命名空间 表命名空间主要是对表分组,对不同组进行不同环境设定,如配额管理  安全管理 保留表空间: HBase中有 ...

随机推荐

  1. 根目录97 &lt&semi;input file&gt&semi;标签,把图片上传到服务器(跟增删改查一起实现)

    首先来个简单的html页面: enctype="multipart/form-data" encoding="multipart/form-data" acti ...

  2. unix环境高级编程基础知识之第四章

    1.从当前用户转到root用户:直接输入su命令,然后输入root密码,如果之前没有设置root命令密码会登陆不成功,这里需要命令sudo passwd命令设置密码,然后按照上面输入就成:从root命 ...

  3. C语言动态存储分配

    动态存储分配 C语言支持动态存储分配,即在程序执行期间分配内存单元的能力,利用动态存储分配,可以根据需要设计扩大(或缩小)的数据结构,虽然可以适用于所有类型的数据,但是动态存储分配更常用于字符串.数组 ...

  4. Children’s Queue HDU 1297 递推&plus;大数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题 ...

  5. sublime安装AngularJS插件

    sublime能够支持AngularJS开发那绝对是一件很爽的事情.下面我一步步讲解如何为sublime安装AngularJS插件. 1.添加控制包站点 根据你安装sublime 版本不同,在控制台写 ...

  6. 服务部署到Swarm Cluster中

    对于已存在的镜像,将其部署到服务器中并开始对外服务,便是它的职责,而我们要做的便是帮助它完成职责,前两个应用环节都已产生了相应的镜像,在这一环节,将完成服务部署到容器集群的工作,对于这一过程,实际执行 ...

  7. 用markdown &plus; html写一封简历

    0. 前言 1. 阶段1 - 确定需要几个模块 2. 阶段2 - 使用纯文字填充简历 3. 阶段3 - 预留空格 4. 阶段4 - 文章垂直方向的调整 5. 阶段5 - 居中对齐 6. 阶段6 - 加 ...

  8. 解析SQL Server之任务调度

    在前面两篇文章中( 浅谈SQL Server内部运行机制 and 浅谈SQL Server数据内部表现形式 ),我们交流了一些关于SQL Server的一些术语,SQL Sever引擎 与SSMS抽象 ...

  9. input标签之外是否一定添加form标签

    原文转载自:https://blog.csdn.net/lamanchas/article/details/78753031 input标签外是否添加form标签需要按情形区分:应用场景的区别:1.所 ...

  10. Linux中sudo的用法

    一.用户在/etc/sudoers文件中的写法语法规则:授权用户 主机=命令动作 这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用括号括起来,如果不需要密码直接运行 ...