HBASE-18102 Purge close_region command that allows by-pass of Master
Change-Id: I67e3f74e16706043056bac73bc1ff3a713d0e977
This commit is contained in:
parent
de696cf6b6
commit
71151eb0e9
|
@ -428,18 +428,6 @@ module Hbase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#----------------------------------------------------------------------------------------------
|
|
||||||
# Closes a region.
|
|
||||||
# If server name is nil, we presume region_name is full region name (HRegionInfo.getRegionName).
|
|
||||||
# If server name is not nil, we presume it is the region's encoded name (HRegionInfo.getEncodedName)
|
|
||||||
def close_region(region_name, server)
|
|
||||||
if region_name.end_with? '.'
|
|
||||||
@admin.closeRegion(region_name, server)
|
|
||||||
else
|
|
||||||
closeEncodedRegion?(region_name, server)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------------------------
|
#----------------------------------------------------------------------------------------------
|
||||||
#----------------------------------------------------------------------------------------------
|
#----------------------------------------------------------------------------------------------
|
||||||
# Assign a region
|
# Assign a region
|
||||||
|
@ -836,12 +824,6 @@ module Hbase
|
||||||
@admin.isTableEnabled(TableName.valueOf(table_name))
|
@admin.isTableEnabled(TableName.valueOf(table_name))
|
||||||
end
|
end
|
||||||
|
|
||||||
#----------------------------------------------------------------------------------------------
|
|
||||||
# Is supplied region name is encoded region name
|
|
||||||
def closeEncodedRegion?(region_name, server)
|
|
||||||
@admin.closeRegionWithEncodedRegionName(region_name, server)
|
|
||||||
end
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------------------------
|
#----------------------------------------------------------------------------------------------
|
||||||
# Return a new HColumnDescriptor made of passed args
|
# Return a new HColumnDescriptor made of passed args
|
||||||
def hcd(arg, htd)
|
def hcd(arg, htd)
|
||||||
|
|
|
@ -22,36 +22,14 @@ module Shell
|
||||||
class CloseRegion < Command
|
class CloseRegion < Command
|
||||||
def help
|
def help
|
||||||
<<-EOF
|
<<-EOF
|
||||||
Close a single region. Ask the master to close a region out on the cluster
|
---------------------------------------------
|
||||||
or if 'SERVER_NAME' is supplied, ask the designated hosting regionserver to
|
DEPRECATED!!! Use 'unassign' command instead.
|
||||||
close the region directly. Closing a region, the master expects 'REGIONNAME'
|
---------------------------------------------
|
||||||
to be a fully qualified region name. When asking the hosting regionserver to
|
|
||||||
directly close a region, you pass the regions' encoded name only. A region
|
|
||||||
name looks like this:
|
|
||||||
|
|
||||||
TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.
|
|
||||||
or
|
|
||||||
Namespace:TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.
|
|
||||||
|
|
||||||
The trailing period is part of the regionserver name. A region's encoded name
|
|
||||||
is the hash at the end of a region name; e.g. 527db22f95c8a9e0116f0cc13c680396
|
|
||||||
(without the period). A 'SERVER_NAME' is its host, port plus startcode. For
|
|
||||||
example: host187.example.com,60020,1289493121758 (find servername in master ui
|
|
||||||
or when you do detailed status in shell). This command will end up running
|
|
||||||
close on the region hosting regionserver. The close is done without the
|
|
||||||
master's involvement (It will not know of the close). Once closed, region will
|
|
||||||
stay closed. Use assign to reopen/reassign. Use unassign or move to assign
|
|
||||||
the region elsewhere on cluster. Use with caution. For experts only.
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
hbase> close_region 'REGIONNAME'
|
|
||||||
hbase> close_region 'REGIONNAME', 'SERVER_NAME'
|
|
||||||
hbase> close_region 'ENCODED_REGIONNAME', 'SERVER_NAME'
|
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
def command(region_name, server = nil)
|
def command(region_name, server = nil)
|
||||||
admin.close_region(region_name, server)
|
puts "DEPRECATED!!! Use 'unassign' command instead."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -334,17 +334,13 @@ module Hbase
|
||||||
shutdown
|
shutdown
|
||||||
end
|
end
|
||||||
|
|
||||||
define_test "close_region should allow encoded & non-encoded region names" do
|
define_test "unassign should allow encoded & non-encoded region names" do
|
||||||
region = command(:locate_region, @test_name, '')
|
region = command(:locate_region, @test_name, '')
|
||||||
serverName = region.getServerName().getServerName()
|
|
||||||
regionName = region.getRegionInfo().getRegionNameAsString()
|
regionName = region.getRegionInfo().getRegionNameAsString()
|
||||||
encodedRegionName = region.getRegionInfo().getEncodedName()
|
encodedRegionName = region.getRegionInfo().getEncodedName()
|
||||||
|
|
||||||
# Close region with just region name.
|
command(:unassign, regionName, true)
|
||||||
command(:close_region, regionName, nil)
|
command(:unassign, encodedRegionName, true)
|
||||||
# Close region with region name and server.
|
|
||||||
command(:close_region, regionName, serverName)
|
|
||||||
command(:close_region, encodedRegionName, serverName)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue