in hbase-shell/src/main/ruby/hbase/admin.rb [941:1074]
def status(format, type)
cluster_metrics = @admin.getClusterMetrics
if format == 'detailed'
puts(format('version %s', cluster_metrics.getHBaseVersion))
puts(format('%d regionsInTransition', cluster_metrics.getRegionStatesInTransition.size))
for v in cluster_metrics.getRegionStatesInTransition
puts(format(' %s', v))
end
master = cluster_metrics.getMasterName
unless master.nil?
puts(format('active master: %s:%d %d', master.getHostname, master.getPort, master.getStartcode))
for task in cluster_metrics.getMasterTasks
puts(format(' %s', task.toString))
end
end
puts(format('%d backup masters', cluster_metrics.getBackupMasterNames.size))
for server in cluster_metrics.getBackupMasterNames
puts(format(' %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
end
master_coprocs = @admin.getMasterCoprocessorNames.toString
unless master_coprocs.nil?
puts(format('master coprocessors: %s', master_coprocs))
end
puts(format('%d live servers', cluster_metrics.getLiveServerMetrics.size))
for server in cluster_metrics.getLiveServerMetrics.keySet
puts(format(' %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
puts(format(' %s', cluster_metrics.getLiveServerMetrics.get(server).toString))
for name, region in cluster_metrics.getLiveServerMetrics.get(server).getRegionMetrics
puts(format(' %s', region.getNameAsString.dump))
puts(format(' %s', region.toString))
end
for task in cluster_metrics.getLiveServerMetrics.get(server).getTasks
puts(format(' %s', task.toString))
end
end
puts(format('%d dead servers', cluster_metrics.getDeadServerNames.size))
for server in cluster_metrics.getDeadServerNames
puts(format(' %s', server))
end
elsif format == 'replication'
puts(format('version %<version>s', version: cluster_metrics.getHBaseVersion))
puts(format('%<servers>d live servers',
servers: cluster_metrics.getLiveServerMetrics.size))
cluster_metrics.getLiveServerMetrics.keySet.each do |server_name|
sl = cluster_metrics.getLiveServerMetrics.get(server_name)
r_sink_string = ' SINK:'
r_source_string = ' SOURCE:'
r_load_sink = sl.getReplicationLoadSink
next if r_load_sink.nil?
if r_load_sink.getTimestampsOfLastAppliedOp() == r_load_sink.getTimestampStarted()
r_sink_string << "\n TimeStampStarted=" + r_load_sink.getTimestampStarted().to_s
r_sink_string << ",\n Waiting for OPs... "
else
r_sink_string << "\n TimeStampStarted=" + r_load_sink.getTimestampStarted().to_s
r_sink_string << ",\n AgeOfLastAppliedOp=" + r_load_sink.getAgeOfLastAppliedOp().to_s
r_sink_string << ",\n TimeStampsOfLastAppliedOp=" +
r_load_sink.getTimestampsOfLastAppliedOp().to_s
end
r_load_source_map = sl.getReplicationLoadSourceMap
build_source_string(r_load_source_map, r_source_string)
puts(format(' %<host>s:', host: server_name.getHostname))
if type.casecmp('SOURCE').zero?
puts(format('%<source>s', source: r_source_string))
elsif type.casecmp('SINK').zero?
puts(format('%<sink>s', sink: r_sink_string))
else
puts(format('%<source>s', source: r_source_string))
puts(format('%<sink>s', sink: r_sink_string))
end
end
elsif format == 'tasks'
master = cluster_metrics.getMasterName
unless master.nil?
puts(format('active master: %s:%d %d', master.getHostname, master.getPort, master.getStartcode))
printed = false
for task in cluster_metrics.getMasterTasks
next unless task.getState.name == 'RUNNING'
puts(format(' %s', task.toString))
printed = true
end
if !printed
puts(' no active tasks')
end
end
puts(format('%d live servers', cluster_metrics.getServersSize))
for server in cluster_metrics.getServers
puts(format(' %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
printed = false
for task in cluster_metrics.getLiveServerMetrics.get(server).getTasks
next unless task.getState.name == 'RUNNING'
puts(format(' %s', task.toString))
printed = true
end
if !printed
puts(' no active tasks')
end
end
elsif format == 'simple'
load = 0
regions = 0
master = cluster_metrics.getMasterName
puts(format('active master: %s:%d %d', master.getHostname, master.getPort,
master.getStartcode))
puts(format('%d backup masters', cluster_metrics.getBackupMasterNames.size))
for server in cluster_metrics.getBackupMasterNames
puts(format(' %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
end
puts(format('%d live servers', cluster_metrics.getLiveServerMetrics.size))
for server in cluster_metrics.getLiveServerMetrics.keySet
puts(format(' %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
puts(format(' %s', cluster_metrics.getLiveServerMetrics.get(server).toString))
load += cluster_metrics.getLiveServerMetrics.get(server).getRequestCountPerSecond
regions += cluster_metrics.getLiveServerMetrics.get(server).getRegionMetrics.size
end
puts(format('%d dead servers', cluster_metrics.getDeadServerNames.size))
for server in cluster_metrics.getDeadServerNames
puts(format(' %s', server))
end
puts(format('Aggregate load: %d, regions: %d', load, regions))
else
puts "1 active master, #{cluster_metrics.getBackupMasterNames.size} backup masters,
#{cluster_metrics.getLiveServerMetrics.size} servers,
#{cluster_metrics.getDecommissionedServerNames.size} decommissioned,
#{cluster_metrics.getDeadServerNames.size} dead,
#{format('%.4f', cluster_metrics.getAverageLoad)} average load"
end
end