HBASE-487 Replace hql w/ a hbase-friendly jirb or jython shell
This commit finishes up the DDL M src/test/org/apache/hadoop/hbase/TestBloomFilters.java Changed name of default constants. M src/java/org/apache/hadoop/hbase/HColumnDescriptor.java Changed name of default constants. (getNameAsString): Added. M src/java/org/apache/hadoop/hbase/master/ModifyColumn.java toString column family byte array name. M bin/HBase.rb (alter, hcd): Added. M bin/hirb.rb More help doc. (alter, admin): Added. git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@667684 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1bc0a2a0a3
commit
b58c15a6d7
55
bin/HBase.rb
55
bin/HBase.rb
|
@ -73,23 +73,54 @@ module HBase
|
||||||
for arg in args
|
for arg in args
|
||||||
raise TypeError.new(arg.class.to_s + " of " + arg.to_s + " is not of Hash type") \
|
raise TypeError.new(arg.class.to_s + " of " + arg.to_s + " is not of Hash type") \
|
||||||
unless arg.instance_of? Hash
|
unless arg.instance_of? Hash
|
||||||
name = arg[NAME]
|
htd.addFamily(hcd(arg))
|
||||||
raise ArgumentError.new("Column family " + arg + " must have a name at least") \
|
|
||||||
unless name
|
|
||||||
# TODO: Process all other parameters for column family
|
|
||||||
# Check the family name for colon. Add it if missing.
|
|
||||||
index = name.index(':')
|
|
||||||
if not index
|
|
||||||
# Add a colon. If already a colon, its in the right place,
|
|
||||||
# or an exception will come up out of the addFamily
|
|
||||||
name << ':'
|
|
||||||
end
|
|
||||||
htd.addFamily(HColumnDescriptor.new(name))
|
|
||||||
end
|
end
|
||||||
@admin.createTable(htd)
|
@admin.createTable(htd)
|
||||||
@formatter.header()
|
@formatter.header()
|
||||||
@formatter.footer(now)
|
@formatter.footer(now)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def alter(tableName, args)
|
||||||
|
now = Time.now
|
||||||
|
raise TypeError.new("Table name must be of type String") \
|
||||||
|
unless tableName.instance_of? String
|
||||||
|
descriptor = hcd(args)
|
||||||
|
@admin.modifyColumn(tableName, descriptor.getNameAsString(), descriptor);
|
||||||
|
@formatter.header()
|
||||||
|
@formatter.footer(now)
|
||||||
|
end
|
||||||
|
|
||||||
|
def hcd(arg)
|
||||||
|
# Return a new HColumnDescriptor made of passed args
|
||||||
|
# TODO: This is brittle code.
|
||||||
|
# Here is current HCD constructor:
|
||||||
|
# public HColumnDescriptor(final byte [] columnName, final int maxVersions,
|
||||||
|
# final CompressionType compression, final boolean inMemory,
|
||||||
|
# final boolean blockCacheEnabled,
|
||||||
|
# final int maxValueLength, final int timeToLive,
|
||||||
|
# BloomFilterDescriptor bloomFilter)
|
||||||
|
name = arg[NAME]
|
||||||
|
raise ArgumentError.new("Column family " + arg + " must have a name") \
|
||||||
|
unless name
|
||||||
|
# Check the family name for colon. Add it if missing.
|
||||||
|
index = name.index(':')
|
||||||
|
if not index
|
||||||
|
# Add a colon. If already a colon, its in the right place,
|
||||||
|
# or an exception will come up out of the addFamily
|
||||||
|
name << ':'
|
||||||
|
end
|
||||||
|
# TODO: What encoding are Strings in jruby?
|
||||||
|
return HColumnDescriptor.new(name.to_java_bytes,
|
||||||
|
# JRuby uses longs for ints. Need to convert. Also constants are String
|
||||||
|
arg[MAX_VERSIONS]? arg[MAX_VERSIONS]: HColumnDescriptor::DEFAULT_MAX_VERSIONS,
|
||||||
|
arg[COMPRESSION]? HColumnDescriptor::CompressionType::valueOf(arg[COMPRESSION]):
|
||||||
|
HColumnDescriptor::DEFAULT_COMPRESSION,
|
||||||
|
arg[IN_MEMORY]? arg[IN_MEMORY]: HColumnDescriptor::DEFAULT_IN_MEMORY,
|
||||||
|
arg[BLOCKCACHE]? arg[BLOCKCACHE]: HColumnDescriptor::DEFAULT_BLOCKCACHE,
|
||||||
|
arg[MAX_LENGTH]? arg[MAX_LENGTH]: HColumnDescriptor::DEFAULT_MAX_LENGTH,
|
||||||
|
arg[TTL]? arg[TTL]: HColumnDescriptor::DEFAULT_TTL,
|
||||||
|
arg[BLOOMFILTER]? arg[BLOOMFILTER]: HColumnDescriptor::DEFAULT_BLOOMFILTER)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Table
|
class Table
|
||||||
|
|
70
bin/hirb.rb
70
bin/hirb.rb
|
@ -71,12 +71,13 @@ end
|
||||||
|
|
||||||
# Promote hbase constants to be constants of this module so can
|
# Promote hbase constants to be constants of this module so can
|
||||||
# be used bare as keys in 'create', 'alter', etc. To see constants
|
# be used bare as keys in 'create', 'alter', etc. To see constants
|
||||||
# in IRB, type 'Object.constants'.
|
# in IRB, type 'Object.constants'. Don't promote defaults because
|
||||||
|
# flattens all types to String. Can be confusing.
|
||||||
def promoteConstants(constants)
|
def promoteConstants(constants)
|
||||||
# The constants to import are all in uppercase
|
# The constants to import are all in uppercase
|
||||||
for c in constants
|
for c in constants
|
||||||
if c == c.upcase
|
if c == c.upcase
|
||||||
eval("%s = \"%s\"" % [c, c])
|
eval("%s = \"%s\"" % [c, c]) unless c =~ /DEFAULT_.*/
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -95,6 +96,15 @@ def help
|
||||||
# TODO: Add help to the commands themselves rather than keep it distinct
|
# TODO: Add help to the commands themselves rather than keep it distinct
|
||||||
h = <<HERE
|
h = <<HERE
|
||||||
HBASE SHELL COMMANDS:
|
HBASE SHELL COMMANDS:
|
||||||
|
alter Alter column family schema in a table. Pass table name and a
|
||||||
|
dictionary specifying the new column family schema. Dictionaries
|
||||||
|
are described below in the GENERAL NOTES section. Dictionary must
|
||||||
|
include name of column family to alter. For example, to change
|
||||||
|
the 'f1' column family in table 't1' to have a MAX_VERSIONS of 5,
|
||||||
|
do:
|
||||||
|
|
||||||
|
hbase> alter 't1', {NAME => 'f1', MAX_VERSIONS => 5}
|
||||||
|
|
||||||
create Create table; pass a table name, a dictionary of specifications per
|
create Create table; pass a table name, a dictionary of specifications per
|
||||||
column family, and optionally, named parameters of table options.
|
column family, and optionally, named parameters of table options.
|
||||||
Dictionaries are described below in the GENERAL NOTES section. Named
|
Dictionaries are described below in the GENERAL NOTES section. Named
|
||||||
|
@ -102,9 +112,12 @@ HBASE SHELL COMMANDS:
|
||||||
(constants) as keys and a '=>' key/value delimiter. Parameters are
|
(constants) as keys and a '=>' key/value delimiter. Parameters are
|
||||||
comma-delimited. For example, to create a table named 't1' with an
|
comma-delimited. For example, to create a table named 't1' with an
|
||||||
alternate maximum region size and a single family named 'f1' with an
|
alternate maximum region size and a single family named 'f1' with an
|
||||||
alternate maximum number of cells, type:
|
alternate maximum number of cells and 'record' compression, type:
|
||||||
|
|
||||||
create 't1' {NAME => 'f1', MAX_VERSIONS => 5}, REGION_SIZE => 123
|
hbase> create 't1' {NAME => 'f1', MAX_VERSIONS => 5, \
|
||||||
|
COMPRESSION => 'RECORD'}, REGION_SIZE => 1024
|
||||||
|
|
||||||
|
For compression types, pass one of 'NONE', 'RECORD', or 'BLOCK'
|
||||||
|
|
||||||
describe Describe the named table. Outputs the table and family descriptors
|
describe Describe the named table. Outputs the table and family descriptors
|
||||||
drop Drop the named table. Table must first be disabled
|
drop Drop the named table. Table must first be disabled
|
||||||
|
@ -119,15 +132,12 @@ GENERAL NOTES:
|
||||||
Quote all names in the hbase shell such as table and column names. Don't
|
Quote all names in the hbase shell such as table and column names. Don't
|
||||||
forget commas delimiting command parameters. Dictionaries of configuration used
|
forget commas delimiting command parameters. Dictionaries of configuration used
|
||||||
in the creation and alteration of tables are ruby-style Hashes. They look like
|
in the creation and alteration of tables are ruby-style Hashes. They look like
|
||||||
this:
|
this: { 'key1' => 'value1', 'key2' => 'value2', ...}. They are opened and
|
||||||
|
closed with curley-braces. Key/values are delimited by the '=>' character
|
||||||
{ 'key1' => 'value1', 'key2' => 'value2', ...}
|
combination. Usually keys are predefined constants such as NAME, MAX_VERSIONS,
|
||||||
|
COMPRESSION, MAX_LENGTH, TTL, etc. Constants do not need to be quoted. Type
|
||||||
They are opened and closed with curley-braces. Key/values are delimited by
|
'Object.constants' to see a (messy) list of all constants in the environment.
|
||||||
the '=>' character combination. Usually keys are predefined constants that
|
See http://wiki.apache.org/hadoop/Hbase/Shell for more on the HBase Shell.
|
||||||
do not need to be quoted such as NAME, MAX_VERSIONS, MAX_LENGTH, TTL, etc.
|
|
||||||
Type 'Object.constants' to see a (messy) list of all constants in the
|
|
||||||
environment.
|
|
||||||
HERE
|
HERE
|
||||||
puts h
|
puts h
|
||||||
end
|
end
|
||||||
|
@ -141,45 +151,43 @@ end
|
||||||
|
|
||||||
# DDL
|
# DDL
|
||||||
|
|
||||||
def create(table_name, *args)
|
def admin()
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
||||||
@admin.create(table_name, args)
|
@admin
|
||||||
|
end
|
||||||
|
|
||||||
|
def create(table_name, *args)
|
||||||
|
admin().create(table_name, args)
|
||||||
end
|
end
|
||||||
|
|
||||||
def drop(table_name)
|
def drop(table_name)
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().drop(table_name)
|
||||||
@admin.drop(table_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def alter(table_name, *args)
|
def alter(table_name, args)
|
||||||
puts "Not implemented yet"
|
admin().alter(table_name, args)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Administration
|
# Administration
|
||||||
|
|
||||||
def list
|
def list
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().list()
|
||||||
@admin.list()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def describe(table_name)
|
def describe(table_name)
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().describe(table_name)
|
||||||
@admin.describe(table_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def enable(table_name)
|
def enable(table_name)
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().enable(table_name)
|
||||||
@admin.enable(table_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def disable(table_name)
|
def disable(table_name)
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().disable(table_name)
|
||||||
@admin.disable(table_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def exists(table_name)
|
def exists(table_name)
|
||||||
@admin = HBase::Admin.new(@configuration, @formatter) unless @admin
|
admin().exists(table_name)
|
||||||
@admin.exists(table_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# CRUD
|
# CRUD
|
||||||
|
@ -201,7 +209,9 @@ def delete(table_name, row_key, *args)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Output a banner message that tells users where to go for help
|
# Output a banner message that tells users where to go for help
|
||||||
puts "HBase Shell; type 'help<RETURN>' for the list of supported HBase commands"
|
puts <<HERE
|
||||||
|
HBase Shell; enter 'help<RETURN>' for list of supported commands.
|
||||||
|
HERE
|
||||||
version
|
version
|
||||||
|
|
||||||
require "irb"
|
require "irb"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
# The java implementation to use. Required.
|
# The java implementation to use. Required.
|
||||||
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
|
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
|
||||||
|
export JAVA_HOME=/usr
|
||||||
|
|
||||||
# Extra Java CLASSPATH elements. Optional.
|
# Extra Java CLASSPATH elements. Optional.
|
||||||
# export HBASE_CLASSPATH=
|
# export HBASE_CLASSPATH=
|
||||||
|
|
|
@ -56,43 +56,6 @@ public class HColumnDescriptor implements WritableComparable {
|
||||||
BLOCK
|
BLOCK
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Default compression type.
|
|
||||||
*/
|
|
||||||
public static final CompressionType DEFAULT_COMPRESSION_TYPE =
|
|
||||||
CompressionType.NONE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default number of versions of a record to keep.
|
|
||||||
*/
|
|
||||||
public static final int DEFAULT_N_VERSIONS = 3;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default setting for whether to serve from memory or not.
|
|
||||||
*/
|
|
||||||
public static final boolean DEFAULT_IN_MEMORY = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default setting for whether to use a block cache or not.
|
|
||||||
*/
|
|
||||||
public static final boolean DEFAULT_BLOCK_CACHE_ENABLED = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default maximum length of cell contents.
|
|
||||||
*/
|
|
||||||
public static final int DEFAULT_MAX_VALUE_LENGTH = Integer.MAX_VALUE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default time to live of cell contents.
|
|
||||||
*/
|
|
||||||
public static final int DEFAULT_TIME_TO_LIVE = HConstants.FOREVER;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default bloom filter description.
|
|
||||||
*/
|
|
||||||
public static final BloomFilterDescriptor DEFAULT_BLOOM_FILTER_DESCRIPTOR =
|
|
||||||
null;
|
|
||||||
|
|
||||||
// Defines for jruby/shell
|
// Defines for jruby/shell
|
||||||
public static final String NAME = "NAME";
|
public static final String NAME = "NAME";
|
||||||
public static final String MAX_VERSIONS = "MAX_VERSIONS";
|
public static final String MAX_VERSIONS = "MAX_VERSIONS";
|
||||||
|
@ -104,24 +67,65 @@ public class HColumnDescriptor implements WritableComparable {
|
||||||
public static final String BLOOMFILTER = "BLOOMFILTER";
|
public static final String BLOOMFILTER = "BLOOMFILTER";
|
||||||
public static final String FOREVER = "FOREVER";
|
public static final String FOREVER = "FOREVER";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default compression type.
|
||||||
|
*/
|
||||||
|
public static final CompressionType DEFAULT_COMPRESSION =
|
||||||
|
CompressionType.NONE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default number of versions of a record to keep.
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_MAX_VERSIONS = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default maximum cell length.
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_MAX_LENGTH = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default setting for whether to serve from memory or not.
|
||||||
|
*/
|
||||||
|
public static final boolean DEFAULT_IN_MEMORY = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default setting for whether to use a block cache or not.
|
||||||
|
*/
|
||||||
|
public static final boolean DEFAULT_BLOCKCACHE = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default maximum length of cell contents.
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_MAX_VALUE_LENGTH = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default time to live of cell contents.
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_TTL = HConstants.FOREVER;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default bloom filter description.
|
||||||
|
*/
|
||||||
|
public static final BloomFilterDescriptor DEFAULT_BLOOMFILTER = null;
|
||||||
|
|
||||||
// Column family name
|
// Column family name
|
||||||
private byte [] name;
|
private byte [] name;
|
||||||
// Number of versions to keep
|
// Number of versions to keep
|
||||||
private int maxVersions = DEFAULT_N_VERSIONS;
|
private int maxVersions = DEFAULT_MAX_VERSIONS;
|
||||||
// Compression setting if any
|
// Compression setting if any
|
||||||
private CompressionType compressionType = DEFAULT_COMPRESSION_TYPE;
|
private CompressionType compressionType = DEFAULT_COMPRESSION;
|
||||||
// Serve reads from in-memory cache
|
// Serve reads from in-memory cache
|
||||||
private boolean inMemory = DEFAULT_IN_MEMORY;
|
private boolean inMemory = DEFAULT_IN_MEMORY;
|
||||||
// Serve reads from in-memory block cache
|
// Serve reads from in-memory block cache
|
||||||
private boolean blockCacheEnabled = DEFAULT_BLOCK_CACHE_ENABLED;
|
private boolean blockCacheEnabled = DEFAULT_BLOCKCACHE;
|
||||||
// Maximum value size
|
// Maximum value size
|
||||||
private int maxValueLength = Integer.MAX_VALUE;
|
private int maxValueLength = DEFAULT_MAX_LENGTH;
|
||||||
// Time to live of cell contents, in seconds from last timestamp
|
// Time to live of cell contents, in seconds from last timestamp
|
||||||
private int timeToLive = HConstants.FOREVER;
|
private int timeToLive = DEFAULT_TTL;
|
||||||
// True if bloom filter was specified
|
// True if bloom filter was specified
|
||||||
private boolean bloomFilterSpecified = false;
|
private boolean bloomFilterSpecified = false;
|
||||||
// Descriptor of bloom filter
|
// Descriptor of bloom filter
|
||||||
private BloomFilterDescriptor bloomFilter = DEFAULT_BLOOM_FILTER_DESCRIPTOR;
|
private BloomFilterDescriptor bloomFilter = DEFAULT_BLOOMFILTER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor. Must be present for Writable.
|
* Default constructor. Must be present for Writable.
|
||||||
|
@ -159,10 +163,10 @@ public class HColumnDescriptor implements WritableComparable {
|
||||||
public HColumnDescriptor(final byte [] columnName) {
|
public HColumnDescriptor(final byte [] columnName) {
|
||||||
this (columnName == null || columnName.length <= 0?
|
this (columnName == null || columnName.length <= 0?
|
||||||
HConstants.EMPTY_BYTE_ARRAY: columnName,
|
HConstants.EMPTY_BYTE_ARRAY: columnName,
|
||||||
DEFAULT_N_VERSIONS, DEFAULT_COMPRESSION_TYPE, DEFAULT_IN_MEMORY,
|
DEFAULT_MAX_VERSIONS, DEFAULT_COMPRESSION, DEFAULT_IN_MEMORY,
|
||||||
DEFAULT_BLOCK_CACHE_ENABLED,
|
DEFAULT_BLOCKCACHE,
|
||||||
Integer.MAX_VALUE, DEFAULT_TIME_TO_LIVE,
|
Integer.MAX_VALUE, DEFAULT_TTL,
|
||||||
DEFAULT_BLOOM_FILTER_DESCRIPTOR);
|
DEFAULT_BLOOMFILTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -245,6 +249,13 @@ public class HColumnDescriptor implements WritableComparable {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Name of this column family
|
||||||
|
*/
|
||||||
|
public String getNameAsString() {
|
||||||
|
return Bytes.toString(this.name);
|
||||||
|
}
|
||||||
|
|
||||||
/** @return compression type being used for the column family */
|
/** @return compression type being used for the column family */
|
||||||
public CompressionType getCompression() {
|
public CompressionType getCompression() {
|
||||||
return this.compressionType;
|
return this.compressionType;
|
||||||
|
@ -302,8 +313,8 @@ public class HColumnDescriptor implements WritableComparable {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "{" + NAME + " => '" + Bytes.toString(name) +
|
return "{" + NAME + " => '" + Bytes.toString(name) +
|
||||||
"', " + MAX_VERSIONS + " => " + maxVersions +
|
"', " + MAX_VERSIONS + " => " + maxVersions +
|
||||||
", " + COMPRESSION + " => " + this.compressionType +
|
", " + COMPRESSION + " => '" + this.compressionType +
|
||||||
", " + IN_MEMORY + " => " + inMemory +
|
"', " + IN_MEMORY + " => " + inMemory +
|
||||||
", " + BLOCKCACHE + " => " + blockCacheEnabled +
|
", " + BLOCKCACHE + " => " + blockCacheEnabled +
|
||||||
", " + MAX_LENGTH + " => " + maxValueLength +
|
", " + MAX_LENGTH + " => " + maxValueLength +
|
||||||
", " + TTL + " => " +
|
", " + TTL + " => " +
|
||||||
|
|
|
@ -24,6 +24,7 @@ import java.io.IOException;
|
||||||
import org.apache.hadoop.hbase.HColumnDescriptor;
|
import org.apache.hadoop.hbase.HColumnDescriptor;
|
||||||
import org.apache.hadoop.hbase.InvalidColumnNameException;
|
import org.apache.hadoop.hbase.InvalidColumnNameException;
|
||||||
import org.apache.hadoop.hbase.ipc.HRegionInterface;
|
import org.apache.hadoop.hbase.ipc.HRegionInterface;
|
||||||
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
import org.apache.hadoop.hbase.HRegionInfo;
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
|
|
||||||
/** Instantiated to modify an existing column family on a table */
|
/** Instantiated to modify an existing column family on a table */
|
||||||
|
@ -47,7 +48,8 @@ class ModifyColumn extends ColumnOperation {
|
||||||
i.getTableDesc().addFamily(descriptor);
|
i.getTableDesc().addFamily(descriptor);
|
||||||
updateRegionInfo(server, m.getRegionName(), i);
|
updateRegionInfo(server, m.getRegionName(), i);
|
||||||
} else { // otherwise, we have an error.
|
} else { // otherwise, we have an error.
|
||||||
throw new InvalidColumnNameException("Column family '" + columnName +
|
throw new InvalidColumnNameException("Column family '" +
|
||||||
|
Bytes.toString(columnName) +
|
||||||
"' doesn't exist, so cannot be modified.");
|
"' doesn't exist, so cannot be modified.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,9 +172,9 @@ public class TestBloomFilters extends HBaseClusterTestCase {
|
||||||
1, // Max versions
|
1, // Max versions
|
||||||
HColumnDescriptor.CompressionType.NONE, // no compression
|
HColumnDescriptor.CompressionType.NONE, // no compression
|
||||||
HColumnDescriptor.DEFAULT_IN_MEMORY, // not in memory
|
HColumnDescriptor.DEFAULT_IN_MEMORY, // not in memory
|
||||||
HColumnDescriptor.DEFAULT_BLOCK_CACHE_ENABLED,
|
HColumnDescriptor.DEFAULT_BLOCKCACHE,
|
||||||
HColumnDescriptor.DEFAULT_MAX_VALUE_LENGTH,
|
HColumnDescriptor.DEFAULT_MAX_VALUE_LENGTH,
|
||||||
HColumnDescriptor.DEFAULT_TIME_TO_LIVE,
|
HColumnDescriptor.DEFAULT_TTL,
|
||||||
bloomFilter
|
bloomFilter
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -238,9 +238,9 @@ public class TestBloomFilters extends HBaseClusterTestCase {
|
||||||
1, // Max versions
|
1, // Max versions
|
||||||
HColumnDescriptor.CompressionType.NONE, // no compression
|
HColumnDescriptor.CompressionType.NONE, // no compression
|
||||||
HColumnDescriptor.DEFAULT_IN_MEMORY, // not in memory
|
HColumnDescriptor.DEFAULT_IN_MEMORY, // not in memory
|
||||||
HColumnDescriptor.DEFAULT_BLOCK_CACHE_ENABLED,
|
HColumnDescriptor.DEFAULT_BLOCKCACHE,
|
||||||
HColumnDescriptor.DEFAULT_MAX_VALUE_LENGTH,
|
HColumnDescriptor.DEFAULT_MAX_VALUE_LENGTH,
|
||||||
HColumnDescriptor.DEFAULT_TIME_TO_LIVE,
|
HColumnDescriptor.DEFAULT_TTL,
|
||||||
bloomFilter
|
bloomFilter
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue