1、介绍 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。 2、namespace HBase系统默认定义了两个缺省的namespace hbase:系统内建表,包括namespace和meta表 default:用户建表时未指定namespace的表都创建在此 创建namespace: hbase(main):010:0* create_namespace 'datamanage' 查看namespace: hbase(main):011:0> describe_namespace 'datamanage' DESCRIPTION {NAME =>'datamanage'} 列出所有namespace: hbase(main):012:0> list_namespace NAMESPACE datamanage default hbase 在namespace下创建表: hbase(main):013:0> create 'datamanage:testtable','colfam01' => Hbase::Table - datamanage:testtable 查看namespace下的表 hbase(main):015:0> list_namespace_tables 'datamanage' TABLE testtable 删除namespace: hbase(main):016:0> drop_namespace 'datamanage' ERROR: org.apache.hadoop.hbase.constraint.ConstraintException: Only empty namespaces can be removed. Namespace datamanage has 1 tables at org.apache.hadoop.hbase.master.TableNamespaceManager.remove(TableNamespaceManager.java:200) at org.apache.hadoop.hbase.master.HMaster.deleteNamespace(HMaster.java:2488) at org.apache.hadoop.hbase.master.MasterRpcServices.deleteNamespace(MasterRpcServices.java:489) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:55730) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2178) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) at java.lang.Thread.run(Thread.java:745) Here is some help for this command: Drop the named namespace. The namespace must be empty. #删除表 hbase(main):017:0> disable 'datamanage:testtable' hbase(main):018:0> drop 'datamanage:testtable' #删除datamanage命名空间 hbase(main):019:0> drop_namespace 'datamanage' import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; /** * Hbase namespace */ public class NameSpaceInHbase { public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(conf); //管理员对象 Admin admin = connection.getAdmin(); //创建命名空间 NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create("datastrom3").build(); admin.createNamespace(namespaceDescriptor); //表名 TableName tableName = TableName.valueOf("datastrom3","testtable3"); //表描述 HTableDescriptor desc = new HTableDescriptor(tableName); //列族描述datastrom HColumnDescriptor coldef = new HColumnDescriptor(Bytes.toBytes("colfam3")); //表加入列族 desc.addFamily(coldef); //创建表 admin.createTable(desc); //校验表是否可用 boolean avail = admin.isTableAvailable(tableName); System.out.println("Table available: "+avail); } } /** preHell: ======== nextShell: hbase(main):005:0> list TABLE testtable2 user 2 row(s) in 0.0070 seconds java output: ===== Table available: true shell: ===== hbase(main):022:0> list TABLE datastrom3:testtable3 ... **/
在工作中的应用:
1 创建命名空间 create_namespace 'evalu' 2 创建HBASE表时带上空间: create 'evalu:evaluation_person_stat',{NAME =>'cf',DATA_BLOCK_ENCODING => 'PREFIX_TREE', BLOOMFILTER => 'ROW', VERSIONS => '3', COMPRESSION => 'snappy', BLOCKSIZE => '32768'},{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}
相关推荐
命名空间在HBase中用于逻辑上组织表,类似于关系型数据库中的数据库。命名空间管理可以帮助更好地管理和隔离资源。以下是关于命名空间的基本操作: 1. **列出所有命名空间**: 使用`list_namespace`命令可以查看...
- HBase在HDFS上的目录结构有特定的命名规则,用于存放Region数据。 5. **整体结构** - 包括Client、Zookeeper集群、HBase Master、Region Server集群以及HDFS。 以上就是关于HBase的基础知识,包括其特点、核心...
在HBase中,命名空间(namespace)相当于关系型数据库系统中的逻辑分组,用于表的逻辑分组,同一命名空间中的表具有相似的用途。在HBase中,默认有系统内置的预定义命名空间,即hbase命名空间和default命名空间。hbase...
### HBase基本数据操作详解 ...通过上述详细介绍,我们了解了HBase中命名空间、表创建以及基本数据操作(Put、Delete、Get和Scan)的核心概念和实现细节。这些知识对于理解和操作HBase数据库至关重要。
- **HBase的命名空间(Namespace)**,类似数据库中的数据库,用于对表进行逻辑分组。 - **HBase表的设计**,包括行键设计、列族数量、数据版本、支持的数据类型等。 - **HBase的ACID特性**,在NoSQL领域中,HBase...
命名空间管理命令包括`alter_namespace`、`create_namespace`、`describe_namespace`、`drop_namespace`、`list_namespace`和`list_namespace_tables`。通过这些命令可以对HBase命名空间进行创建、修改、删除和查询...
- **Namespace**(命名空间):类似于数据库的概念,用于组织表的逻辑分组。 - **Table**(表):HBase中的基本数据存储单元。 - **Row**(行):由行键标识的一组列族组成的记录。 - **Column Family**(列族)...
这一部分强调了HBase的三大核心组件:命名空间(Namespace)、表(Table)和列族(ColumnFamily)。它会详细解释HBase中的行(Row)、单元格(Cell)以及如何进行数据模型操作,如版本控制、排序顺序和列元数据管理...
- **初始化HBase表空间**:通过`create_namespace.sh`脚本创建命名空间。 - **启动HBase集群**:使用`start-hbase.sh`脚本启动HBase服务。 #### 七、注意事项 - 在整个部署过程中,需保持各节点之间的时间同步,...
6. 命名空间(Namespace) 命名空间在HBase中是用来分隔不同表的,可以将不同的应用数据隔离到不同的命名空间中,从而避免命名冲突。 7. 版本(Versions) HBase支持同*单元格存储多个版本的数据。每个版本的数据都...
Namespace用于定义命名空间,Include用于引入其他IDL文件,而Definition用于定义Thrift接口。 六、Thrift Types Thrift Types用于定义Thrift数据类型。HBase使用Thrift Types定义了其Thrift数据类型,包括基本类型...
它为每个租户提供了一个独立的命名空间,从而保护了数据安全。 监控和告警对于维持一个健康稳定的服务至关重要。在HBase中,通过为每个RegionServer Group设定不同的监控和告警策略,管理员可以对各个租户的性能...
##### 4.1 Namespace (命名空间) - **定义**:命名空间类似于关系型数据库中的Database概念,用于组织和管理表。 - **自带命名空间**:HBase默认提供了两个命名空间,`hbase`和`default`。`hbase`命名空间中包含了...
HBase的数据模型包括命名空间(Namespace)、表(Table)、行(Row)、列族(ColumnFamily)、列(ColumnQualifier)、时间戳(Timestamp)和单元格(Cell)。 - 命名空间类似于数据库,可以将相关的表组织在一起。...
用户可以基于用户或用户组进行权限分配,而权限的优先级从大到小排序为:global(全局)>namespace(命名空间)>table(表)>family(列族)>qualifier(列限定符)。 2. RPC层的安全认证:主要的实现是kerberos...
1. 命名空间(Namespace):类似于数据库的逻辑分组,用于管理多个表。 2. 表(Table):由行键和列族组成,是数据存储的基本单位。 3. 行键(Rowkey):每个表的唯一标识,用于确定数据的位置。 4. 列族(Column ...
四、命名空间 (Namespace) * 命名空间是数据库名 + 集合名 * 在 Collection 中,命名空间是一个集合的完整名 五、MongoDB 中的对象属性删除 * 如果用户移除对象的属性,那么该属性将从存储层中删除 * 对象会重新...
- **Namespace**:文件系统的命名空间,包含文件和目录的元数据信息。 - **Shell**:提供了一系列命令行工具,用于与HDFS进行交互。 - **Fsimage & EditLog**:NameNode使用这两个文件来维护元数据信息的持久化。`...
- **NameSpace**: 命名空间。 - **Table**: 表。 - **Row**: 行。 - **Column**: 列。 - **TimeStamp**: 时间戳。 - **Cell**: 存储单元。 - **基本架构** - **Client**: 客户端。 - **ZooKeeper**: 配置...
(1)对于整个集群有单一的命名空间。 (2)数据一致性。适合一次写入多次读取的模型。客户端在文件没有被成功创建之前是无法看到文件存在。 (3)文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,...