大数据学习之Hbase shell的基本操作

lnh2017 · 2019-01-25 13:49:08 · 2265 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-01-25 13:49:08 的主题,其中的信息可能已经有所发展或是发生改变。

HBase的命令行工具,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况。安装完HBase之后,启动hadoop集群(利用hdfs存储),启动zookeeper,使用start-hbase.sh命令开启hbase服务,最后在shell中执行hbase shell就可以进入命令行界面

Habse shell的help对语法的介绍很全,hbase shell 的操作分为 10类,j本文只介绍前4类常用的,分别是:gerneral,ddl,namespace,dml

  1. Gerneral

status:查询当前服务器状态。

Version:查看当前版本

Whoami:查询当前hbase用户

Table_help:表的引用,通过获取一张表的引用来对这张表进行添加删除数据等等操作,现在不推荐使用。

  1. DDL

Create:创建一个表

###创建一个表名为oldboy,cf为列族

create 'oldboy','cf'

list:列出HBase的所有表

disable:禁用一张表

##禁用表‘oldboy’

disable ‘oldboy’

is_disabled:表是否被禁用

##验证表‘oldboy’是否被禁用

is_disabled ‘oldboy’

enable: 启用一张表

##启用表‘oldboy’

enable ‘oldboy’

is_enabled:表是否被启用

##验证表‘oldboy’是否被启用

is_enabled ‘oldboy’

describe:查看表的描述

##查看‘oldboy’表的描述信息

describe ‘oldboy’

alter:修改表的结构

##给表‘oldboy’加入一个列族‘cf1’

alter ‘oldboy’,’cf1’

exists:验证表是否存在

##验证表‘oldboy’是否存在

exists ‘oldboy’

drop:删除表,表需先禁用,然后才能删除

##删除表‘oldboy’

disable ‘oldboy’

drop ‘oldboy’

disable_all:禁用多个表

drop_all:删除多个表,表需先禁用,然后才能删除

  1. Namespace

create_namespace:创建命名空间,相当于关系型数据库里创建一个数据库

##创建一个命名空间名为‘oldboy’,并添加属性

create_namespace ‘oldboy’, {'PROPERTY_NAME'=>'PROPERTY_VALUE'}

alter_namespace:修改,添加,删除命名空间的属性

##设置命名空间oldboy的属性

alter_namespace 'oldboy', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

##删除命名空间oldboy的属性

alter_namespace 'oldboy', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}

describe_namespace:获取命名空间的描述

##获取命名空间‘oldboy’的描述信息

describe_namespace ‘oldboy’

drop_namespace:删除命名空间

##删除命名空间‘oldboy’

drop_namespace ‘oldboy’

list_namespace:查看所有命名空间

list_namespace_tables:查看命名空间下的所有表

##查看命名空间‘ns1’下的所有表

list_namespace_tables ‘ns1’

  1. DML

先在命名空间‘oldboy’(如果没有这个命名空间要先创建此命名空间)下创建一张表test,列族为‘sl’作为测试用

create ‘oldboy:test’,’sl’

put:添加cell(数据)

#向命名空间oldboy下表test的rowkey为r1的列族下添加数据

put 'oldboy:test','r1','sl:uname','zhangsan'

scan:扫描全表

scan ‘oldboy:test’

get:得到某一列或cell的数据。

##向命名空间oldboy下表test的rowkey为r1的列族下添加数据

put 'oldboy:test','r1','sl:age','25'

##获取列族sl下rowkey为r1的所有数据

get ‘oldboy:test’,’r1’

##获取列族sl下rowkey为r1,列名为uname的数据(获取一个cell)

get 'oldboy:test','r1','sl:uname'

truncate:清空表,不用disable (只是清空数据)

##清空表‘oldboy:test’

truncate ‘oldboy:test’

查看‘oldboy’下所有的表

以上为hbase shell脚本的基础操作,学习大数据过程中需掌握的知识点,在掌握hbase shell脚本的基础上学习hbase 的java api,会更加的容易!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2265 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传