2017-10-23 4 views
0

Ich möchte numRecordsIn für einen Operator in Flink anzeigen und dafür habe ich PPT von Daten Handwerker bei here folgen. Code für den Zähler ist unten angegebenget numOfRecordsIn Zähler in Flink verwenden

public static class mapper extends RichMapFunction<String,String>{ 

     public Counter counter; 

     @Override 
    public void open(Configuration parameters) throws Exception { 
     super.open(parameters); 

     this.counter = getRuntimeContext() 
       .getMetricGroup() 
       .counter("numRecordsIn"); 
    } 


    @Override 
    public String map(String s) throws Exception { 
     counter.inc(); 
     System.out.println("counter val " + counter.toString()); 
     return null; 
    } 
} 

Das Problem ist, dass, wie kann ich festlegen, welcher Operator ich number_of_Records_In zeigen?

Antwort

1

Metrische Zähler werden über das metrische System von Flink angezeigt. Um einen Blick darauf zu werfen, müssen Sie einen Metrik-Reporter konfigurieren. Eine Beschreibung zum Registrieren eines Metrik-Reporters finden Sie unter here.

+0

vielen Dank bis –

1

Flink enthält eine Reihe von integrierten Metriken, einschließlich numRecordsIn. Wenn Sie das also messen möchten, müssen Sie keinen Code schreiben, um diese spezielle Messung zu implementieren. Ähnliches gilt für numRecordsInPerSecond und viele andere.

Der Code, nach dem Sie gefragt haben, bewirkt, dass der Zähler numRecordsIn für den Operator, in dem die Metrik verwendet wird, inkrementiert wird.

Eine gute Möglichkeit, das Metriken-System besser zu verstehen, ist es, einen einfachen Streaming-Job zu erstellen und sich die Metriken in Flink's Web-UI anzuschauen. Ich fand es auch sehr hilfreich, die Monitoring-REST-API abzufragen, während ein Job lief.