3.1-3.3 HBase Shell创建表
一、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创建表的更多相关文章
- HBase之创建表
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...
- 证明,为什么HBase在创建表时,列簇是必须要,列可不要?
若是删除不存在的列修饰符,看下会是什么情况 package zhouls.bigdata.HbaseProject.Test1; import javax.xml.transform.Result; ...
- 关于HBase Shell命令基本操作示例
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...
- 通过HBase Shell与HBase交互
出处:http://www.taobaotest.com/blogs/1604 业务开发测试HBase之旅二:通过HBase Shell与HBase交互 yedu 发表于:2011-10-11 浏览: ...
- HBase shell 命令创建表及添加数据操作
创建表,表名hbase_1102,HBase表是由Key-Value组成的,此表中Key为NAME 此表有两个列族,CF1和CF2,其中CF1和CF2下分别有两个列name和gender,Chin ...
- hbase java API跟新数据,创建表
package hbaseCURD; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import o ...
- 云计算与大数据实验:Hbase shell操作用户表
[实验目的] 1)了解hbase服务 2)学会hbase shell命令操作用户表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...
- 云计算与大数据实验:Hbase shell操作成绩表
[实验目的] 1)了解hbase服务 2)学会hbase shell命令操作成绩表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...
- 使用hbase的api创建表时出现的异常
/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...
随机推荐
- docker安全最佳实践概述
/************************************************* * Author : Samson * Date : 08/07/2015 * Test plat ...
- 【每日Scrum】第六天(4.27) TD学生助手Sprint2站立会议
站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天和楠哥做了课程事件和日历表操作的例子,并尝试做时间表和日历表的数据库设计 Y 刘静 今天开始编辑自己项目中的日历管理 编辑程序,能够在日历 ...
- Linux CenOS Python3 和 python2 共存
1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...
- Qt Creator设置黑色主题背景
黑色的主题看起来比較炫酷一点.也有人说黑色主题用起来对眼睛好.只是个人感觉然并卵,依据自己的习惯爱好设置就好. 假设想保护眼睛,还是将屏幕调到合适的亮度,不要太暗.自己眼睛认为舒服最好.也能够通过&q ...
- centos7下MySQL的配置
1. 下载mysql的repo源 wget http:.noarch.rpm 2. 安装mysql-community-release-el7-5.noarch.rpm包 rpm .noarch.rp ...
- openh264 在 osx 上的 nasm 问题
先在 pc 上编译,熟悉一下. 编译遇到一个问题: nasm -DUNIX64 -DPREFIX -f macho64 -I./codec/common/x86/ -o codec/common/x8 ...
- 分治分块与计算几何练习 [Cloned]
https://cn.vjudge.net/contest/148706 A #include<cstdio> #include<cstring> #include<cm ...
- 【BZOJ3728】PA2014Final Zarowki 贪心
[BZOJ3728]PA2014Final Zarowki Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯.每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照 ...
- EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台
前言 随着Android系统的不断更新和发展,现在越来越多的硬件产品选择用安卓系统作为运行环境,电视机,机顶盒.门禁.行车记录仪.车载系统.单兵设备等等,Android系统底层还是Linux,但对上层 ...
- EasyDarwin开源流媒体服务器进行RTSP转发过程中将sdp由文件存储改成内存索引
-本篇由团队成员Fantasy供稿! 原始版本 在Darwin Streaming Server版本中,推送端DoAnnounce的时候后服务器会根据easydarwin.xml中配置的movies_ ...