Cod: EAS-024
Durata: 28 ore
Durata: 28 ore
Descriere
Acest curs îi va ajuta pe cursanți să înțeleagă corect structura internă și funcționarea Apache Spark – Spark Core (RDD), Spark SQL, Spark Streaming și Spark Structured Streaming. Vom discuta despre mecanismele de rulare a componentelor clusterului Spark sub controlul diverșilor manageri de cluster, managementul alocării resurselor și mecanismele de operare a planificatorului. Se va concentra pe avantajele formatului Tungsten de vizualizare internă și al optimizatorului Catalyst.Subiecte curs
1. Examinați caracteristicile Scala utilizate în cadrul Spark2. Teorie:
1. var and val, val (x, x), lazy val, transient lazy val
2. Type și Type, (Nil, None, Null => null, Nothing, Unit => (), Any, AnyRef, AnyVal, String, interpolation
3. class, object (case), abstract class, trait
4. Funcția Scala, metode, lambda
5. Generic, ClassTag, covariant, contravariant, invariant position, F[_], *
6. Potrivirea modelului și construcții if then else
7. Colectare mutabilă și imuabilă, Iterator, operație de colectare
8. Monads (Option, Either, Try, Future, ....), Try().recovery)
9. map, flatMap, foreach, pentru înțelegere
10. Implicits, private[sql], package
11. Scala sbt, ansamblu
12. Encoder, Product
13. Scala libs pentru Spark: scopt, chimney, jsoniter
Modulul 1 – RDD
1. Teoria RDD api:
1. RDD care creează API: din matrice, din fișier. de la DS
2. Operațiuni de bază RDD: map, flatMap, filter, reduceByKey, sort
3. Librării de analiză temporală
2. Teoria RDD detalii:
1. Iterator + mapPartitions()
2. Calea de creare a RDD: compute() și getPartitions()
3. Partitii
4. Partitioner: Hash și Range
5. Dependențe: wide și narrow
6. Joins: inner, cogroup, join fără a amesteca
7. Plan de interogare
Modulul 2 - DataFrame & DataSet, Spark DSL și Spark SQL
1. Teoria DataFrame, DataSet API:
1. Crearea DataFrame: memorie din fișier (HDFS, S3, FS) (Avro, Orc, Parquet)
2. Spark DSL: Alăturați-vă operațiunilor de difuzare, grupate
3. Spark SQL: Funcții ferestre, partiții unice
4. Rezolvarea problemelor Scala UDF
5. Catalog Spark
2. Recreează codul folosind planuri
1. Catalyst Optimiser: Planuri logice și fizice
2. Codegen
3. Persist vs Cache vs Checkpoint
4. Crearea căii DataFrame
5. Raw vs InternalRaw
Modulul 3 - Optimizarea Spark
1. Comparați viteza, dimensiunea RDD, DataFrame, DataSet
2. Comparați numărarea crimelor: SortMerge Join, BroadCast, BlumFilter
3. Rezolvați problemele cu o îmbinare înclinată
4. Construiți UDF pentru Python și Scala
5. Probleme UDF
Modulul 4 - Externe și conectori
1. Cum să citiți/scrieți date din stocarea fișierelor (HDFS, S3, FTP, FS)
2. Ce format de date să alegeți (Json, CSV, Avro, Orc, Parquet, Delta, ... )
3. Cum să paralelizezi citirea/scrierea cu JDBC
4. Cum se creează un cadru de date din MPP (Cassandra, vertica, gp)
5. Cum să lucrezi cu Kafka
6. Cum să vă scrieți propriile conectori
7. Scrieți UDF pentru unirea cu cassandra
Modulul 5 – Testare
1. Scrieți un test pentru data marts scris în modul (Exercițiu: găsiți ora populară pentru comenzi, găsiți cele mai populare cartiere pentru comenzi, găsiți distribuția la distanță pentru comenzile grupate pe districte)
2. Teorie:
1. Testarea unitară
2. Revizuirea codului
3. QA
4. CI/CD
5. Probleme
6. Libs care rezolvă aceste probleme
Modulul 6 - Spark Cluster
1. Construiți configurația cu alocare
2. Comparați mai mulți workeri
3. Alocarea dinamică a resurselor
4. Gestionarea manuală a executorilor de executare
Modulul 7 - Spark streaming
1. [Rezolvați problema cu scrierea Cassandra](src/main/scala/mod4connectors/DataSetsWithCassandra.scala)
2. Construiește Spark Structure Citind Kafka
3. Construiți o structură Spark folosind stare
4. Construiește Spark Structure Scriind Cassandra
Obiective
- Înțelegeți structura internă a lui Spark
- Înțelegeți implementarea, configurarea și execuția componentelor Spark pe diferite clustere (Standalone, YARN, Mesos)
- Optimizați sarcinile Spark bazate pe RDD
- Optimizați sarcinile Spark SQL
- Optimizați sarcinile Microbatch și Structured Streaming
Public tinta
- Developeri
- Arhitecti Software