一、什么是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的更多相关文章

  1. HBase笔记4(调优)

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

  2. HBase 笔记3

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

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

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

  4. Hbase笔记——RowKey设计

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

  5. HBase笔记--自定义filter

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

  6. HBase笔记--filter的使用

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

  7. HBase笔记--编程实战

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

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

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

  9. HBase笔记6 过滤器

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

随机推荐

  1. 微软职位内部推荐-Senior Software Engineer - Back End

    微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...

  2. 【Alpha】第五次Scrum meeting

    今日重大事件一览: 姓名 今日完成任务 所耗时间 刘乾 今日没有完成那个Issue..TuT第一次这么努力工作的我没有完成任务...真的是任务太坑啦. 任务完成了 60% Issue链接:https: ...

  3. Python 四种数值类型(int,long,float,complex)区别及转换

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数), 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结 ...

  4. 团队项目作业四 - WBS

    WBS 即 Work Breakdown Structure 工作分解结构, 经过我们小组的讨论,对于手机计算器APP的工作分解结构,定为以下几个方面: 1.APP框架搭建,按钮的设计,对按钮的响应等 ...

  5. Alpha冲刺第5天

    Alpha第六天 1.团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504 陈顺兴 031602505 张胜男 031602540 廖钰萍 031602323 雷光游 03160 ...

  6. OneZero第四周第三次站立会议(2016.4.13)

    1. 时间: 15:15--15:30  共计15分钟. 2. 成员: X 夏一鸣 * 组长 (博客:http://www.cnblogs.com/xiaym896/), G 郭又铭 (博客:http ...

  7. 开机自启动nginx,php-fpm

    开机自启动nginx,php-fpm(其他服务类似) centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 ...

  8. js & parseFloat & toFixed

    js & parseFloat & toFixed https://repl.it/languages/javascript https://repl.it/repls/MintyBa ...

  9. Codeforces 859D - Third Month Insanity

    题意 有 \(2^n\) 个人要进行比赛,每次 \(2i\) 与 \(2i+1\) 号人进行比赛(\(i\in [0,2^{n-1})\) ).这一轮中赢的人进入下一轮.下一轮比赛的时候把进入这一轮的 ...

  10. 题解 P1184 【高手之在一起】

    好!机会来了! 依评论区的要求,小金羊献上STLset<string>的题解. 当然不会告诉你map<string,bool>我根本不会用 所以,有什么内置的成员函数救救孩子? ...