一、HBase Shell创建表

1、HBASE shell命令

##
hbase(main):001:0> create_namespace 'ns1' //创建命名空间:ns1
hbase(main):002:0> list_namespace //查看命名空间 ##
hbase(main):003:0> create 'ns1:t1', 'cf' //创建一个表t1,属于ns2命名空间,列族:cf hbase(main):005:0> create 'ns1:t2',{NAME =>'f1'},{NAME =>'f2'},{NAME =>'f3'} //创建一张表,有三个列族f1 f2 f3
hbase(main):009:0> create 'ns1:t3', 'f1', 'f2', 'f3' hbase(main):010:0> list_namespace_tables 'ns1' //查看命名空间下的表 hbase(main):011:0> describe 'ns1:t2' //查看命名空间下的表的结构

二、HBase表创建时的预分区

1、预分区

HBase默认建表时有一个region,这个region的rowkey是没有边界的,即没有startkey和endkey,在数据写入时,所有数据都会写入这个默认的region,
随着数据量的不断  增加,此region已经不能承受不断增长的数据量,会进行split,分成2个region。在此过程中,会产生两个问题:
1.数据往一个region上写,会有写热点问题。
2.region split会消耗宝贵的集群I/O资源。
基于此我们可以控制在建表的时候,创建多个空region,并确定每个region的起始和终止rowky,这样只要我们的rowkey设计能均匀的命中各个region,
就不会存在写热点问题。自然split的几率也会大大降低。当然随着数据量的不断增长,该split的还是要进行split。像这样预先创建hbase表分区的方式,称之为预分区;

2、预分区方式1

hbase(main):015:0> create 'bflogs', 'info', SPLITS => ['20151001000000000', '20151011000000000', '20151021000000000']

指定预估rowkey(年月日时分秒毫秒):
   ’20151001000000000’
   ’20151011000000000’
   ’20151021000000000’

生成了4个region:

3、预分区方式2

##
可以把预估rowkey,放到文件中 [root@hadoop-senior datas]# cat bflogs-split.txt
20151001000000000
20151011000000000
20151021000000000 ##建表
hbase(main):016:0> create 'bflogs2', 'info', SPLITS_FILE => '/opt/datas/bflogs-split.txt'

生成了4个region:

4、预分区方式3

##自动生成预分区rowkey,不常用

##方式1
hbase(main):017:0> create 't11', 'f11', {NUMREGIONS => 2, SPLITALGO => 'HexStringSplit'} //生成两个rowkey ##方式2
hbase(main):018:0> create 't12', 'f12', {NUMREGIONS => 4, SPLITALGO => 'UniformSplit'} //生成4个rowkey

方式1

方式2

3.1-3.3 HBase Shell创建表的更多相关文章

  1. HBase之创建表

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...

  2. 证明,为什么HBase在创建表时,列簇是必须要,列可不要?

    若是删除不存在的列修饰符,看下会是什么情况 package zhouls.bigdata.HbaseProject.Test1; import javax.xml.transform.Result; ...

  3. 关于HBase Shell命令基本操作示例

    HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...

  4. 通过HBase Shell与HBase交互

    出处:http://www.taobaotest.com/blogs/1604 业务开发测试HBase之旅二:通过HBase Shell与HBase交互 yedu 发表于:2011-10-11 浏览: ...

  5. HBase shell 命令创建表及添加数据操作

    创建表,表名hbase_1102,HBase表是由Key-Value组成的,此表中Key为NAME   此表有两个列族,CF1和CF2,其中CF1和CF2下分别有两个列name和gender,Chin ...

  6. hbase java API跟新数据,创建表

    package hbaseCURD; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import o ...

  7. 云计算与大数据实验:Hbase shell操作用户表

    [实验目的] 1)了解hbase服务 2)学会hbase shell命令操作用户表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...

  8. 云计算与大数据实验:Hbase shell操作成绩表

    [实验目的] 1)了解hbase服务 2)学会hbase shell命令操作成绩表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...

  9. 使用hbase的api创建表时出现的异常

    /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...

随机推荐

  1. JavaScript语言基础9

    我们先看看以下这段代码: <span style="font-size:18px;"><HTML> <HEAD> <TITLE>He ...

  2. Android gdb so

    gdb debug an android application 1.gdb 要有gdbserver 一般模拟器默认装有gdbserver,如2.3.3的模拟器,看一下有没有: D:\Develope ...

  3. Mysql 基本操作指令+增删查改

    nqinx是web前端服务端 负载均衡(软件)可以将用户请求调度到几台机器的nqinx上去做 ,一般都有两个负载均衡,一个做备用硬件的要比软件的好,但是一般公司都用软件实现数据库软件其实也是一个服务端 ...

  4. kubernetes的Service Account和secret

    系列目录 Service Account Service Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它 ...

  5. angular input file 上传文件

    <body > <div ng-controller="fileCtrl"> <form ng-submit="submit(obj)&qu ...

  6. mnesia练习及基本操作

    Mnesia基本用法 查看表结构 查看mnesia表的结构: mnesia:info(). 查看此表的基本信息: mnesia:table_info(<tableName>, all). ...

  7. EasyDarwin开发出类似于美拍、秒拍的短视频拍摄SDK:EasyVideoRecorder

    EasyVideoRecorder Github:https://github.com/EasyDarwin/EasyVideoRecorder EasyVideoRecorder作为一款短视频拍摄的 ...

  8. 获取一组radio按钮选中的值Value

    1.效果 2.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...

  9. 云计算系列——HIVE1.2.1 - JDBC 服务

    前提 Hadoop 集群已经启动 Hive1.2.1 环境已经搭建 一.启动 HIVE - JDBC 服务 hiveserver2  为 hive 的 jdbc 服务,此服务默认为前台进程,需要在执行 ...

  10. LLVM的总结

    LLVM 写在前面的话:无意中看到的LLVM的作者Chris Lattner相关的介绍和故事,觉得很有意思就贴上来,如果不感兴趣,可以直接跳入下一章. 关于LLVM 如果你对LLVM的由来陌生,那么我 ...