• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > HBase基本数据操作详解,HBase数据操作详解

HBase基本数据操作详解,HBase数据操作详解

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hbase详解,hbase配置详解,hbase基本命令,hbase 基本操作,hbase数据模型等服务器相关知识,网友希望可以进行参考

HBase基本数据操作详解,HBase数据操作详解


引言 本文档参考最新(截止2014年7月16日)的官方Ref Guide、Developer API编写。 所有代码均基于“hbase 0.96.2-hadoop2”版本编写,均实测通过。
概述 对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间。 对于数据操作,HBase支持四类主要的数据操作,分别是:
  • Put:增加一行,修改一行;
  • Delete:删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等;
  • Get:获取指定行的所有信息,获取指定行和指定列族的所有colunm,获取指定column,获取指定column的几个版本,获取指定column的指定版本等;
  • Scan:获取所有行,获取指定行键范围的行,获取从某行开始的几行,获取满足过滤条件的行等。
这四个类都是org.apache.hadoop.hbase.client的子类,可以到官网API去查看详细信息,本文仅总结常用方法,力争让读者用20%的时间掌握80%的常用功能。
目录 1.命名空间Namespace 2.创建表 3.删除表 4.修改表 5.新增、更新数据Put 6.删除数据Delete 7.获取单行Get 8.获取多行Scan
1. 命名空间Namespace
在关系数据库系统中,命名空间namespace指的是一个表的逻辑分组,同一组中的表有类似的用途。命名空间的概念为即将到来的多租户特性打下基础:
  • 配额管理(Quota Management (HBASE-8410)):限制一个namespace可以使用的资源,资源包括region和table等;
  • 命名空间安全管理(Namespace Security Administration (HBASE-9206)):提供了另一个层面的多租户安全管理;
  • Region服务器组(Region server groups (HBASE-6721)):一个命名空间或一张表,可以被固定到一组regionservers上,从而保证了数据隔离性。

1.1.命名空间管理 命名空间可以被创建、移除、修改。 表和命名空间的隶属关系在在创建表时决定,通过以下格式指定: <namespace>:<table>

Example:hbase shell中创建命名空间、创建命名空间中的表、移除命名空间、修改命名空间
<span style="background-color: rgb(238, 238, 238);">#Create a namespace
</span><strong><span style="color: rgb(255, 0, 0); background-color: rgb(255, 255, 0);">create_namespace</span></strong><span style="background-color: rgb(238, 238, 238);"> 'my_ns'
            </span>
<span style="background-color: rgb(238, 238, 238);">#create my_table in my_ns namespace
create </span><span style="background-color: rgb(255, 255, 0);">'<span style="color: rgb(255, 0, 0);"><strong>my_ns:</strong></span></span><span style="background-color: rgb(238, 238, 238);">my_table', 'fam'
          </span>
<span style="background-color: rgb(238, 238, 238);">#drop namespace
</span><strong><span style="color: rgb(255, 0, 0); background-color: rgb(255, 255, 0);">drop_namespace</span></strong><span style="background-color: rgb(238, 238, 238);"> 'my_ns'
          </span>
<span style="background-color: rgb(238, 238, 238);">#alter namespace
</span><strong><span style="color: rgb(255, 0, 0); background-color: rgb(255, 255, 0);">alter_namespace</span></strong><span style="background-color: rgb(238, 238, 238);"> 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
        </span>

1.2. 预定义的命名空间 有两个系统内置的预定义命名空间:
  • hbase:系统命名空间,用于包含hbase的内部表
  • default:所有未指定命名空间的表都自动进入该命名空间
Example:指定命名空间和默认命名空间
#namespace=foo and table qualifier=bar
create 'foo:bar', 'fam'

#namespace=default and table qualifier=bar
create 'bar', 'fam'

2.创建表 废话不多说,直接上样板代码,代码后再说明注意事项和知识点:
        Configuration conf = HBaseConfiguration.create();         HBaseAdmin admin = new HBaseAdmin(conf);         //create namespace named "my_ns"         admin.createNamespace(NamespaceDescriptor.create("my_ns").build());                  //create tableDesc, with namespace name "my_ns" and table name "mytable"         HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf("my_ns:mytable"));         tableDesc.setDurability(Durability.SYNC_WAL);
        //add a column family "mycf"         HColumnDescriptor hcd = new HColumnDescriptor("mycf");         tableDesc.addFamily(hcd);         admin.createTable(tableDesc);         admin.close();  

关键知识点:
3.删除表 删除表没创建表那么多学问,直接上代码:         Configuration conf = HBaseConfiguration.create();         HBaseAdmin admin = new HBaseAdmin(conf);         String tablename = "my_ns:mytable";         if(admin.tableExists(tablename)) {             try {                 admin.disableTable(tablename);  &nb
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • HBase基本数据操作详解,HBase数据操作详解
  • HBase RegionServer详解(未完),hbaseregionserver
  • Hbase详解—–管理 Splitting,hbase详解splitting

相关文章

  • 《转》ceilometer的数据采集机制入门,《转》ceilometer
  • NOSQL(五)版本戳,nosql版本戳
  • Hadoop之——Linux基本命令回顾,hadooplinux回顾
  • HIVE动态分区实战,hive动态实战
  • 上海第五次Spark meetup会议资料分享,sparkmeetup
  • Flume 开发者指南V1.5.2,flume开发者v1.5.2
  • &lt;转&gt;Openstack Ceilometer监控项扩展,openstackceilometer
  • Ceph集群磁盘没有剩余空间的解决方法,ceph集群
  • MapReduce对输入多文件的处理,mapreduce输入处理
  • Scala与JAVA交互,ScalaJAVA

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • RabbitMQ(python实现)学习之二:Producer发送消息至多个消息队列queue(广播消息),rabbitmqqueue
    • 安装openstack 时 遇见的一些问题及解决方法!,openstack一些问题
    • HBase,hbase安装
    • 启动Hive的时候有很多WARN和INFO信息,hivewarninfo信息
    • Web.xml配置详解,web.xml详解
    • spark core源码分析15 Shuffle详解-写流程,sparkshuffle
    • [Sqoop]将Hive数据表导出到Mysql,sqoophive
    • 一步一步跟我学hadoop(1)----hadoop概述和安装配置,hadoop----hadoop
    • 分布式系列,分布式系统
    • 微软平台开发技术蓝图,微软平台蓝图

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有