lucacanali / sparkmeasure

sparkMeasure is a tool for performance investigations of Apache Spark workloads. It simplifies the collection and analysis of Spark performance metrics.

Github
< d i v c l a s s = " a n n o u n c e i n s t a p a p e r _ b o d y m d " d a t a - p a t h = " R E A D M E . m d " i d = " r e a d m e " > < a r t i c l e c l a s s = " m a r k d o w n - b o d y e n t r y - c o n t e n t " i t e m p r o p = " t e x t " > < h 1 > < a i d = " u s e r - c o n t e n t - s p a r k m e a s u r e " c l a s s = " a n c h o r " h r e f = " h t t p s : / / g i t h u b . c o m / l u c a c a n a l i / s p a r k m e a s u r e # s p a r k m e a s u r e " a r i a - h i d d e n = " t r u e " t a r g e t = " _ b l a n k " > < s v g a r i a - h i d d e n = " t r u e " c l a s s = " o c t i c o n o c t i c o n - l i n k " h e i g h t = " 1 6 " v e r s i o n = " 1 . 1 " v i e w b o x = " 0 0 1 6 1 6 " w i d t h = " 1 6 " > < p a t h f i l l - r u l e = " e v e n o d d " d = " M 4 9 h 1 v 1 H 4 c - 1 . 5 0 - 3 - 1 . 6 9 - 3 - 3 . 5 S 2 . 5 5 3 4 3 h 4 c 1 . 4 5 0 3 1 . 6 9 3 3 . 5 0 1 . 4 1 - . 9 1 2 . 7 2 - 2 3 . 2 5 V 8 . 5 9 c . 5 8 - . 4 5 1 - 1 . 2 7 1 - 2 . 0 9 C 1 0 5 . 2 2 8 . 9 8 4 8 4 H 4 c - . 9 8 0 - 2 1 . 2 2 - 2 2 . 5 S 3 9 4 9 z m 9 - 3 h - 1 v 1 h 1 c 1 0 2 1 . 2 2 2 2 . 5 S 1 3 . 9 8 1 2 1 3 1 2 H 9 c - . 9 8 0 - 2 - 1 . 2 2 - 2 - 2 . 5 0 - . 8 3 . 4 2 - 1 . 6 4 1 - 2 . 0 9 V 6 . 2 5 c - 1 . 0 9 . 5 3 - 2 1 . 8 4 - 2 3 . 2 5 C 6 1 1 . 3 1 7 . 5 5 1 3 9 1 3 h 4 c 1 . 4 5 0 3 - 1 . 6 9 3 - 3 . 5 S 1 4 . 5 6 1 3 6 z " > < / p a t h > < / s v g > < / a > s p a r k M e a s u r e < / h 1 > < p > < s t r o n g > s p a r k M e a s u r e i s a t o o l f o r p e r f o r m a n c e i n v e s t i g a t i o n s o f A p a c h e S p a r k w o r k l o a d s . < / s t r o n g > < b r > I t s i m p l i f i e s t h e c o l l e c t i o n a n d a n a l y s i s o f S p a r k p e r f o r m a n c e m e t r i c s . I t i s i n t e n d e d a l s o a s p r o o f - o f - c o n c e p t c o d e o n h o w t o u s e S p a r k l i s t e n e r s f o r c u s t o m m e t r i c s c o l l e c t i o n . < / p > < u l > < l i > < p > D e v e l o p e d a n d t e s t e d f o r S p a r k 2 . 1 . 0 a n d 2 . 1 . 1 , 2 . 2 . 0 < / p > < u l > < l i > L a t e s t d e v e l o p m e n t v e r s i o n 0 . 1 2 - S N A P S H O T , l a s t m o d i f i e d J u l y 2 0 1 7 < / l i > < / u l > < / l i > < l i > < p > C r e a t e d a n d m a i n t a i n e d b y : < a h r e f = " m a i l t o : L u c a . C a n a l i @ c e r n . c h " t a r g e t = " _ b l a n k " > L u c a . C a n a l i @ c e r n . c h < / a > < / p > < u l > < l i > A d d i t i o n a l c r e d i t s t o : V i k t o r K h r i s t e n k o < / l i > < / u l > < / l i > < l i > < p > < a h r e f = " h t t p : / / d b - b l o g . w e b . c e r n . c h / b l o g / l u c a - c a n a l i / 2 0 1 7 - 0 3 - m e a s u r i n g - a p a c h e - s p a r k - w o r k l o a d - m e t r i c s - p e r f o r m a n c e - t r o u b l e s h o o t i n g " t a r g e t = " _ b l a n k " > L i n k t o t h e a c c o m p a n y i n g b l o g p o s t < / a > < / p > < / l i > < / u l > < p > < s t r o n g > W h e r e s p a r k M e a s u r e c a n b e u s e f u l : < / s t r o n g > < / p > < u l > < l i > P e r f o r m a n c e i n v e s t i g a t i o n s : M e a s u r e a n d a n a l y z e p e r f o r m a n c e i n t e r a c t i v e l y f r o m s p a r k - s h e l l ( S c a l a ) , p y s p a r k ( P y t h o n ) o r J u p y t e r n o t e b o o k s < / l i > < l i > I n s i d e y o u r c o d e : a d d i n s t r u m e n t a t i o n c a l l s i n y o u r c o d e t o u s e s p a r k M e a s u r e c u s t o m L i s t e n e r s a n d / o r u s e t h e c l a s s e s S t a g e M e t r i c s / T a s k M e t r i c s a n d r e l a t e d A P I s f o r c o l l e c t i n g , a n a l y z i n g a n d o p t i o n a l l y s a v i n g m e t r i c s d a t a < / l i > < l i > I n s t r u m e n t c o d e t h a t y o u c a n n o t c h a n g e : u s e s p a r k M e a s u r e i n t h e " F l i g h t R e c o r d e " r m o d e , t h i s r e c o r d s t h e p e r f o r m a n c e m e t r i c s a u t o m a t i c a l l y a n d s a v e s d a t a f o r l a t e r p r o c e s s i n g < / l i > < / u l > < p > < s t r o n g > M a i n c o n c e p t s u n d e r l y i n g s p a r k M e a s u r e : < / s t r o n g > < / p > < u l > < l i > T h e t o o l i s b a s e d o n t h e S p a r k L i s t e n e r i n t e r f a c e , t h a t i s u s e d a s s o u r c e f o r S p a r k w o r k l o a d m e t r i c s d a t a . < / l i > < l i > M e t r i c s a r e c o l l e c t e d a t t h e g r a n u l a r i t y o r s t a g e a n d t a s k ( c o n f i g u r a b l e ) < / l i > < l i > M e t r i c s a r e f l a t t e n e d a n d c o l l e c t e d i n t o a L i s t B u f f e r o f a c a s e c l a s s . < / l i > < l i > D a t a i s t h e n t r a n s f o r m e d i n t o a S p a r k D a t a F r a m e f o r a n a l y s i s . < / l i > < l i > D a t a c a n b e s a v e d f o r o f f l i n e a n a l y s i s < / l i > < / u l > < p > < s t r o n g > H o w t o u s e : < / s t r o n g > u s e s b t t o p a c k a g e ( o r u s e t h e j a r u p l o a d e d i n t h e t a r g e t / s c a l a - 2 . 1 1 f o l d e r i f r e l e v a n t t o y o u r e n v i r o n e m n t ) . < b r > R u n b y a d d i n g t h e t a r g e t j a r t o < c o d e > s p a r k - s u b m i t / s p a r k - s h e l l / p y s p a r k - - j a r s s p a r k - m e a s u r e _ 2 . 1 1 - 0 . 1 1 - S N A P S H O T . j a r < / c o d e > < / p > < p > < s t r o n g > E x a m p l e s < / s t r o n g > < / p > < o l > < l i > M e a s u r e m e t r i c s a t t h e S t a g e l e v e l ( e x a m p l e i n S c a l a ) : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > s t a g e M e t r i c s < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > S t a g e M e t r i c s < / s p a n > ( s p a r k ) s t a g e M e t r i c s . r u n A n d M e a s u r e ( s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t c o u n t ( * ) f r o m r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ) < / p r e > < / d i v > < o l s t a r t = " 2 " > < l i > T h i s i s a n a l t e r n a t i v e w a y t o c o l l e c t a n d p r i n t m e t r i c s ( S c a l a ) : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > s t a g e M e t r i c s < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > S t a g e M e t r i c s < / s p a n > ( s p a r k ) s t a g e M e t r i c s . b e g i n ( ) . . . e x e c u t e o n e o r m o r e < s p a n c l a s s = " p l - e n " > S p a r k < / s p a n > j o b s . . . s t a g e M e t r i c s . e n d ( ) s t a g e M e t r i c s . p r i n t R e p o r t ( ) s t a g e M e t r i c s . p r i n t A c c u m u l a b l e s < / p r e > < / d i v > < o l s t a r t = " 3 " > < l i > P r i n t a d d i t i o n a l a c c u m u l a b l e s m e t r i c s ( i n c l u d i n g S Q L m e t r i c s ) c o l l e c t e d a t s t a g e - l e v e l , S c a l a : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > s t a g e M e t r i c s . p r i n t A c c u m u l a b l e s ( ) < / p r e > < / d i v > < o l s t a r t = " 4 " > < l i > C o l l e c t a n d r e p o r t T a s k m e t r i c s , S c a l a : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > t a s k M e t r i c s < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > T a s k M e t r i c s < / s p a n > ( s p a r k ) t a s k M e t r i c s . r u n A n d M e a s u r e ( s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t c o u n t ( * ) f r o m r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ) < / p r e > < / d i v > < o l s t a r t = " 5 " > < l i > H o w t o c o l l e c t s t a g e m e t r i c s , e x a m p l e i n P y t h o n : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - p y t h o n " > < p r e > s t a g e M e t r i c s < s p a n c l a s s = " p l - k " > = < / s p a n > s c . _ j v m . c h . c e r n . s p a r k m e a s u r e . S t a g e M e t r i c s ( s p a r k . _ j s p a r k S e s s i o n ) s t a g e M e t r i c s . b e g i n ( ) s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t c o u n t ( * ) f r o m r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ( ) s t a g e M e t r i c s . e n d ( ) s t a g e M e t r i c s . p r i n t R e p o r t ( ) s t a g e M e t r i c s . p r i n t A c c u m u l a b l e s ( ) < / p r e > < / d i v > < o l s t a r t = " 6 " > < l i > H o w t o c o l l e c t t a s k m e t r i c s , e x a m p l e i n P y t h o n : < / l i > < / o l > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - p y t h o n " > < p r e > t a s k M e t r i c s < s p a n c l a s s = " p l - k " > = < / s p a n > s c . _ j v m . c h . c e r n . s p a r k m e a s u r e . T a s k M e t r i c s ( s p a r k . _ j s p a r k S e s s i o n , < s p a n c l a s s = " p l - c 1 " > F a l s e < / s p a n > ) t a s k M e t r i c s . b e g i n ( ) s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t c o u n t ( * ) f r o m r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) c r o s s j o i n r a n g e ( 1 0 0 0 ) < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ( ) t a s k M e t r i c s . e n d ( ) t a s k M e t r i c s . p r i n t R e p o r t ( ) < s p a n c l a s s = " p l - c " > < s p a n c l a s s = " p l - c " > # < / s p a n > A s a n a l t e r n a t i v e t o u s i n g b e g i n ( ) a n d e n d ( ) , y o u c a n r u n t h e f o l l o w i n g : < / s p a n > d f < s p a n c l a s s = " p l - k " > = < / s p a n > t a s k M e t r i c s . c r e a t e T a s k M e t r i c s D F ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > P e r f T a s k M e t r i c s < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t * f r o m P e r f T a s k M e t r i c s < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ( ) d f . s h o w ( ) t a s k M e t r i c s . s a v e D a t a ( d f , < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > t a s k m e t r i c s _ t e s t 1 < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > , < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > j s o n < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) < / p r e > < / d i v > < p > < s t r o n g > F l i g h t R e c o r d e r m o d e < / s t r o n g > T h i s i s f o r i n s t r u m e n t i n g S p a r k a p p l i c a t i o n s w i t h o u t t o u c h i n g t h e i r c o d e . J u s t a d d a n e x t r a c u s t o m l i s t e n e r t h a t w i l l r e c o r d t h e m e t r i c s o f i n t e r e s t a n d s a v e t o a f i l e a t t h e e n d o f t h e a p p l i c a t i o n . < / p > < u l > < l i > F o r r e c o r d i n g s t a g e m e t r i c s : < c o d e > - - c o n f s p a r k . e x t r a L i s t e n e r s = c h . c e r n . s p a r k m e a s u r e . F l i g h t R e c o r d e r S t a g e M e t r i c s < / c o d e > < / l i > < l i > F o r r e c o r d i n g t a s k - l e v e l m e t r i c s : < c o d e > - - c o n f s p a r k . e x t r a L i s t e n e r s = c h . c e r n . s p a r k m e a s u r e . F l i g h t R e c o r d e r T a s k M e t r i c s < / c o d e > < / l i > < / u l > < p > T o p o s t - p r o c e s s t h e s a v e d m e t r i c s y o u w i l l n e e d t o d e s e r i a l i z e o b j e c t s s a v e d b y t h e f l i g h t m o d e . T h i s i s a n e x a m p l e o f h o w t o d o t h a t u s i n g t h e s u p p l i e d h e l p e r o b j e c t s p a r k m e a s u r e . U t i l s < / p > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > m 1 < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > U t i l s < / s p a n > . r e a d S e r i a l i z e d S t a g e M e t r i c s ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > / t m p / s t a g e M e t r i c s . s e r i a l i z e d < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) m 1 . t o D F . s h o w < / p r e > < / d i v > < p > < s t r o n g > A n a l y s i s o f p e r f o r m a n c e m e t r i c s : < / s t r o n g > < b r > O n e o f t h e k e y f e a t u r e s o f s p a r k M e a s u r e i s t h a t i t m a k e s d a t a e a s i l y a c c e s s i b l e f o r a n a l y s i s . < b r > T h i s i s a c h i e v e d b y e x p o r t i n g t h e c o l l e c t e d d a t a i n t o S p a r k D a t a F r a m e s w h e r e t h e y c a n b e q u e r i e s w i t h S p a r k A P I s a n d / o r S Q L . I n a d d i t i o n t h e m e t r i c s c a n b e u s e d f o r p l o t t i n g a n d o t h e r v i s u a l i z a t i o n s , f o r e x a m p l e u s i n g J u p y t e r n o t e b o o k s . < / p > < p > E x a m p l e o f a n a l y s i s o f T a s k M e t r i c s u s i n g a J u p y t e r n o t e b o o k a t : < a h r e f = " h t t p s : / / g i t h u b . c o m / l u c a c a n a l i / s p a r k m e a s u r e / b l o b / m a s t e r / e x a m p l e s / S p a r k T a s k M e t r i c s A n a l y s i s E x a m p l e . i p y n b " t a r g e t = " _ b l a n k " > S p a r k T a s k M e t r i c s A n a l y s i s E x a m p l e . i p y n b < / a > < / p > < p > A d d i t i o n a l e x a m p l e c o d e : < / p > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - c " > < s p a n c l a s s = " p l - c " > / / < / s p a n > e x p o r t t a s k m e t r i c s c o l l e c t e d b y t h e L i s t e n e r i n t o a D a t a F r a m e a n d r e g i s t e r s a s a t e m p o r a r y v i e w < / s p a n > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > d f < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > t a s k M e t r i c s . c r e a t e T a s k M e t r i c s D F ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > P e r f T a s k M e t r i c s < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) < s p a n c l a s s = " p l - c " > < s p a n c l a s s = " p l - c " > / / < / s p a n > o t h e r o p t i o n : r e a d m e t r i c s p r e v i o u s l y s a v e d o n a j s o n f i l e < / s p a n > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > d f < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > s p a r k . r e a d . j s o n ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > t a s k m e t r i c s _ t e s t 1 < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) d f . c r e a t e O r R e p l a c e T e m p V i e w ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > P e r f T a s k M e t r i c s < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) < s p a n c l a s s = " p l - c " > < s p a n c l a s s = " p l - c " > / / < / s p a n > s h o w t h e t o p 5 t a s k s b y d u r a t i o n < / s p a n > s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > s e l e c t j o b I d , h o s t , d u r a t i o n f r o m P e r f T a s k M e t r i c s o r d e r b y d u r a t i o n d e s c l i m i t 5 < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ( ) < s p a n c l a s s = " p l - c " > < s p a n c l a s s = " p l - c " > / / < / s p a n > s h o w t h e a v a i l a b l e m e t r i c s < / s p a n > s p a r k . s q l ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > d e s c P e r f T a s k M e t r i c s < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) . s h o w ( ) < / p r e > < / d i v > < h r > < p > < s t r o n g > A d d i t i o n a l i n f o o n S t a g e M e t r i c s i m p l e m e n t a t i o n : < / s t r o n g > < / p > < u l > < l i > < p > c l a s s S t a g e I n f o R e c o r d e r L i s t e n e r e x t e n d s S p a r k L i s t e n e r < / p > < u l > < l i > C o l l e c t s m e t r i c s a t t h e e n d o f e a c h S t a g e < / l i > < l i > T h i s i s t h e m a i n e n g i n e t o c o l l e c t m e t r i c s . M e t r i c s a r e c o l l e c t e d i n a L i s t B u f f e r o f c a s e c l a s s S t a g e V a l s f o r m e t r i c s g e n e r a t i n g f r o m T a s k M e t r i c s a n d i n a L i s t B u f f e r o f a c c u m u l a b l e s I n f o f o r m e t r i c s g e n e r a t e d f r o m " a c c u m u l a b l e s " . < / l i > < / u l > < / l i > < l i > < p > c a s e c l a s s S t a g e V a l s - & g t ; u s e d t o c o l l e c t a n d s t o r e " f l a t t e n " t h e s t a g e i n f o a n d T a s k M e t r i c i n f o c o l l e c t e d b y t h e L i s t e n e r . M e t r i c s a r e a g g r e g a t e d p e r s t a g e a n d i n c l u d e : e x e c u t o r r u n t i m e , C P U t i m e , s h u f f l e r e a d a n d w r i t e t i m e , s e r i a l i z a t i o n a n d d e s e r i a l i z a t i o n t i m e , H D F S I / O m e t r i c s , e t c < / p > < / l i > < l i > < p > c a s e c l a s s a c c u m u l a b l e s I n f o - & g t ; u s e d t o c o l l e c t a n d s t o r e t h e m e t r i c s o f t y p e " a c c u m u l a b l e s " < / p > < / l i > < l i > < p > c a s e c l a s s S t a g e M e t r i c s ( s p a r k S e s s i o n : S p a r k S e s s i o n ) < / p > < u l > < l i > H e l p e r c l a s s t o h e l p i n c o l l e c t i n g a n d s t o r i n g p e r f o r m a n c e m e t r i c s . I t p r o v i d e s w r a p p e r m e t h o d s t o a d d t h e l i s t e n e r t o t h e S p a r k C o n t e x t ( L i s t e n e r B u s ) a n d o t h e r o t h e r m e t h o d s f o r a n a l y s i s . W h e n y o u i n s t a n t i a t e t h i s c l a s s y o u s t a r t c o l l e c t i n g s t a g e m e t r i c s d a t a . < / l i > < l i > d e f b e g i n ( ) a n d d e f e n d ( ) m e t h o d s - & g t ; u s e t h e m a t m a r k b e g i n n i n g a n d e n d o f d a t a c o l l e c t i o n i f y o u p l a n t o u s e p r i n t R e p o r t ( ) < / l i > < l i > d e f c r e a t e S t a g e M e t r i c s D F ( n a m e T e m p V i e w : S t r i n g = " P e r f S t a g e M e t r i c s " ) : D a t a F r a m e - & g t ; c o n v e r t s t h e L i s t B u f f e r w i t h s t a g e m e t r i c s i n t o a D a t a F r a m e a n d c r e a t e s a t e m p o r a r y v i e w , u s e f u l f o r d a t a a n a l y t i c s < / l i > < l i > d e f c r e a t e A c c u m u l a b l e s D F ( n a m e T e m p V i e w : S t r i n g = " A c c u m u l a b l e s S t a g e M e t r i c s " ) : D a t a F r a m e - & g t ; c o n v e r t s t h e a c c u m u l a b l e s a g g r e g a t e d a t s t a g e l e v e l i n a L i s t B u f f e r i n t o a D a t a F r a m e a n d t e m p o r a r y v i e w < / l i > < l i > d e f p r i n t R e p o r t ( ) : U n i t - & g t ; p r i n t s a r e p o r t o f t h e m e t r i c s i n " P e r f S t a g e M e t r i c s " b e t w e e n t h e t i m e s t a m p s : b e g i n S n a p s h o t a n d e n d S n a p s h o t < / l i > < l i > d e f p r i n t A c c u m u l a b l e s ( ) : U n i t - & g t ; p r i n t s t h e a c c u m u l a b l e s m e t r i c s d i v i d e d i n 2 g r o u p s : i n t e r n a l m e t r i c s ( w h i c h a r e b a s i c a l l y t h e s a m e a s T a s k M e t r i c s ) a n d t h e r e s t ( t y p i c a l l y m e t r i c s g e n e r a t e d c u s t o m b y p a r t s o f t h e S Q L e x e c u t i o n e n g i n e ) < / l i > < l i > d e f r u n A n d M e a s u r e [ T ] ( f : = & g t ; T ) : T - & g t ; a h a n d y e x t e n s i o n t o d o 3 a c t i o n s : r u n s t h e S p a r k w o r k l o a d , m e a s u r e i t s m e t r i c s a n d p r i n t t h e r e p o r t . Y o u c a n s e e t h i s a s a n e x t e n s i o n o f s p a r k . t i m e ( ) c o m m a n d < / l i > < l i > d e f s a v e D a t a ( d f : D a t a F r a m e , f i l e N a m e : S t r i n g , f i l e F o r m a t : S t r i n g = " j s o n " ) - & g t ; h e l p e r m e t h o d t o s a v e m e t r i c s d a t a c o l l e c t e d i n a D a t a F r a m e f o r l a t e r a n a l y s i s / p l o t t i n g < / l i > < / u l > < / l i > < / u l > < p > < s t r o n g > A d d i t i o n a l i n f o o n T a s k M e t r i c s : < / s t r o n g > < / p > < u l > < l i > c a s e c l a s s T a s k M e t r i c s ( s p a r k S e s s i o n : S p a r k S e s s i o n , g a t h e r A c c u m u l a b l e s : B o o l e a n = f a l s e ) < u l > < l i > C o l l e c t s m e t r i c s a t t h e e n d o f e a c h T a s k < / l i > < l i > T h i s i s t h e m a i n e n g i n e t o c o l l e c t m e t r i c s . M e t r i c s a r e c o l l e c t e d i n a L i s t B u f f e r o f c a s e c l a s s T a s k V a l s < / l i > < l i > o p t i o n a l l y g a t h e r s a c c u m u l a b e l s ( w i t h t a s k m e t r i c s a n d S Q L m e t r i c s p e r t a s k i f g a t h e r A c c u m u l a b l e s i s s e t t o t r u e ) < / l i > < / u l > < / l i > < l i > c a s e c l a s s T a s k V a l s - & g t ; u s e d t o c o l l e c t a n d s t o r e " f l a t t e n " T a s k M e t r i c i n f o c o l l e c t e d b y t h e L i s t e n e r . M e t r i c s a r e c o l l e c t e d p e r t a s k a n d i n c l u d e : e x e c u t o r r u n t i m e , C P U t i m e , s c h e d u l e r d e l a y , s h u f f l e r e a d a n d w r i t e t i m e , s e r i a l i z a t i o n a n d d e s e r i a l i z a t i o n t i m e , H D F S I / O m e t r i c s , e t c r e a d a n d w r i t e t i m e , s e r i a l i z a a n d d e s e r i a l i z a t i o n t i m e , H D F S I / O m e t r i c s , e t c < / l i > < l i > c a s e c l a s s T a s k M e t r i c s ( s p a r k S e s s i o n : S p a r k S e s s i o n < u l > < l i > H e l p e r c l a s s t o h e l p i n c o l l e c t i n g a n d s t o r i n g p e r f o r m a n c e m e t r i c s . I t p r o v i d e s w r a p p e r m e t h o d s t o a d d t h e l i s t e n e r t o t h e S p a r k C o n t e x t ( L i s t e n e r B u s ) a n d o t h e r o t h e r m e t h o d s f o r a n a l y s i s . W h e n y o u i n s t a n t i a t e t h i s c l a s s y o u s t a r t c o l l e c t i n g t a s k - l e v e l m e t r i c s d a t a . < / l i > < l i > d e f b e g i n ( ) a n d d e f e n d ( ) m e t h o d s - & g t ; u s e t h e m a t m a r k b e g i n n i n g a n d e n d o f d a t a c o l l e c t i o n i f y o u p l a n t o u s e p r i n t R e p o r t ( ) < / l i > < l i > d e f p r i n t R e p o r t ( ) : U n i t - & g t ; p r i n t s a r e p o r t o f t h e m e t r i c s i n " T a s k S t a g e M e t r i c s " b e t w e e n t h e t i m e s t a m p s : b e g i n S n a p s h o t a n d e n d S n a p s h o t < / l i > < l i > d e f c r e a t e T a s k M e t r i c s D F ( n a m e T e m p V i e w : S t r i n g = " P e r f T a s k M e t r i c s " ) : D a t a F r a m e - & g t ; c o n v e r t s t h e L i s t B u f f e r w i t h s t a g e m e t r i c s i n t o a D a t a F r a m e a n d c r e a t e s a t e m p o r a r y v i e w , u s e f u l f o r d a t a a n a l y t i c s < / l i > < l i > d e f r u n A n d M e a s u r e [ T ] ( f : = & g t ; T ) : T - & g t ; a h a n d y e x t e n s i o n t o d o 3 a c t i o n s : r u n s t h e S p a r k w o r k l o a d , m e a s u r e i t s m e t r i c s a n d p r i n t t h e r e p o r t . Y o u c a n s e e t h i s a s a n e x t e n s i o n o f s p a r k . t i m e ( ) c o m m a n d < / l i > < l i > d e f s a v e D a t a ( d f : D a t a F r a m e , f i l e N a m e : S t r i n g , f i l e F o r m a t : S t r i n g = " j s o n " ) - & g t ; h e l p e r m e t h o d t o s a v e m e t r i c s d a t a c o l l e c t e d i n a D a t a F r a m e f o r l a t e r a n a l y s i s / p l o t t i n g < / l i > < l i > d e f c r e a t e A c c u m u l a b l e s D F ( n a m e T e m p V i e w : S t r i n g = " A c c u m u l a b l e s T a s k M e t r i c s " ) : D a t a F r a m e - & g t ; c o n v e r t s t h e a c c u m u l a b l e s a g g r e g a t e d a t t a s k l e v e l i n a L i s t B u f f e r i n t o a D a t a F r a m e a n d t e m p o r a r y v i e w < / l i > < l i > d e f p r i n t A c c u m u l a b l e s ( ) : U n i t - & g t ; p r i n t s t h e a c c u m u l a b l e s m e t r i c s d i v i d e d i n 2 g r o u p s : i n t e r n a l m e t r i c s ( w h i c h a r e b a s i c a l l y t h e s a m e a s T a s k M e t r i c s ) a n d t h e r e s t ( t y p i c a l l y m e t r i c s g e n e r a t e d c u s t o m b y p a r t s o f t h e S Q L e x e c u t i o n e n g i n e ) < / l i > < / u l > < / l i > < / u l > < p > < s t r o n g > A d d i t i o n a l i n f o o n F l i g h t R e c o r d e r M o d e : < / s t r o n g > < / p > < p > T o u s e i n f l i g h t r e c o r d e r m o d e a d d o n e o r b o t h o f t h e f o l l o w i n g t o t h e s p a r k - s u b m i t / s p a r k - s h e l l / p y s p a r k c o m m a n d l i n e : < / p > < u l > < l i > - - c o n f s p a r k . e x t r a L i s t e n e r s = c h . c e r n . s p a r k m e a s u r e . F l i g h t R e c o r d e r S t a g e M e t r i c s < / l i > < l i > - - c o n f c l a s s F l i g h t R e c o r d e r T a s k M e t r i c s ( c o n f : S p a r k C o n f ) e x t e n d s T a s k I n f o R e c o r d e r L i s t e n e r < / l i > < / u l > < p > T h e f l i g h t r e c o r d e r m o d e w r i t e s t h e c o l l e c t e d m e t r i c s s e r i a l i z a e d i n t o a f i l e i n t h e d r i v e r ' s f i l e s y s t e m . O p t i o n a l l y a d d o n e o r b o t h o f t h e f o l l o w i n g c o n f i g u r a t i o n p a r a m e t e r s t o d e t e r m i n e t h e p a t h o f t h e o u t p u t f i l e < / p > < u l > < l i > - - c o n f s p a r k . e x e c u t o r E n v . s t a g e M e t r i c s F i l e N a m e " = ( d e f a u l t i s " / t m p / s t a g e M e t r i c s . s e r i a l i z e d " ) < / l i > < l i > - - c o n f s p a r k . e x e c u t o r E n v . t a s k M e t r i c s F i l e N a m e " = ( d e f a u l t i s " / t m p / t a s k M e t r i c s . s e r i a l i z e d " ) < / l i > < / u l > < p > < s t r o n g > A d d i t i o n a l i n f o o n U t i l s : < / s t r o n g > < / p > < p > T h e o b j e c t U t i l s c o n t a i n s s o m e h e l p e r c o d e f o r t h e s p a r k M e a s u r e p a c k a g e < / p > < u l > < l i > T h e m e t h o d s f o r m a t D u r a t i o n a n d f o r m a t B y t e s a r e u s e d f o r p r i n t i n g s t a g e m e t r i c s r e p o r t s < / l i > < l i > T h e m e t h o d s r e a d S e r i a l i z e d S t a g e M e t r i c s a n d r e a d S e r i a l i z e d T a s k M e t r i c s a r e u s e d t o r e a d d a t a s e r i a l i z e d i n t o f i l e s b y " f l i g h t r e c o r d e r " m o d e < / l i > < / u l > < p > E x a m p l e s : < / p > < d i v c l a s s = " h i g h l i g h t h i g h l i g h t - s o u r c e - s c a l a " > < p r e > < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > t a s k V a l s < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > U t i l s < / s p a n > . r e a d S e r i a l i z e d T a s k M e t r i c s ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > & l t ; f i l e n a m e & g t ; < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > t a s k M e t r i c s D F < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > t a s k V a l s . t o D F < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > s t a g e V a l s < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > c h . c e r n . s p a r k m e a s u r e . < s p a n c l a s s = " p l - e n " > U t i l s < / s p a n > . r e a d S e r i a l i z e d S t a g e M e t r i c s ( < s p a n c l a s s = " p l - s " > < s p a n c l a s s = " p l - p d s " > " < / s p a n > & l t ; f i l e n a m e & g t ; < s p a n c l a s s = " p l - p d s " > " < / s p a n > < / s p a n > ) < s p a n c l a s s = " p l - k " > v a l < / s p a n > < s p a n c l a s s = " p l - e n " > s t a g e M e t r i c s D F < / s p a n > < s p a n c l a s s = " p l - k " > = < / s p a n > s t a g e V a l s . t o D F < / p r e > < / d i v > < p > < s t r o n g > K n o w n i s s u e s a n d T O D O l i s t < / s t r o n g > < / p > < u l > < l i > g a t h e r A c c u m u l a b l e s = t r u e f o r t a s k M e t r i c s ( s p a r k S e s s i o n : S p a r k S e s s i o n , g a t h e r A c c u m u l a b l e s : B o o l e a n ) c u r r e n t l y o n l y w o r k s o n l y o n S p a r k 2 . 1 . x a n d b r e a k s f r o m S p a r k 2 . 2 . 1 . T h i s i s a c o n s e q u e n c e o f < a h r e f = " h t t p s : / / g i t h u b . c o m / a p a c h e / s p a r k / p u l l / 1 7 5 9 6 " t a r g e t = " _ b l a n k " > S P A R K P R 1 7 5 9 6 < / a > . T o d o : r e s t o r e t h e f u n c t i o n a l i t y o f m e a s u r i n g t a s k a c c u m u l a b l e s f o r S p a r k 2 . 2 . x . < / l i > < l i > T a s k / s t a g e f a i l u r e s a n d o t h e r e r r o r s a r e m o s t l y n o t h a n d l e d b y t h e c o d e i n t h i s v e r s i o n , t h i s p u t s t h e e f f o r t o n t h e u s e r t o v a l i d a t e t h e o u t p u t . T h i s n e e d s t o b e f i x e d i n a f u t u r e v e r s i o n . < / l i > < l i > F o l l o w i n g < a h r e f = " h t t p s : / / g i t h u b . c o m / a p a c h e / s p a r k / p u l l / 1 8 2 4 9 / f i l e s " t a r g e t = " _ b l a n k " > S P A R K P R 1 8 2 4 9 < / a > a d d s u p p o r t f o r t h e n e w l y i n t r o d u c e d r e m o t e B y t e s R e a d T o D i s k T a s k M e t r i c ( I b e l i e v e t h i s i s f o r S p a r k 2 . 3 , t o b e c h e c k e d ) . < / l i > < l i > F o l l o w i n g < a h r e f = " h t t p s : / / g i t h u b . c o m / a p a c h e / s p a r k / p u l l / 1 8 1 6 2 " t a r g e t = " _ b l a n k " > S P A R K P R 1 8 1 6 2 < / a > T a s k M e t r i c s . _ u p d a t e d B l o c k S t a t u s e s i s o f f b y d e f a u l t , s o m a y b e c a n b e t a k e n o u t o f t h e l i s t o f m e t r i c s c o l l e c t e d b y s p a r k M e t r i c < / l i > < / u l > < / a r t i c l e > < / d i v >