7/04/27 10:50:17 INFO Master: Driver submitted org.apache.spark.deploy.worker.DriverWrapper
17/04/27 10:50:17 INFO Master: Launching driver driver-20170427105017-0000 on worker worker-20170427103840-192.168.5.242-7078
17/04/27 10:50:22 INFO Master: 192.168.5.5:53156 got disassociated, removing it.
17/04/27 10:50:22 INFO Master: 192.168.5.5:37668 got disassociated, removing it.
17/04/27 10:50:22 INFO Master: 192.168.5.5:53154 got disassociated, removing it.
17/04/27 10:55:27 INFO Master: Registering app ETL DataPipeline App
17/04/27 10:55:27 INFO Master: Registered app ETL DataPipeline App with ID app-20170427105527-0000
17/04/27 10:55:27 INFO Master: Launching executor app-20170427105527-0000/0 on worker worker-20170427103842-192.168.5.175-7078
17/04/27 10:55:27 INFO Master: Launching executor app-20170427105527-0000/1 on worker worker-20170427103838-192.168.5.37-7078
17/04/27 11:08:25 INFO Master: Asked to kill driver driver-20170427105017-0000
17/04/27 11:08:25 INFO Master: Kill request for driver-20170427105017-0000 submitted
17/04/27 11:08:26 INFO Master: Received unregister request from application app-20170427105527-0000
Wie erhalte ich den Treiber 20170427105017-0000 und die entsprechende 192.168.5.242 und wie grep ich analog die App 20170427105527-0000/0 und die entsprechende 192.168.5.175?
Antwort1
Verwenden Sie sed
zum Erhaltenalle driver
und executor
Nachrichten zum Thema „Starten“:
$ sed -n -E 's/^.*Launching (driver|executor) ([^ ]*).*worker-[0-9]*-([^-]*).*$/\2 \3/p' file.in
driver-20170427105017-0000 192.168.5.242
app-20170427105527-0000/0 192.168.5.175
app-20170427105527-0000/1 192.168.5.37
[^ ]*
stimmt mit einer beliebigen Anzahl beliebiger Zeichen überein, außer mit Leerzeichen.\2
und\3
sind Rückverweise auf das, was mit der zweiten bzw. dritten Klammer übereinstimmt. Die zweite Klammer enthält den Text nach oder und[^ ]*
stimmt mit diesem überein , und die dritte Klammer enthält die IP-Adresse und stimmt mit diesem überein (bis zu dem , das die Adresse beendet).Launching driver
Launching executor
[^-]*
-
^
und „$
ins/^...$/.../p
“ verankert den regulären Ausdruck am Anfang und Ende der Zeile, während „while“p
anweist,sed
das Ergebnis der Ersetzung zu „drucken“, falls eine vorgenommen wird.
Alternativ und möglicherweise robuster, da weniger reguläre Ausdrucksmagie erforderlich ist, können Sie Folgendes verwenden awk
:
$ awk '/Launching/ { split($NF, a, "-"); print $7, a[3] }' file.in