What is Apache Spark?

Prezentare generală: Apache spark este un motor de general de înaltă performanță utilizate pentru procesarea datelor la scară largă. It is an open source framework used for cluster computing. Aim of this framework is to make the data analytic faster – atât în ​​ceea ce privește dezvoltarea și execuția. In this document, Voi vorbi despre Apache Spark și a discuta diferitele aspecte ale acestui cadru.

Introducere: scânteie Apache este un cadru open source pentru calcul grup. Acesta este construit pe partea superioară a Hadoop Distributed File System (HDF). Ea nu utiliza harta în două etape reduce paradigma. Dar, în același timp, promite până la 100 performanțe mai ori pentru anumite aplicații. Spark oferă, de asemenea, conduce inițiale pentru calcul de cluster în memoria. Acest lucru permite programelor de aplicație pentru a încărca datele în memoria unui grup astfel încât să poată fi interogate repetat. This în memoria calcul face Spark una dintre cele mai importante componente în mare lume calcul a datelor.

Features: Acum, să ne discuta caracteristicile pe scurt. Apache Spark vine cu următoarele caracteristici:

  • API-uri bazate pe Java, Scala si Python.
  • Scalabilitate variind de la 80 to 100 noduri.
  • Abilitatea de a CCD cache în memoria de set de date interactive. E.g. extrage un set de lucru, cache-l și interogare l în mod repetat.
  • Biblioteca eficient pentru prelucrare flux.
  • Biblioteca eficient pentru invatare mecanica și prelucrare grafic.

În timp ce vorbesc despre Spark, în contextul științei datelor se observă că scânteie are capacitatea de a menține datele rezidente în memorie. Această abordare îmbunătățește performanțele în comparație cu harta reduce. Privind în partea de sus, scânteie conține un program de conducător auto, care rulează principala metodă a clientului și execută diferite operațiuni în modul paralel pe un mediu de cluster.

Spark oferă CCD elastic distribuit (EET) care este o colecție de elemente care sunt distribuite de-a lungul diferitelor nodurile clusterului, astfel încât să poată fi executate în paralel. Spark are capacitatea de a stoca un RDD în memorie, permițând astfel ca acesta să fie reutilizate în mod eficient în întreaga execuția în paralel. RDDs poate, de asemenea recupera automat în caz de eșec nod.

Spark oferă, de asemenea, variabile partajate, care sunt utilizate în operațiunile paralele. Când scânteie se desfășoară în paralel ca un set de sarcini pe diferite noduri, transferă o copie a fiecărei variabile la fiecare sarcină. Aceste variabile sunt, de asemenea, în comun în diferite sarcini. În scânteie avem două tipuri de variabile partajate -

  • difuzat variabile – folosit pentru a cache o valoare în memorie
  • acumulatori – utilizat în caz de contoare și a sumelor.

Configurarea Spark:

Spark oferă trei domenii principale pentru configurarea:

  • proprietăţile Spark – Acest control de cele mai multe cererii și poate fi setat fie prin folosind SparkConf obiect sau cu ajutorul proprietăților unui sistem Java.
  • variabile de mediu – Acestea pot fi utilizate pentru a configura setările bazate mașină de ex. adresa IP cu ajutorul conf / spark-env.sh script din fiecare nod.
  • logare – Acest lucru poate fi configurat folosind proprietățile Log4j standard de.

Proprietăți Spark: Proprietățile Spark controla cele mai multe dintre setările aplicației și ar trebui să fie configurat separat pentru aplicații separate. Aceste proprietăți pot fi setate folosind obiect SparkConf și este trecut la SparkContext. SparkConf ne permite să configurați majoritatea proprietăților comune pentru a inițializa. Folosind setul () Metoda de clasa SparkConf putem stabili, de asemenea, perechi de valori-cheie. Un exemplu de cod utilizând setul () Metoda este prezentată mai jos -

Listing 1: Probă care indică metoda Set

alegerea conf = new SparkConf ()

. setMaster( “da” )

. setAppName( “Cererea mea SPARK Exemplu” )

. a stabilit( “spark.executor.memory” , “1g” )

Selecția sc = new SparkContext (conf)

Unele dintre proprietățile comune sunt –
• spark.executor.memory – Acest lucru indică cantitatea de memorie pentru a fi utilizate pe executor. •
• spark.serializer – Clasa de utilizat pentru a serializa obiecte care vor fi trimise prin rețea. Din moment ce serializarea implicit java este destul de lent, se recomandă să se utilizeze clasa org.apache.spark.serializer.JavaSerializer pentru a obține o performanță mai bună.
• spark.kryo.registrator – Clasa de utilizat pentru a înregistra claselor particularizate, dacă vom folosi serializarea Kyro
• spark.local.dir – locații care scânteie folosește ca spațiu de la zero pentru a stoca fișierele de ieșire hartă.
• spark.cores.max – Utilizat în mod autonom pentru a specifica valoarea maximă a nuclee CPU pentru a solicita.

variabile de mediu: Unele dintre setările de aprindere poate fi configurată utilizând variabilele de mediu, care sunt definite în conf / fișierul script spark-env.sh. Acestea sunt setări specifice mașinilor de exemplu. Cale de căutare al bibliotecii, Cale java, etc. Unele dintre variabilele de mediu utilizate în mod obișnuit sunt –

  • JAVA_HOME – Locul în care JAVA este instalat pe sistemul dumneavoastră.
  • PYSPARK_PYTHON – Biblioteca piton folosi PYSPARK.
  • SPARK_LOCAL_IP – adresa IP a mașinii, care este de a fi legat.
  • SPARK_CLASSPATH – Utilizate pentru a adăuga bibliotecile care sunt utilizate în timpul rulării pentru a executa.
  • SPARK_JAVA_OPTS – Utilizate pentru a adăuga opțiuni JVM

logare: Spark folosește API standard Log4j pentru înregistrarea care pot fi configurate cu ajutorul Log4j. fișier de proprietăți.

iniţializarea Spark:

Pentru a începe cu un program scânteie, primul lucru este de a crea un obiect JavaSparkContext, care spune scânteie pentru a accesa cluster. Pentru a crea un context scânteie vom crea primul obiect scânteie conf așa cum se arată mai jos:

Listing 2: La inițializarea obiectului context scânteie

SparkConfconfig = newSparkConf().setAppName(ApplicationName).setMaster(maestru);

JavaSparkContextconext = newJavaSparkContext(config);

Parametrul APPLICATIONNAME este numele aplicației noastre, care este afișat pe interfața de utilizare de cluster. Master parametru este URL-ul de cluster sau un șir local utilizat pentru a rula în modul local.

Seturile de date distribuite elastice (RDDs):

Spark se bazează pe conceptul de date CCD distribuite elastic sau RDD. RDD este o colecție tolerant la erori de elemente care pot fi exploatate în paralel. RDD pot fi create folosind oricare dintre următoarele două maniere:

  • Prin paralelizare o colecție existentă – colecții paralelizată sunt create prin apelarea metodei paraleliza a clasei JavaSparkContext în programul de șofer. Elemente ale colecției sunt copiate dintr-o colecție existentă, care poate fi operat în paralel.
  • Prin corelarea setul de date pe un sistem de stocare extern – Spark are capacitatea de a crea seturi de date distribuite din orice spațiu de stocare suportat Hadoop ex. HDF, Cassendra, Hbase etc.

Operațiuni EET:

RDD susține două tipuri de operații –

  • transformări – Utilizate pentru a crea noi seturi de date de la unul deja existent.
  • acţiuni – Aceasta returnează o valoare la programul driver după executarea codul de pe setul de date.

În RDD transformările sunt leneși. Transformări nu calcula rezultatele lor imediat. Mai degrabă ei amintesc doar transformările care sunt aplicate seturile de date de bază.

Summary: Deci, în discuția de mai sus am explicat diferite aspecte ale cadrului SPARK Apache și implementarea acestuia. Performanța SPARK peste serviciu normal MapReduce este de asemenea una dintre cele mai importante aspecte noi ar trebui să înțeleagă în mod clar.

Let us conclude our discussion in the following bullets:

  • Spark este un cadru prezentat de Apache care livreaza motor de căutare de înaltă performanță utilizat pentru a procesa pe scară mare de date.
  • Dezvoltat pe partea de sus a HDFS, dar nu utiliza harta reduce paradigma.
  • promisiuni Spark 100 performanțe mai bune decât ori Hadoop.
  • Spark cele mai bune efectuează pe clustere.
  • Scânteie poate scala până la o gamă largă de 80 to 100 noduri.
  • Spark are capacitatea de a cache seturile de date
  • Scânteie poate fi configurat cu ajutorul unui fișier de proprietăți și unele variabile de mediu.
  • Spark este bazat pe seturi de date distribuite elastice (EET) care este o colecție de avarie obiecte tolerante.
Tagged on:
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share