第六章 hbase shell 命令
| hbase shell命令 | 描述 |
| alter | 修改列族(Column Family)模式 |
| count | 统计表中行的数量 |
| create | 创建表 |
| describe | 显示表相关的详细信息 |
| delete | 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) |
| deleteall | 删除指定行的所有元素值 |
| disable | 使表无效 |
| drop | 删除表 |
| enable | 使表有效 |
| exists | 测试表是否存在 |
| exit | 退出hbase shell |
| get | 获取行或单元(cell)的值 |
| incr | 增加指定表,行或列的值 |
| list | 列出hbase中存在的所有表 |
| put | 向指向的表单元添加值 |
| tools | 列出hbase所支持的工具 |
| scan | 通过对表的扫描来获取对用的值 |
| status | 返回hbase集群的状态信息 |
| shutdown | 关闭hbase集群(与exit不同) |
| truncate | 重新创建指定表 |
| version | 返回hbase版本信息 |
需要注意shutdown与exit之间的不同:shutdown表示关闭hbase服务,必须重新启动hbase才可以恢复,exit只是退出hbase shell,退出之后完全可以重新进入。
hbase使用坐标来定位表中的数据,行健是第一个坐标,下一个是列族。
hbase是一个在线系统,和hadoop mapreduce的紧密结合又赋予它离线访问的功能。
hbase接到命令后存下变化信息或者写入失败异常的抛出,默认情况下。执行写入时会写到两个地方:预写式日志(write-ahead log,也称hlog)和memStore,以保证数据持久化。memStore是内存里的写入缓冲区。客户端在写的过程中不会与底层的HFile直接交互,当menStore写满时,会刷新到硬盘,生成一个新的HFile.HFile是hbase使用的底层存储格式。menStore的大小由hbase-site.xml文件里的系统级属性hbase.hregion.memstore.flush.size来定义。
hbase在读操作上使用了LRU缓存机制(BlockCache),BlockCache设计用来保存从HFile里读入内存的频繁访问的数据,避免硬盘读。每个列族都有自己的BlockCache。BlockCache中的Block是hbase从硬盘完成一次读取的数据单位。Block是建立索引的最小数据单位,也是从硬盘读取的最小数据单位。如果主要用于随机查询,小一点的block会好一些,但是会导致索引变大,消耗更多内存,如果主要执行顺序扫描,大一点的block会好一些,block变大索引项变小,因此节省内存。

数据模型概括:
表(table)---------hbase用表来组织数据。表名是字符串(String),由可以在文件系统路径里使用的字符组成。
行(row)---------在表里,数据按行存储。行由行健(rowkey)唯一标识。行健没有数据类型,总是视为字节数组byte[].
列族(column family)-----------行里的数据按照列族分组,列族也影响到hbase数据的物理存放。因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里存储数据。列族名字是字符串,由可以在文件系统路径里使用的字符组成。
列限定符(column qualifier)--------列族里的数据通过列限定符或列来定位。列限定符不必事前定义。列限定符不必在不同行之间保持一致,就像行健一样,列限定符没有数据类型,总是视为字节数组byte[].
单元(cell)-------行健,列族和列限定符一起确定一个单元。存储在单元里的数据称为单元值(value),值也没有数据类型,总是视为字节数组byte[].
时间版本(version)--------单元值有时间版本,时间版本用时间戳标识,是一个long。没有指定时间版本时,当前时间戳作为操作的基本。hbase保留单元值时间版本的数量基于列族进行配置。默认数量是3个。
hbase在表里存储数据使用的是四维坐标系统,依次是:行健,列族,列限定符和时间版本。 hbase按照时间戳降序排列各时间版本,其他映射建按照升序排序。
hbase把数据存放在一个提供单一命名空间的分布式文件系统上。一张表由多个小一点的region组成,托管region的服务器叫做regionserver.单个region大小由配置参数hbase.hregion.max.filesize决定,当一个region大小变得大于该值时,会切分成2个region.
hbase是一种搭建在hadoop上的数据库。依靠hadoop来实现数据访问和数据可靠性。hbase是一种以低延迟为目标的在线系统,而hadoop是一种为吞吐量优化的离线系统。互补可以搭建水平扩展的数据应用。
hbase表设计:
hbase表很灵活,可以用字符数组形式存储任何东西。在同一列族里存储相似访问模式的所有东西。
索引建立在keyvalue对象的key部分上,key由行健,列限定符和时间戳按次序组成。高表可能支持你把运算复杂度降到O(1),但是要在原子性上付出代价。
hbase不支持跨行事务,列限定符可以用来存储数据,列族名字的长度影响了通过网络传回客户端的数据大小(在keyvalue对象里),所以尽量简练。
散列支持定长键和更好的数据分布,但是失去排序的好处。设计hbase模式时进行反规范化处理是一种可行的办法。从性能观点看,规范化为写做优化,而反规范化为读做优化。
1.创建表,其中users是表名,info是users的列族。hbase中的表至少有一个列族.它们之中,列族直接影响hbase数据存储的物理特性。
hbase(main):011:0>create 'users','info'
0 row(s) in 1.2210seconds
2.获得表的描述.通过list可以列出所有已创建的表
hbase(main):012:0>list
TABLE
users
1 row(s) in 0.0160seconds
3.使用describe命令可以看到这个表的所有默认参数
hbase(main):006:0>describe 'users'
DESCRIPTION ENABLED
{NAME => 'users', FAMILIES => [{NAME=> 'address', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', true
VERSIONS => '3', COMPRESSION => 'NONE',TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'fa
lse', BLOCKCACHE => 'true'}, {NAME =>'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSI
ONS => '3', COMPRESSION => 'NONE', TTL=> '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false',
BLOCKCACHE => 'true'}]}
1 row(s) in 0.0230seconds
第六章 hbase shell 命令的更多相关文章
- Hbase Shell命令
1 启动HBase shell 2 HBase shell 命令 3 我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法. 这里 grad 对于表来说是一个列,course ...
- HBase shell 命令介绍
HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...
- HBASE SHELL 命令使用
HBASE SHELL命令的使用 在hbase shell客户端有许多的操作命令,今天回顾并且总结一二,希望和广大读者共同进步,并且悉心聆听你们的意见.在此的hbase版本是:HBase 1.2.0- ...
- HBase shell 命令。
HBase shell 命令. 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证( ...
- 使用HBase Shell命令
使用HBase Shell命令 或 使用HBase Java API完成: 列出HBase所有的表的相关信息,例如表名: 在终端打印出指定的表的所有记录数据: 向已经创建好的表添加和删除指定的列族或列 ...
- hbase shell 命令
HBase使用教程 时间 2014-06-01 20:02:18 IT社区推荐资讯 原文 http://itindex.net/detail/49825-hbase 主题 HBase 1 基 ...
- Hbase记录-shell脚本嵌入hbase shell命令
第一种方式:hbase shell test.txt test.txt:list 第二种方式:<<EOF重定向输入 我们经常在shell脚本程序中用<<EOF重定向输入,将我们 ...
- Hbase Shell命令详解+API操作
HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...
- 关于HBase Shell命令基本操作示例
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...
随机推荐
- 使用LeakCanary进行内存泄漏追踪
LeakCanary使用 1.在build.gradle 中 dependencies { //添加 debugCompile 'com.squareup.leakcanary:lea ...
- 20165202 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:贾海粟 学号:20165202 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:15:3 ...
- ThinkPHP5.0完全开发手册.【CHM】下载
ThinkPHP5已经出来很长时间了,官网也没有提供CHM格式的手册下载只有PDF格式的,我根据官网的在线手册制作了一个离线版的ThinkPHP5.0完全开发手册.CHM格式的文档.
- 启动Windows防火墙提示“0x8007042c"
win8.1 启动防火墙是报错:启动Windows防火墙提示“0x8007042c" 一.检查服务 1,右击开始->运行->输入“services.msc” 打开服务 在框中找到 ...
- 【转】DirectUI 资源提取器
转自 http://www.cnblogs.com/Alberl/p/3378413.html 二.DirectUI 资源提取器 由于不能用传统工具,那么怎么办呢?可能有很多网友都知道QQ ...
- d3.js(v5.7)的比例尺以及坐标轴
直接上代码了,这里的一些函数用的是之前我自己封装的函数(包括attr的obj支持和节点数量和数据数量的自动匹配),若有不明白的,可以查看之前的博客: 页面的效果如下: 接下来继续添加坐标轴: 最终:
- Java 7 新特性try-with-resources语句
1.什么是try-with-resources语句 try-with-resources 语句是一个声明一个或多个资源的 try 语句.一个资源作为一个对象,必须在程序结束之后随之关闭. try-wi ...
- Notes on UE4-Blender workflow
In UE4: When you import a rigged model (mesh parents armature) to UE4, it will be converted to a Ske ...
- JVM原理一
简述: 这个其实不是很重要,一般配好环境就好了,如果不对jvm做啥动作不需要搞清楚这个. JVM ---->< JVM.DLL 挂接到JNIENV的实例 JAVA程序和操作系统的一个沟通者 ...
- Percona Xtrabackup 安装
1.安装Percona Xtrabackup YUM Repository --安装repository [root@manager ~]# yum install https://www.perco ...