Author: zjushch Date: Sun Mar 24 10:31:53 2013 New Revision: 1460308 URL: http://svn.apache.org/r1460308 Log: HBASE-8189 Shell commands of online region merge
Added: hbase/trunk/hbase-server/src/main/ruby/shell/commands/merge_region.rb Modified: hbase/trunk/hbase-server/src/main/ruby/hbase/admin.rb hbase/trunk/hbase-server/src/main/ruby/shell.rb Modified: hbase/trunk/hbase-server/src/main/ruby/hbase/admin.rb URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/ruby/hbase/admin.rb?rev=1460308&r1=1460307&r2=1460308&view=diff ============================================================================== --- hbase/trunk/hbase-server/src/main/ruby/hbase/admin.rb (original) +++ hbase/trunk/hbase-server/src/main/ruby/hbase/admin.rb Sun Mar 24 10:31:53 2013 @@ -307,6 +307,12 @@ module Hbase def move(encoded_region_name, server = nil) @admin.move(encoded_region_name.to_java_bytes, server ? server.to_java_bytes: nil) end + + #---------------------------------------------------------------------------------------------- + # Merge two regions + def merge_region(encoded_region_a_name, encoded_region_b_name, force) + @admin.mergeRegions(encoded_region_a_name.to_java_bytes, encoded_region_b_name.to_java_bytes, java.lang.Boolean::valueOf(force)) + end #---------------------------------------------------------------------------------------------- # Returns table's structure description Modified: hbase/trunk/hbase-server/src/main/ruby/shell.rb URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/ruby/shell.rb?rev=1460308&r1=1460307&r2=1460308&view=diff ============================================================================== --- hbase/trunk/hbase-server/src/main/ruby/shell.rb (original) +++ hbase/trunk/hbase-server/src/main/ruby/shell.rb Sun Mar 24 10:31:53 2013 @@ -283,6 +283,7 @@ Shell.load_command_group( major_compact move split + merge_region unassign zk_dump hlog_roll Added: hbase/trunk/hbase-server/src/main/ruby/shell/commands/merge_region.rb URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/ruby/shell/commands/merge_region.rb?rev=1460308&view=auto ============================================================================== --- hbase/trunk/hbase-server/src/main/ruby/shell/commands/merge_region.rb (added) +++ hbase/trunk/hbase-server/src/main/ruby/shell/commands/merge_region.rb Sun Mar 24 10:31:53 2013 @@ -0,0 +1,49 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +module Shell + module Commands + class MergeRegion < Command + def help + return <<-EOF +Merge two regions. Passing 'true' as the optional third parameter will force +a merge ('force' merges regardless else merge will fail unless passed +adjacent regions. 'force' is for expert use only). + +NOTE: You must pass the encoded region name, not the full region name so +this command is a little different from other region operations. The encoded +region name is the hash suffix on region names: e.g. if the region name were +TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396. then +the encoded region name portion is 527db22f95c8a9e0116f0cc13c680396 + +Examples: + + hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME' + hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true +EOF + end + + def command(encoded_region_a_name, encoded_region_b_name, force = 'false') + format_simple_command do + admin.merge_region(encoded_region_a_name, encoded_region_b_name, force) + end + end + end + end +end