hbase shell 命令
HBase使用教程
1 基本介绍
1.1 前言
HBase – Hadoop Database,是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的 分布式存储系统 ”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。
HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
HBase是一个高 可靠 性、高性能、面向列、可伸缩的 分布式存储系统 ,利用HBase技术可在廉价PC Server上搭建起大规模 结构 化 存储 集群。
2 安装和使用
2.1 下载
HBase的官方网站http://www.apache.org/dyn/closer.cgi/hbase/上面可以下载到各种版本。目前用最新版本是0.98.2,建议下载stable目录下的稳定版本。
2.2 安装
安装依赖基础要求
1. Linux操作系统
根据HBase的官方介绍,HBase没有在windows下测试过,因而,我们都是将HBase安装在Linux操作系统上。我本机安装的Ubuntu 12.04的虚拟机。
2. Jdk
HBase需要jdk支持其运行,jdk版本要求是1.6及其以上。
这里暂且把Linux虚拟机的安装和虚拟机上jdk的安装过程跳过,可以参照网上其他相关资料执行。
HBase的安装方法比较简单,将我们下载的HBase的安装包hbase-0.94.20.tar.gz拷贝到Linux的根目录下。
接着执行以下命令和配置,之后启动HBase:
1. 解压缩安装包
root@ubuntu:/# tar xfz hbase-0.94.20.tar.gz
root@ubuntu:/# cd hbase-0.94.20
2. 配置数据存储目录
正如官方文档描述的那样,这时我们可以直接启动HBase,这样的话,使用的数据存储目录为 /tmp/hbase-${user.name},也就意味着,我们一旦重启Linux,我们先前存储的数据就将丢失。
Linux下执行以下命令:
root@ubuntu:/# cd /hbase-0.94.20/conf/
root@ubuntu:/hbase-0.94.20/conf# vi hbase-site.xml
之后,修改配置文件内容为:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///hbase_data/hbase</value>
</property>
</configuration>
3. 启动HBase
root@ubuntu:/hbase-0.94.20/conf# ../bin/start-hbase.sh
starting master, logging to/hbase-0.94.20/bin/../logs/hbase-root-master-ubuntu.out
至此,单机模式启动HBase已经完成了。HBase的停止脚本是相同目录下的stop-hbase.sh。
2.3 HBase安装模式
在上一节中我们提到,我们安装的是单机模式。单机模式表示,我们所有的服务都运行在一个JVM上,包括HBase和Zookeeper。
另外,HBase还有两种安装模式:伪分布式模式和分布式模式。
伪分布式模式是把进程运行在一台机器上,但不是一个JVM。
完全分布式模式就是把整个服务被分布在各个节点上了 。
伪分布式模式和分布式模式依赖安装较多其他组件和服务,安装过程较为复杂,将会在另一篇文章中专门介绍。
3 开始一个例子
大多数技术人员happy的时候开始了。我们开始一个简单的Helloworld。
3.1 使用HBase shell连接HBase
使用HBase自带的客户端连接工具,连接到HBase:

3.2 创建User表
输入以下命令并执行:

3.3 对User表简单地增删改查
往User表中插入一条信息:

查询刚才插入的信息:

3.4 检查数据存储目录
我们看一下之前我们配置的数据存储目录的变化:

我们可以看到,在之前配置的数据存储目录下,已经新添加了一些用于存储我们刚才存入的数据的文件了。
4 HBase基础定义和概念
4.1 表
HBase是一个数据库,数据以表的形式存储在Hbase中。
正如我们在hello world中定义中的User表类似,HBase的表的结构如下所示:
|
Row Key |
Time Stamp |
ColumnFamily contents |
ColumnFamily anchor |
|
"com.cnn.www" |
t9 |
anchor:cnnsi.com = "CNN" |
|
|
"com.cnn.www" |
t8 |
anchor:my.look.ca = "CNN.com" |
|
|
"com.cnn.www" |
t6 |
contents:html = "<html>..." |
|
|
"com.cnn.www" |
t5 |
contents:html = "<html>..." |
|
|
"com.cnn.www" |
t3 |
contents:html = "<html>..." |
4.2 行、列族、列
行以rowkey作为唯一标示。Rowkey是一段字节数组,这意味着,任何东西都可以保存进去,例如字符串、或者数字。行是按字典的排序由低到高存储在表中。
列族是列的集合。要准确表示一个列,需要“列族:列名”的方式。例如Hello world中的name列,应该被表示为“personalinfo:name”。
值得注意的是,列族被要求在创建表时指定,但列不需要,可以随时使用的时候创建。另外,一个列族的成员在文件系统上都存储在一起,因而列族中的 所有列的存取方式都是一致的。HBase的存储优化就都针对列族级别,例如,我们可以考虑将经常需要一起取出来分析的信息,都存储在一个列族上。
5 HBase常用的操作
为了方便大家开发过程中快速查询,这里分类介绍最常见的HBase命令。HBase shell中支持的所有命令,可以通过help命令来列举出来。如下所示:

这里只是截取了前部分命令,尚有部分命令不能再上图中显示。
5.1 一般命令
5.1.1 status
功能:查询服务器状态
使用:

5.1.2 version
功能:查询HBase版本信息
使用:

5.1.3 whoami
功能:查看连接的用户
使用:

5.2 DDL命令
5.2.1 Create创建表
功能:创建一个表。正如之前提到的,创建一个表时,不指定具体的列名,但要指定列族名。
使用:create ‘表名’,’列族名1’,’列族名2’

5.2.2 disable失效表
功能:失效一个表。当需要修改表结构、删除表时,需要先执行此命令。
使用:

5.2.3 enable使失效表有效
功能:使表有效。在失效表以后,需要执行此命令,以使得表可用。
使用:

5.2.4 alter修改表结构
功能:修改表结构,包括新增列族、删除列族等
使用:
新增列族(记得在执行alter之前,要先disable表)

删除列族

重命名列族
列族不能被重命名。重命名一个列族的通常途径是使用API创建一个有着期望名称的新的列族,然后将数据复制过去,最后再删除旧的列族。
5.2.5 describe查看表结构
功能:查看表结构
使用:

5.2.6 list列举数据库中的所有表
功能:查看数据库中所有的表
使用:

5.2.7 drop删除表
功能:删除指定的表
使用:

5.3 DML命令
5.3.1 put插入数据
功能:插入一条数据到指定的表中。对于同一个rowkey,如果执行两次put,则第二次被认为是更新操作。
使用:put ‘表名’,’列族名1:列名1’,’值’

5.3.2 get获取数据
功能:获取数据
使用:
获取指定rowkey的指定列族指定列的数据

获取指定rowkey的指定列族所有的数据

获取指定rowkey的所有数据

获取指定时间戳的数据

5.3.3 Count计算表的行数
功能:计算表的行数
使用:

5.3.4 put更新数据
详见5.3.1
5.3.5 scan全表扫描数据
功能:扫描全表所有数据
使用:

5.3.6 delete删除数据
功能:删除表中的数据
使用:
删除指定rowkey的指定列族的列名的数据

删除指定rowkey的指定列族的数据

5.3.7 deleteall删除整行数据
功能:删除整行数据
使用:

5.3.8 truncate删除全表数据
功能:删除表中所有的数据。正如你看到的,在HBase的help命令里并没有
使用:

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命令 描述 alter 修改列族(Column Family)模式 count 统计表中行的数量 create 创建表 ...
- 使用HBase Shell命令
使用HBase Shell命令 或 使用HBase Java API完成: 列出HBase所有的表的相关信息,例如表名: 在终端打印出指定的表的所有记录数据: 向已经创建好的表添加和删除指定的列族或列 ...
- 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 用户可以方便地创建. ...
随机推荐
- db2 性能查看top sql
DB2 V10.3 查看top sql ,类似oracle 这篇文章是对之前有篇db2 v9的简化更新,总体还是觉得DB2TOP比较好用直观,不过需要导出SQL时,或自动化脚本时,还是建议执行S ...
- 使用synchronized wait() notifyall() 实现简单的加减法同步 竞争抢答
import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.co ...
- python 文件操作: 文件操作的函数, 模式及常用操作.
1.文件操作的函数: open("文件名(路径)", mode = '模式', encoding = "字符集") 2.模式: r , w , a , r+ , ...
- 使用Jmeter(三十)针对ActiveMQ JMS POINT TO POINT压力测试(转载)
转载自 http://www.cnblogs.com/yangxia-test 准备工作 针对JMS类型的Sampler,需要额外的jar包(这里用的是apache ActiveMQ,将下载的AMQ ...
- JMeter (二十)参数化、检查点、集合点(转载)
转载自 http://www.cnblogs.com/yangxia-test 参数化:简单的来理解一下,我们录制了一个脚本,这个脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密 ...
- day21 xml模块 ATM+购物车
1. xml模块 <father name="jack"> # 属性的值必须加双引号 <son> 标签的关闭顺序,与开启顺序相反, 最先开启的最后关闭,最后 ...
- PAT1020 (已知中序,后序遍历转前序遍历)
已知后序与中序输出前序(先序):后序:3, 4, 2, 6, 5, 1(左右根)中序:3, 2, 4, 1, 6, 5(左根右) 已知一棵二叉树,输出前,中,后时我们采用递归的方式.同样也应该利用递归 ...
- 文本工具 TextUtils 字符串
常用方法: isEmpty:判断字符串是否为空值 getTrimmedLength:获取字符串去除头尾空格之后的长度 isDigitsOnly:判断字符串是否全部由数字组成 ellipsize:如果字 ...
- 写了一个兼容IE9的图片放大器(基于vue)
photoloupe 图片放大器 第一次写vue插件,本人比较喜欢用简单易懂的写法,不喜勿喷. 本插件支持IE9及以上版本,已经过验证. 本插件可根据需要设置放大倍数,最小支持1倍,支持小数 下载地址 ...
- 【python】初识python
[命名规范] 模块名:小写字母,单词之间用_分割:例如:ad_stats.py 包名:和模块名一样 类名:单词首字母大写:例如:ConfigUtil 全局变量名:大写字母,单词之间用_分割:例如:NU ...