{"id":30548,"date":"2019-10-31T21:36:08","date_gmt":"2019-10-31T18:36:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/konfigurirovanie-spark-na-yarn\/"},"modified":"2019-10-31T21:36:08","modified_gmt":"2019-10-31T18:36:08","slug":"konfigurirovanie-spark-na-yarn","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/konfigurirovanie-spark-na-yarn","title":{"rendered":"Configurazione di Spark su YARN","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ciao Habr! Ieri durante <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/events\/1825957590998380\/\">il meetup dedicato ad Apache Spark<\/a><\/noindex>, dai ragazzi di Rambler&#038;Co, ci sono state molte domande da parte dei partecipanti riguardo alla configurazione di questo strumento. Abbiamo deciso di condividere la nostra esperienza a riguardo. L'argomento non \u00e8 semplice \u2014 quindi vi invitiamo a condividere le vostre esperienze anche nei commenti, forse anche noi non stiamo comprendendo o utilizzando qualcosa nel modo giusto.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nUna piccola introduzione: come utilizziamo Spark. Abbiamo un programma di tre mesi <noindex><a rel=\"nofollow\" href=\"http:\/\/newprolab.com\/ru\/bigdata?utm_source=habr&amp;utm_campaign=spark\">\u201cSpecialista in Big Data\u201d<\/a><\/noindex>, e nel secondo modulo i nostri partecipanti lavorano con questo strumento. Di conseguenza, il nostro compito come organizzatori \u00e8 preparare un cluster per l'uso in questo caso specifico.<\/p>\n<p>La particolarit\u00e0 del nostro utilizzo \u00e8 che il numero di persone che lavorano contemporaneamente su Spark pu\u00f2 corrispondere all'intero gruppo. Ad esempio, durante il seminario, quando tutti provano e ripetono ci\u00f2 che fa il nostro docente. E questo non sono pochi: talvolta quasi 40 persone. Probabilmente ci sono poche aziende al mondo che affrontano uno scenario di utilizzo simile.<\/p>\n<p>In seguito vi spiegher\u00f2 come e perch\u00e9 abbiamo scelto determinati parametri di configurazione.<\/p>\n<p>Iniziamo dall'inizio. Spark offre 3 modalit\u00e0 per operare su un cluster: standalone, utilizzando Mesos e con YARN. Abbiamo deciso di optare per la terza opzione, poich\u00e9 era la pi\u00f9 logica per noi. Abbiamo gi\u00e0 un cluster Hadoop. I nostri partecipanti conoscono bene la sua architettura. Utilizziamo YARN.<\/p>\n<pre><code class=\"apache\">spark.master=yarn<\/code><\/pre>\n<p>\nOra diventa interessante. Ognuna di queste 3 modalit\u00e0 di distribuzione ha 2 opzioni di deploy: client e cluster. Basandoci su <noindex><a rel=\"nofollow\" href=\"http:\/\/spark.apache.org\/docs\/latest\/running-on-yarn.html\">documentazione<\/a><\/noindex> e su vari riferimenti su internet, si pu\u00f2 dedurre che la modalit\u00e0 client \u00e8 adatta per il lavoro interattivo, ad esempio tramite jupyter notebook, mentre la modalit\u00e0 cluster \u00e8 pi\u00f9 adatta per soluzioni in produzione. Nel nostro caso, ci interessava il lavoro interattivo, quindi:<\/p>\n<pre><code class=\"apache\">spark.deploy-mode=client<\/code><\/pre>\n<p>\nIn effetti, da questo momento Spark inizier\u00e0 a funzionare su YARN, ma non era sufficiente per noi. Poich\u00e9 ci occupiamo di big data, a volte ai partecipanti mancavano le risorse che venivano fornite tramite una distribuzione uniforme. E qui abbiamo trovato qualcosa di interessante: l'allocazione dinamica delle risorse. In breve, la questione \u00e8 la seguente: se hai un compito pesante e il cluster \u00e8 libero (per esempio, al mattino), grazie a questa opzione Spark pu\u00f2 fornirti risorse aggiuntive. La necessit\u00e0 viene calcolata tramite una formula piuttosto astuta. Non entriamo nei dettagli, funziona piuttosto bene.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.enabled=true<\/code><\/pre>\n<p>\nAbbiamo impostato questo parametro, e all'avvio Spark ha sollevato un errore e non si \u00e8 avviato. \u00c8 giusto, perch\u00e9 avremmo dovuto leggere <noindex><a rel=\"nofollow\" href=\"http:\/\/spark.apache.org\/docs\/latest\/configuration.html\">documentazione<\/a><\/noindex> pi\u00f9 attentamente. \u00c8 specificato che per far funzionare tutto correttamente, \u00e8 necessario abilitare un ulteriore parametro.<\/p>\n<pre><code class=\"apache\">spark.shuffle.service.enabled=true<\/code><\/pre>\n<p>\nA cosa serve? Quando il nostro job non richiede pi\u00f9 una certa quantit\u00e0 di risorse, Spark deve restituirle al pool generale. La fase pi\u00f9 laboriosa in quasi qualsiasi compito MapReduce \u00e8 la fase di Shuffle. Questo parametro consente di conservare i dati generati in questa fase e di liberare gli executors di conseguenza. Un executor \u00e8 un processo che calcola tutto sul worker. Ha un certo numero di core e una certa quantit\u00e0 di memoria.<\/p>\n<p>Abbiamo aggiunto questo parametro. Tutto sembra funzionare. \u00c8 diventato evidente che ai partecipanti venivano realmente forniti pi\u00f9 risorse quando ne avevano bisogno. Ma \u00e8 emerso un altro problema: a un certo punto, gli altri partecipanti si svegliavano e volevano anche utilizzare Spark, ma tutto era occupato, e loro erano scontenti. Possono capire. Abbiamo iniziato a guardare nella documentazione. L\u00ec abbiamo scoperto che ci sono ancora alcuni parametri tramite i quali \u00e8 possibile influenzare il processo. Ad esempio, se l'executor \u00e8 in modalit\u00e0 inattesa, dopo quanto tempo possiamo recuperare le risorse?<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.executorIdleTimeout=120s<\/code><\/pre>\n<p>\nNel nostro caso, se i vostri executors non fanno nulla per due minuti, vi preghiamo di restituirli al pool comune. Ma anche questo parametro non era sempre sufficiente. Era evidente che una persona non stava facendo nulla da tempo, ma le risorse non venivano rilasciate. Si \u00e8 scoperto che c'era un altro parametro speciale: dopo quanto tempo ritirare gli executors che contengono dati cache. Di default, questo parametro era impostato su infinity! Lo abbiamo corretto.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.cachedExecutorIdleTimeout=600s<\/code><\/pre>\n<p>\nQuindi, se per 5 minuti i vostri executors non fanno nulla, consegnateli al pool comune. In questo modo, la velocit\u00e0 di rilascio e distribuzione delle risorse per un gran numero di utenti \u00e8 diventata soddisfacente. Il numero di lamentele \u00e8 diminuito. Ma abbiamo deciso di andare oltre e limitare il numero massimo di executors per un'applicazione, essenzialmente per un partecipante al programma.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.maxExecutors=19<\/code><\/pre>\n<p>\nOra, naturalmente, ci sono stati dei reclami dall'altro lato: \u201cil cluster \u00e8 inattivo e ho solo 19 executors\u201d, ma che ci possiamo fare \u2014 \u00e8 necessario trovare un giusto equilibrio. Non \u00e8 possibile rendere tutti felici.<\/p>\n<p>E un'altra piccola storia legata alle specificit\u00e0 del nostro caso. Un giorno, durante una lezione pratica, alcune persone sono arrivate in ritardo e per qualche motivo Spark non \u00e8 partito. Abbiamo controllato la quantit\u00e0 di risorse disponibili \u2014 sembrava ci fossero. Spark dovrebbe avviarsi. Fortunatamente, a quel punto la documentazione era gi\u00e0 registrata nella nostra memoria e ci siamo ricordati che, quando avvia Spark, cerca una porta sulla quale partire. Se la prima porta dell'intervallo \u00e8 occupata, passa a quella successiva. Se \u00e8 libera, la prende. E c'\u00e8 un parametro che indica il numero massimo di tentativi per questo. Per impostazione predefinita, \u00e8 16. Un numero inferiore al numero di persone nel nostro gruppo durante la lezione. Di conseguenza, dopo 16 tentativi, Spark abbandonava e diceva che non poteva avviarsi. Abbiamo corretto questo parametro.<\/p>\n<pre><code class=\"apache\">spark.port.maxRetries=50<\/code><\/pre>\n<p>\nOra parler\u00f2 di alcune impostazioni che non sono molto legate alla specificit\u00e0 del nostro caso.<\/p>\n<p>Per un avvio pi\u00f9 rapido di Spark, si consiglia di comprimere la cartella jars, situata nella directory home di SPARK_HOME, e di caricarla su HDFS. In questo modo non perder\u00e0 tempo a caricare questi jar sui worker.<\/p>\n<pre><code class=\"apache\">spark.yarn.archive=hdfs:\/\/\/tmp\/spark-archive.zip<\/code><\/pre>\n<p>\nPer un funzionamento pi\u00f9 veloce, si consiglia di utilizzare kryo come serializzatore. \u00c8 pi\u00f9 ottimizzato rispetto a quello di default.<\/p>\n<pre><code class=\"apache\">spark.serializer=org.apache.spark.serializer.KryoSerializer<\/code><\/pre>\n<p>\nC'\u00e8 anche un problema noto di Spark, in cui spesso si interrompe a causa della memoria. Questo accade frequentemente quando i lavoratori hanno completato i calcoli e stanno inviando i risultati al driver. Abbiamo aumentato questo parametro. Di default \u00e8 1 GB, noi lo abbiamo impostato a 3.<\/p>\n<pre><code class=\"apache\">spark.driver.maxResultSize=3072<\/code><\/pre>\n<p>\nInfine, come dessert. Come aggiornare Spark alla versione 2.1 sulla distribuzione HortonWorks \u2014 HDP 2.5.3.0. Questa versione di HDP include una versione preinstallata 2.0, ma un giorno abbiamo deciso che Spark si stava sviluppando rapidamente e che ogni nuova versione risolveva alcuni bug e offriva ulteriori funzionalit\u00e0, incluse quelle per l'API python, quindi abbiamo deciso di procedere con l'aggiornamento.<\/p>\n<p>Abbiamo scaricato la versione dal sito ufficiale per Hadoop 2.7. L'abbiamo estratta e posizionata nella cartella di HDP. Abbiamo creato i collegamenti simbolici necessari. Lanciamo \u2014 ma non si avvia. Mostra un errore piuttosto poco chiaro.<\/p>\n<pre><code class=\"apache\">java.lang.NoClassDefFoundError: com\/sun\/jersey\/api\/client\/config\/ClientConfig<\/code><\/pre>\n<p>\nCercando su Google, abbiamo scoperto che Spark ha deciso di non aspettare che Hadoop si evolvesse e ha scelto di utilizzare una nuova versione di jersey. L\u00ec si stanno gi\u00e0 confrontando su questo argomento in JIRA. La soluzione \u00e8 stata: scaricare <noindex><a rel=\"nofollow\" href=\"https:\/\/mvnrepository.com\/artifact\/com.sun.jersey\/jersey-bundle\/1.17.1\">jersey versione 1.17.1<\/a><\/noindex>. Copiarlo nella cartella jars in SPARK_HOME, ricomprimere in zip e caricarlo su HDFS.<\/p>\n<p>Abbiamo aggirato questo errore, ma ne \u00e8 emerso uno nuovo e piuttosto complesso.<\/p>\n<pre><code class=\"apache\">org.apache.spark.SparkException: L'applicazione Yarn \u00e8 gi\u00e0 terminata! Potrebbe essere stata terminata o non \u00e8 riuscita a avviare il master dell'applicazione<\/code><\/pre>\n<p>\nNel frattempo, stiamo provando a eseguire la versione 2.0 \u2014 tutto ok. Prova a indovinare qual \u00e8 il problema. Siamo entrati nei log di questa applicazione e abbiamo visto qualcosa del genere:<\/p>\n<pre><code class=\"apache\">\/usr\/hdp\/${hdp.version}\/hadoop\/lib\/hadoop-lzo-0.6.0.${hdp.version}.jar<\/code><\/pre>\n<p>\nIn generale, per qualche motivo hdp.version non \u00e8 stato risolto. Cercando su Google, abbiamo trovato una soluzione. Bisogna entrare in Ambari nelle impostazioni di YARN e aggiungere il parametro personalizzato in yarn-site:<\/p>\n<pre><code class=\"apache\">hdp.version=2.5.3.0-37<\/code><\/pre>\n<p>\nQuesta magia ha funzionato e Spark ha decollato. Abbiamo testato alcuni dei nostri notebook jupyter. Tutto funziona. Siamo pronti per il primo corso su Spark che si terr\u00e0 sabato (gi\u00e0 domani)!<\/p>\n<p><b>UPD<\/b>. Durante la lezione \u00e8 emerso un altro problema. A un certo punto, YARN ha smesso di fornire contenitori per Spark. Bisognava correggere un parametro in YARN, che di default era impostato su 0.2:<\/p>\n<pre><code class=\"apache\">yarn.scheduler.capacity.maximum-am-resource-percent=0.8<\/code><\/pre>\n<p>\nCio\u00e8 solo il 20% delle risorse era coinvolto nella distribuzione delle risorse. Modificando i parametri, abbiamo riavviato YARN. Il problema \u00e8 stato risolto e gli altri partecipanti sono stati in grado di avviare il contesto spark.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/newprolab\/blog\/327556\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0425\u0430\u0431\u0440, \u043f\u0440\u0438\u0432\u0435\u0442! \u0412\u0447\u0435\u0440\u0430 \u043d\u0430 \u043c\u0438\u0442\u0430\u043f\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c Apache Spark, \u043e\u0442 \u0440\u0435\u0431\u044f\u0442 \u0438\u0437 Rambler&#038;Co, \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u0420\u0435\u0448\u0438\u043b\u0438 \u043f\u043e \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0422\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043c\u044b \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u2014 \u043a\u0430\u043a \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-30548","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0425\u0430\u0431\u0440, \u043f\u0440\u0438\u0432\u0435\u0442! \u0412\u0447\u0435\u0440\u0430 \u043d\u0430 \u043c\u0438\u0442\u0430\u043f\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c Apache Spark, \u043e\u0442 \u0440\u0435\u0431\u044f\u0442 \u0438\u0437 Rambler&amp;Co, \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u0420\u0435\u0448\u0438\u043b\u0438 \u043f\u043e \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0422\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043c\u044b \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u2014 \u043a\u0430\u043a \u043c\u044b\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/konfigurirovanie-spark-na-yarn\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Spark \u043d\u0430 YARN | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0425\u0430\u0431\u0440, \u043f\u0440\u0438\u0432\u0435\u0442! \u0412\u0447\u0435\u0440\u0430 \u043d\u0430 \u043c\u0438\u0442\u0430\u043f\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c Apache Spark, \u043e\u0442 \u0440\u0435\u0431\u044f\u0442 \u0438\u0437 Rambler&amp;Co, \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u0420\u0435\u0448\u0438\u043b\u0438 \u043f\u043e \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0422\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043c\u044b \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u2014 \u043a\u0430\u043a \u043c\u044b\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/konfigurirovanie-spark-na-yarn\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:36:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:36:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Configurazione di Spark su YARN | ProHoster","description":"Ciao Habr! Ieri, durante il meetup dedicato ad Apache Spark con il team di Rambler&amp;Co, ci sono state molte domande da parte dei partecipanti riguardanti la configurazione di questo strumento. Abbiamo deciso di condividere la nostra esperienza seguendo il filo della discussione. \u00c8 un argomento complesso, quindi vi invitiamo a condividere le vostre esperienze nei commenti; magari anche noi stiamo fraintendendo o utilizzando qualcosa in modo errato. Una piccola introduzione - come noi","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/konfigurirovanie-spark-na-yarn","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Spark \u043d\u0430 YARN | ProHoster","og:description":"\u0425\u0430\u0431\u0440, \u043f\u0440\u0438\u0432\u0435\u0442! \u0412\u0447\u0435\u0440\u0430 \u043d\u0430 \u043c\u0438\u0442\u0430\u043f\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c Apache Spark, \u043e\u0442 \u0440\u0435\u0431\u044f\u0442 \u0438\u0437 Rambler&amp;Co, \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u0420\u0435\u0448\u0438\u043b\u0438 \u043f\u043e \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0422\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043c\u044b \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u2014 \u043a\u0430\u043a \u043c\u044b","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/konfigurirovanie-spark-na-yarn","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:36:08+00:00","article:modified_time":"2019-10-31T18:36:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30548","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 01:45:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:33:26","updated":"2026-01-21 01:45:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/30548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=30548"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/30548\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=30548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=30548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=30548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}