Hbase的namespace命令操作
一、什么是namespace
在RDBMS中有database的概念,用来对table进行分组,那么在HBase中当表比较多的时候如何对表分组呢,就是namespace,可以简单的把namespace理解为RDBMS中的database。
二、namespace相关操作
内置的namespace
HBase有两个内置的namespace:
hbase(main):009:0> list_namespace
NAMESPACE
default
hbase
2 row(s)
Took 0.0683 seconds
hbase:用来存放系统相关的一些元数据等,相当于mysql中的mysql数据库:
hbase(main):025:0> list_namespace_tables "hbase""
TABLE
meta
namespace
2 row(s)
Took 0.0174 seconds
=> ["meta", "namespace"]
default:创建表时未指定命名空间的话默认挂在default下。
创建namespace
创建namespace:
hbase(main):010:0> create_namespace "test"
Took 0.2781 seconds
在创建namespace的时候还可以添加一些说明信息:
hbase(main):018:0> create_namespace "test002", {"author"=>"CC11001100", "create_time"=>"2018-11-4 17:51:53"}
Took 0.2262 seconds
查看namespace信息
上面创建namespace时添加了一些附加信息,如何查看这些附加信息呢:
hbase(main):019:0> describe_namespace "test002""
DESCRIPTION
{NAME => 'test002', author => 'CC11001100', create_time => '2018-11-4 17:51:53'}
Took 0.0042 seconds
=> 1
修改namespace
查看附加信息发现作者写错了,需要修改:
hbase(main):014:0> alter_namespace "test002", {METHOD=>"set", "author"=>"ChenEr"}
Took 0.2458 seconds
hbase(main):015:0> describe_namespace "test002"
DESCRIPTION
{NAME => 'test002', author => 'ChenEr', create_time => '2018-11-4 17:51:53'}
Took 0.0056 seconds
=> 1
改完发现还漏了一项,需要追加自己的联系方式:
hbase(main):016:0> alter_namespace "test002", {METHOD=>"set", "email"=>"CC11001100@qq.com"}
Took 0.2313 seconds
hbase(main):017:0> describe_namespace "test002"
DESCRIPTION
{NAME => 'test002', author => 'ChenEr', create_time => '2018-11-4 17:51:53', email => 'CC11001100@qq.com'}
Took 0.0038 seconds
=> 1
想了下放上去自己的联系方式搞不好会被不断骚扰,还是去掉此项属性:
hbase(main):010:0> alter_namespace "test002", {METHOD=>"unset", NAME=>"email"}
Took 0.2419 seconds
hbase(main):011:0> describe_namespace "test002"
DESCRIPTION
{NAME => 'test002', author => 'ChenEr', create_time => '2018-11-4 17:51:53'}
Took 0.0056 seconds
=> 1
总结:
添加或修改属性:
alter_namespace 'ns1', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
删除属性:
alter_namespace 'ns1', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}
查看已创建的所有namespace
查看当前已经创建的namespace,相当于RDBMS中的show databases:
hbase(main):019:0> list_namespace
NAMESPACE
default
hbase
test
test002
4 row(s)
Took 0.0122 seconds
删除namespace
删除namespace:
hbase(main):019:0> list_namespace
NAMESPACE
default
hbase
test
test002
4 row(s)
Took 0.0122 seconds
hbase(main):020:0> drop_namespace "test002"
Took 0.2321 seconds
hbase(main):021:0> list_namespace
NAMESPACE
default
hbase
test
3 row(s)
Took 0.0111 seconds
注意要删除的namespace必须是空的,其下没有表,否则会删除失败:
hbase(main):051:0> create_namespace "test_drop_namespace"
Took 0.2376 seconds
hbase(main):052:0> create "test_drop_namespace:t1", "cf1"
Created table test_drop_namespace:t1
Took 2.2312 seconds
=> Hbase::Table - test_drop_namespace:t1
hbase(main):053:0> drop_namespace "test_drop_namespace" ERROR: org.apache.hadoop.hbase.constraint.ConstraintException: Only empty namespaces can be removed. Namespace test_drop_namespace has 1 tables
at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.prepareDelete(DeleteNamespaceProcedure.java:217)
at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.executeFromState(DeleteNamespaceProcedure.java:78)
at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.executeFromState(DeleteNamespaceProcedure.java:45)
at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:189)
at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:850)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1473)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1241)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$800(ProcedureExecutor.java:75)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1761) For usage try 'help "drop_namespace"' Took 0.1217 seconds
hbase(main):054:0> disable "test_drop_namespace:t1"
Took 0.4357 seconds
hbase(main):055:0> drop "test_drop_namespace:t1"
Took 0.2351 seconds
hbase(main):056:0> drop_namespace "test_drop_namespace"
Took 0.2172 seconds
创建表时指定namespace
创建表时指定表所在的namespace,使用namespace-name:tale-name的格式指定:
hbase(main):022:0> create "test:user", "userInfo"
Created table test:user
Took 2.3992 seconds
=> Hbase::Table - test:user
查看namespace下的表
查看namespace下都有哪些表:
hbase(main):024:0> list_namespace_tables "test"
TABLE
user
1 row(s)
Took 0.0252 seconds
=> ["user"]
Hbase的namespace命令操作的更多相关文章
- hbase学习一 shell命令操作
基本操作: #命名空间级别: #列出所有命名空间 hbase> list_namespace #新建命名空间 hbase> create_namespace 'ns1' #删除命名空间 h ...
- HBase(四)HBase集群Shell操作
一.进入HBase命令行 在你安装的随意台服务器节点上,执行命令:hbase shell,会进入到你的 hbase shell 客 户端 [admin@node21 ~]$ hbase shell S ...
- HBase基本shell命令
HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...
- Hbase快速开始——shell操作
一. 介绍 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...
- (转)Hbase shell 常用命令(1)
Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...
- HBase的Shell命令
1.HBase提供了一个shell的终端给用户交互 2.HBase Shell的DDL操作 (1)先进入HBase的 Shell命令行,即HBASE_HOME/bin/hbase shell …… & ...
- Hbase理论&&hbase shell&&python操作hbase&&python通过mapreduce操作hbase
一.Hbase搭建: 二.理论知识介绍: 1Hbase介绍: Hbase是分布式.面向列的开源数据库(其实准确的说是面向列族).HDFS为Hbase提供可靠的底层数据存储服务,MapReduce为Hb ...
- Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误
1:Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误,是因为jar包冲突了,所以对于和hadoop的jar包冲 ...
- docker镜像、容器以及命令操作
docker image docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7 docker image是 ...
随机推荐
- 不难懂------适配移动端flexible
基于 vue-cli 配置手淘的 lib-flexible + rem,实现移动端自适应 安装 flexible npm install lib-flexible --save 引入 flexible ...
- 【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found -- The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
问题描述 使用NodeJS的后端应用,开发一个Mobile App的服务端,手机端通过REST API来访问获取后端数据.在本地编译好后,通过npm start启动项目,访问效果如下: 但是,当把项目 ...
- 3. hive 常用函数
常用日期函数 1.返回当前或指定时间的时间戳 select unix_timestamp();select unix_timestamp("2020-10-28",'yyyy-MM ...
- 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1
注意 请贡献者查看参与方式,然后直接在 ISSUE 中认领. 翻译/校对三个文档就可以申请当负责人,我们会把你拉进合伙人群.翻译/校对五个文档的贡献者,可以申请实习证明. 请私聊片刻(52981514 ...
- bind方法源码
'use strict'; module.exports = function bind(fn, thisArg) { return function wrap() { var args = new ...
- Charles中文乱码解决
n在VMOptions中加一项:-Dfile.encoding=UTF-8
- MySQL索引类型一览 让MySQL高效运行起来(转)
转自:http://www.php100.com/html/webkaifa/database/Mysql/2010/0409/4279.html 索引是快速搜索的关键.MySQL索引的建立对于MyS ...
- 4G无线全网通太阳能水文设备电源监测系统BMS110
钡铼技术BMS110模块可实现4路电池电压.2路模拟量.2路数字量和1路温度测量,支持Modbus RTU over TCP和MQTT通讯协议,DC9-36V电源供电.BMS110可应用于各种有使用蓄 ...
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- React Native纯干货总结
随着项目也渐渐到了尾声,之前的项目是mobile开发,采用的是React Native.为即将要开始做RN项目或者已经做过的小伙伴可以参考借鉴,也顺便自己做一下之前项目的总结. 文章比较长,可以选择自 ...