HBase change split policy on an existing table
hbase(main)::> create 'test_table_region', 'username'
row(s) in 1.2150 seconds hbase(main)::> put 'test_table_region', '', 'username:nick' ,''
row(s) in 0.0050 seconds hbase(main)::> scan 'test_table_region'
ROW COLUMN+CELL
column=username:nick, timestamp=, value=
row(s) in 0.1370 seconds hbase(main)::> describe 'test_table_region'
DESCRIPTION ENABLED
{NAME => 'test_table_region', FAMILIES => [{NAME => 'username', DATA_BLOCK_ENCODING true
=> 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '', VERSIONS => '', COMPRES
SION => 'NONE', MIN_VERSIONS => '', TTL => '', KEEP_DELETED_CELLS => 'fal
se', BLOCKSIZE => '', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOCKCACH
E => 'true'}]}
row(s) in 0.4040 seconds hbase(main)::> disable 'test_table_region'
row(s) in 3.1710 seconds hbase(main)::> alter 'test_table_region', {METHOD => 'table_att', SPLIT_POLICY => 'org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy', MAX_FILESIZE => ''}
Updating all regions with the new schema...
/ regions updated.
Done.
row(s) in 4.5130 seconds hbase(main)::> enable 'test_table_region'
row(s) in 6.0330 seconds hbase(main)::> describe 'test_table_region'
DESCRIPTION ENABLED
{NAME => 'test_table_region', SPLIT_POLICY => 'org.apache.hadoop.hbase.regionserver. true
ConstantSizeRegionSplitPolicy', MAX_FILESIZE => '', FAMILIES => [{NAME =>
'username', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE
=> '', COMPRESSION => 'NONE', VERSIONS => '', TTL => '', MIN_VERSIONS =>
'', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '', ENCODE_ON_DISK => 'true',
IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}
row(s) in 0.4610 seconds
the alter split_policy does not work for hbase before version 0.94
we need to use java code to change the split policy of an existing table
protected void changeSplitPolicy(String tableName, Configuration conf) throws IOException, IllegalAccessException, InstantiationException {
HBaseAdmin admin = new HBaseAdmin(conf);
HTable hTable = new HTable(conf, tableName);
HTableDescriptor htd = hTable.getTableDescriptor();
HTableDescriptor tableDesc = new HTableDescriptor(htd);
tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, ConstantSizeRegionSplitPolicy.class.getName());
tableDesc.setValue(HTableDescriptor.MAX_FILESIZE, "5000000000");
if(admin.isTableEnabled(tableName)) {
admin.disableTable(tableName);
}
admin.modifyTable(Bytes.toBytes(tableName), tableDesc);
hTable.close();
admin.close();
System.out.println("change split policy over");
}
HBase change split policy on an existing table的更多相关文章
- [XAF] How to use the Allow/Deny permissions policy in the existing project
https://www.devexpress.com/Support/Center/Question/Details/T418166 Clear [C#] using DevExpress.Persi ...
- 利用ClouderaManager启动HBase时,出现 master.TableNamespaceManager: Namespace table not found. Creating...
1.错误描述: 出现上述这个错误的原因是我之前已经安装了Cloudera Manager中的CDH,其中添加了所有的服务,当然也包含HBase.然后重新安装的时候,就会出现如下错误: Failed t ...
- [HBase]region split流程
1. 简介 HBase 的最小管理单位为region,region会按照region 分裂策略进行分裂. 基于CDH5.4.2 2. 总览
- Hbase实验:java创建和删除table
开启zookeeper.hadoop.hbase: 打开eclipse创一个java project,然后导入所需jar包: 写好java代码,运行create,然后去hbase shell里查看: ...
- [Hive - LanguageManual] Alter Table/Partition/Column
Alter Table/Partition/Column Alter Table Rename Table Alter Table Properties Alter Table Comment Add ...
- hive和hbase本质区别——hbase本质是OLTP的nosql DB,而hive是OLAP 底层是hdfs,需从已有数据库同步数据到hdfs;hive可以用hbase中的数据,通过hive表映射到hbase表
对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储,对于内容信息不需要完 ...
- Hbase split的三种方式和split的过程
在Hbase中split是一个很重要的功能,Hbase是通过把数据分配到一定数量的region来达到负载均衡的.一个table会被分配到一个或多个region中,这些region会被分配到一个或者多个 ...
- HBase Split
Region Split请求是在Region MemStore Flush之后被触发的: boolean shouldCompact = region.flushcache(); // We just ...
- How Region Split works in Hbase
A region is decided to be split when store file size goes above hbase.hregion.max.filesize or accord ...
随机推荐
- Fast Member
https://github.com/mgravell/fast-member/ http://stackoverflow.com/questions/6158768/c-sharp-reflecti ...
- webpackJsonp is not defined?
用了CommonsChunkPlugin生成了公共文件,但是页面还没有引用这个公共文件 比如下面这个配置 var webpack = require('webpack'); var path = re ...
- 获取APP最新版本的接口案例
思路: 开发初期.安卓的应用可能没有上传到应用市场,可以把应用apk放到服务器上,供用户下载.把对应用的版本信息整理成为一个XML文件,放到服务器上,通过接口读取xml文件,获取有版本信息,然后安卓端 ...
- angularjs 中state.go 跳转并且打开新的浏览器窗口
包子最近遇到业务人员提的非常无厘头的需求,就是调页面的时候,一定要打开一个新的浏览器窗口...>o<奇葩!!! 但是我的页面都是state.go跳转的呀,我各种百度,发现,貌似state, ...
- [Algorithm] 字符串匹配算法——KMP算法
1 字符串匹配 字符串匹配是计算机的基本任务之一. 字符串匹配是什么?举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串& ...
- 限制帐号同时两处以上登录-ASP.NET
///登录页面 Hashtable haol = (Hashtable)Application["olTable"]; if (haol == null) { haol = new ...
- java基础 字符串 “==” 和 “equals” 比较
demo: public class TestStringEquals { public static void main(String[] args) { String a = "test ...
- mrjob 使用 mongoldb 数据源【转】
最近做的事情是用mrjob写mapreduce程序,从mongo读取数据.我的做法很容易也很好懂,因为mrjob可以支持sys.stdin的读取,所以我考虑用一个python程序读mongo中的数据, ...
- linux常用命令-帮助命令man,whatis,apropos,info,help
man 命令 man 配置文件,注意这里只需要写文件名称就可以了,不能写文件的绝对路径 man既可以查看命令的帮助信息也可以查看配置文件的帮助信息,如果内容太多,可以输入"/内容" ...
- 在 IIS 6 和 IIS 7中配置Https,设置WCF同时支持HTTP和HTPPS,以及使用HttpWebRequest和HttpClient调用HttpS
IIS 7 ,给IIS添加CA证书以支持https IIS 6 架设证书服务器 及 让IIS启用HTTPS服务 WCF IIS 7中配置HTTPS C#利用HttpWebRequest进行post请求 ...