status

in linkis-engineconn-plugins/hbase/hbase-shims-2.5.3/src/main/resources/hbase-ruby/hbase/admin.rb [842:967]


    def status(format, type)
      status = @admin.getClusterMetrics
      if format == 'detailed'
        puts(format('version %s', status.getHBaseVersion))
        
        puts(format('%d regionsInTransition', status.getRegionStatesInTransition.size))
        for v in status.getRegionStatesInTransition
          puts(format('    %s', v))
        end
        master = status.getMaster
        unless master.nil?
          puts(format('active master:  %s:%d %d', master.getHostname, master.getPort, master.getStartcode))
          for task in status.getMasterTasks
            puts(format('    %s', task.toString))
          end
        end
        puts(format('%d backup masters', status.getBackupMastersSize))
        for server in status.getBackupMasters
          puts(format('    %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
        end
        master_coprocs = java.util.Arrays.toString(@admin.getMasterCoprocessors)
        unless master_coprocs.nil?
          puts(format('master coprocessors: %s', master_coprocs))
        end
        puts(format('%d live servers', status.getServersSize))
        for server in status.getServers
          puts(format('    %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
          puts(format('        %s', status.getLoad(server).toString))
          for name, region in status.getLoad(server).getRegionsLoad
            puts(format('        %s', region.getNameAsString.dump))
            puts(format('            %s', region.toString))
          end
          for task in status.getLoad(server).getTasks
            puts(format('        %s', task.toString))
          end
        end
        puts(format('%d dead servers', status.getDeadServersSize))
        for server in status.getDeadServerNames
          puts(format('    %s', server))
        end
      elsif format == 'replication'
        puts(format('version %<version>s', version: status.getHBaseVersion))
        puts(format('%<servers>d live servers', servers: status.getServersSize))
        status.getServers.each do |server_status|
          sl = status.getLoad(server_status)
          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 << " TimeStampStarted=" + r_load_sink.getTimestampStarted().to_s
            r_sink_string << ", Waiting for OPs... "
          else
            r_sink_string << " TimeStampStarted=" + r_load_sink.getTimestampStarted().to_s
            r_sink_string << ", AgeOfLastAppliedOp=" + r_load_sink.getAgeOfLastAppliedOp().to_s
            r_sink_string << ", TimeStampsOfLastAppliedOp=" +
               (java.util.Date.new(r_load_sink.getTimestampsOfLastAppliedOp())).toString()
          end

          r_load_source_map = sl.getReplicationLoadSourceMap
          build_source_string(r_load_source_map, r_source_string)
          puts(format('    %<host>s:', host: server_status.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 = status.getMaster
        unless master.nil?
          puts(format('active master:  %s:%d %d', master.getHostname, master.getPort, master.getStartcode))
          printed = false
          for task in status.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', status.getServersSize))
        for server in status.getServers
          puts(format('    %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
          printed = false
          for task in status.getLoad(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 = status.getMaster
        puts(format('active master:  %s:%d %d', master.getHostname, master.getPort, master.getStartcode))
        puts(format('%d backup masters', status.getBackupMastersSize))
        for server in status.getBackupMasters
          puts(format('    %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
        end
        puts(format('%d live servers', status.getServersSize))
        for server in status.getServers
          puts(format('    %s:%d %d', server.getHostname, server.getPort, server.getStartcode))
          puts(format('        %s', status.getLoad(server).toString))
          load += status.getLoad(server).getNumberOfRequests
          regions += status.getLoad(server).getNumberOfRegions
        end
        puts(format('%d dead servers', status.getDeadServers))
        for server in status.getDeadServerNames
          puts(format('    %s', server))
        end
        puts(format('Aggregate load: %d, regions: %d', load, regions))
      else
        puts "1 active master, #{status.getBackupMastersSize} backup masters, #{status.getServersSize} servers, #{status.getDeadServers} dead, #{format('%.4f', status.getAverageLoad)} average load"
      end
    end