2016-11-04 2 views
1

Wer weiß, wie Funken seine Anzahl von Datensatz nicht berechnen (ich glaube, es ist das gleiche wie die Anzahl der Ereignisse in einer Charge), wie hier angezeigt?Wie erhält man die Gesamtzahl der Datensätze, die von Spark Streaming verarbeitet werden?

enter image description here

Ich versuche, herauszufinden, wie ich remote diesen Wert bekommen kann (REST-API gibt es in der Benutzeroberfläche für Streaming-Option nicht).

Im Grunde, was ich versuche, es zu tun, um die Gesamtzahl der Datensätze durch meinen Antrag bearbeitet zu bekommen. Ich brauche diese Informationen für das Webportal.

Ich versuchte, die Records für jede Stufe zu zählen, aber es gab mir ganz andere Zahl, wie er oben auf dem Bild ist. Jede Stufe enthält Informationen über ihre Aufzeichnungen. Wie hier

gezeigt

enter image description here

Ich bin mit diesem kurzen Python-Skript der „inputRecords“, von jeder Stufe zu zählen. Dies ist der Quellcode:

import json, requests, urllib 
print "Get stages script started!" 
#URL REST-API 
url = 'http://10.16.31.211:4040/api/v1/applications/app-20161104125052-0052/stages/' 
response = urllib.urlopen(url) 
data = json.loads(response.read()) 

stages = [] 
print len(data) 
inputCounter = 0 
for item in data: 
     stages.append(item["stageId"]) 
     inputCounter += item["inputRecords"] 
print "Records processed: " + str(inputCounter) 

Wenn ich es richtig verstanden: Jede Batch ein Job hat, und jeder Job hat mehrere Stages, diese Stages haben mehrere Tasks.

für mich So machte es Sinn, den Eingang für jeden Stage zu zählen.

+0

Was hast du probiert? Bitte posten Sie einige Beispieldaten und Code und teilen Sie uns mit, was nicht für Sie funktioniert. Überprüfen Sie auch diesen Link: stackoverflow.com/help/mcve. – CGritton

+0

Vielleicht sollte die Frage "Wie bekomme ich die Gesamtzahl der Datensätze von Spark Streaming verarbeitet werden" – maasg

Antwort

2

Funken bietet Metriken Endpunkt auf dem Treiber:

<driver-host>:<ui-port>/metrics/json 

Ein Funken Streaming-Anwendung zur Verfügung, alle Metriken in der Benutzeroberfläche berichten und einige mehr. Die, nach denen Sie möglicherweise suchen, sind:

<driver-id>.driver.<job-id>.StreamingMetrics.streaming.totalProcessedRecords: { 
value: 48574640 
}, 
<driver-id>.driver.<job-id>.StreamingMetrics.streaming.totalReceivedRecords: { 
value: 48574640 
} 

Dieser Endpunkt kann angepasst werden. Siehe Spark Metrics für Informationen.

+1

Vielen Dank! Es funktioniert wirklich, diese/metrics/json Option wurde mir verborgen. –

+0

@SeverinSimko ist keine bekannte Funktion. BTW, wenn Sie Ihre Frage beantwortet, vergessen Sie nicht, es zu akzeptieren. Überlegen Sie auch, den Titel zu ändern, damit auch zukünftige Besucher davon profitieren können ... und willkommen bei SO! – maasg

Verwandte Themen