{"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\/hu\/blog\/news\/konfigurirovanie-spark-na-yarn","title":{"rendered":"Spark konfigur\u00e1l\u00e1sa YARN alatt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Habr, \u00fcdv\u00f6zlet! Tegnap a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/events\/1825957590998380\/\">Apache Spark-r\u00f3l sz\u00f3l\u00f3 meetupon<\/a><\/noindex>, a Rambler&#038;Co, a r\u00e9sztvev\u0151k r\u00e9sz\u00e9r\u0151l sok k\u00e9rd\u00e9s mer\u00fclt fel ezzel az eszk\u00f6z konfigur\u00e1l\u00e1s\u00e1val kapcsolatban. \u00dagy d\u00f6nt\u00f6tt\u00fcnk, hogy megosztjuk tapasztalatainkat e nyom\u00e1n. A t\u00e9ma nem egyszer\u0171 \u2014 ez\u00e9rt javasoljuk, hogy a tapasztalatokat a megjegyz\u00e9sekben is osszuk meg, lehet, hogy mi is valamit nem j\u00f3l \u00e9rt\u00fcnk \u00e9s haszn\u00e1lunk.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEgy kis bevezet\u00e9s \u2014 hogyan haszn\u00e1ljuk a Spark-ot. Van egy h\u00e1rom h\u00f3napos programunk <noindex><a rel=\"nofollow\" href=\"http:\/\/newprolab.com\/ru\/bigdata?utm_source=habr&amp;utm_campaign=spark\">\u201eNagy adatok szak\u00e9rt\u0151je\u201d<\/a><\/noindex>, \u00e9s a m\u00e1sodik modulban a r\u00e9sztvev\u0151k ezen az eszk\u00f6z\u00f6n dolgoznak. \u00cdgy teh\u00e1t a mi feladatunk, mint szervez\u0151k, hogy felk\u00e9sz\u00edts\u00fcnk egy klasztert az ilyen esetek haszn\u00e1lat\u00e1ra.<\/p>\n<p>A haszn\u00e1latunk saj\u00e1toss\u00e1ga, hogy az Spark-ot egy id\u0151ben a teljes csoport haszn\u00e1lja. P\u00e9ld\u00e1ul egy workshop sor\u00e1n, amikor mindenki egyszerre pr\u00f3b\u00e1l valamit \u00e9s a tan\u00e1runk nyom\u00e1n ism\u00e9tli. Ez pedig nem kis sz\u00e1m \u2014 n\u00e9ha 40 f\u0151t is el\u00e9rhet. Val\u00f3sz\u00edn\u0171leg nem sok olyan c\u00e9g van a vil\u00e1gon, amely hasonl\u00f3 felhaszn\u00e1l\u00e1si forgat\u00f3k\u00f6nyvvel tal\u00e1lkozik.<\/p>\n<p>Ezut\u00e1n elmondom, hogyan \u00e9s mi\u00e9rt v\u00e1lasztottuk ki a k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3s param\u00e9tereket.<\/p>\n<p>Kezdj\u00fck a legelej\u00e9t\u0151l. A Spark-nak 3 m\u00f3dja van a klaszteren val\u00f3 m\u0171k\u00f6d\u00e9sre: standalone, Mesos haszn\u00e1lat\u00e1val \u00e9s YARN haszn\u00e1lat\u00e1val. Mi a harmadik lehet\u0151s\u00e9get v\u00e1lasztottuk, mert sz\u00e1munkra logikus volt. M\u00e1r van egy Hadoop klaszter\u00fcnk. A r\u00e9sztvev\u0151k m\u00e1r j\u00f3l ismerik annak architekt\u00far\u00e1j\u00e1t. Haszn\u00e1ljuk a YARN-t.<\/p>\n<pre><code class=\"apache\">spark.master=yarn<\/code><\/pre>\n<p>\nA folytat\u00e1s m\u00e9g \u00e9rdekesebb. Mindh\u00e1rom telep\u00edt\u00e9si m\u00f3d eset\u00e9n 2 telep\u00edt\u00e9si lehet\u0151s\u00e9g \u00e1ll rendelkez\u00e9sre: client \u00e9s cluster. A <noindex><a rel=\"nofollow\" href=\"http:\/\/spark.apache.org\/docs\/latest\/running-on-yarn.html\">dokument\u00e1ci\u00f3<\/a><\/noindex> \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 internetes forr\u00e1sok alapj\u00e1n azt lehet mondani, hogy a client az interakt\u00edv munk\u00e1hoz alkalmas \u2014 p\u00e9ld\u00e1ul jupyter notebook-on kereszt\u00fcl, m\u00edg a cluster ink\u00e1bb a production megold\u00e1sokhoz illik. Az eset\u00fcnkben minket az interakt\u00edv munka \u00e9rdekelt, ez\u00e9rt:<\/p>\n<pre><code class=\"apache\">spark.deploy-mode=client<\/code><\/pre>\n<p>\nAlapvet\u0151en ett\u0151l a pillanatt\u00f3l kezdve a Spark m\u00e1r valamilyen m\u00f3don m\u0171k\u00f6dni fog a YARN-on, de nek\u00fcnk ez nem volt el\u00e9g. Mivel a programunk a nagy adatokkal foglalkozik, n\u00e9ha a r\u00e9sztvev\u0151knek hi\u00e1nyzott az, ami a forr\u00e1sok egyenletes eloszt\u00e1s\u00e1b\u00f3l ad\u00f3dott. \u00c9s itt tal\u00e1ltunk egy \u00e9rdekes dolgot \u2014 a dinamikus forr\u00e1sallok\u00e1ci\u00f3t. R\u00f6viden: ha neh\u00e9z feladatot v\u00e9gzel \u00e9s a klaszter szabad (p\u00e9ld\u00e1ul reggel), akkor ezzel az opci\u00f3val a Spark tov\u00e1bbi forr\u00e1sokat adhat neked. A sz\u00fcks\u00e9gletet egy \u00fcgyes k\u00e9plettel sz\u00e1molj\u00e1k ki. A r\u00e9szletekbe nem megy\u00fcnk bele \u2014 ez j\u00f3l m\u0171k\u00f6dik.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.enabled=true<\/code><\/pre>\n<p>\nBe\u00e1ll\u00edtottuk ezt a param\u00e9tert, \u00e9s amikor elind\u00edtottuk a Sparkot, az figyelmeztetett \u00e9s nem indult el. Jogos, mert figyelmesebben kellett volna olvasni. <noindex><a rel=\"nofollow\" href=\"http:\/\/spark.apache.org\/docs\/latest\/configuration.html\">a dokument\u00e1ci\u00f3val<\/a><\/noindex> Ott szerepel, hogy ahhoz, hogy minden rendben legyen, egy m\u00e1sik param\u00e9tert is be kell kapcsolni.<\/p>\n<pre><code class=\"apache\">spark.shuffle.service.enabled=true<\/code><\/pre>\n<p>\nMire van sz\u00fcks\u00e9g? Amikor a munk\u00e1nk m\u00e1r nem ig\u00e9nyel annyi forr\u00e1st, a Sparknak vissza kell adnia azokat a k\u00f6z\u00f6s poolba. A legmunkaig\u00e9nyesebb f\u00e1zis szinte b\u00e1rmely MapReduce feladatban a Shuffle f\u00e1zis. Ez a param\u00e9ter lehet\u0151v\u00e9 teszi az ezen a f\u00e1zison keletkezett adatok meg\u0151rz\u00e9s\u00e9t, \u00e9s \u00edgy felszabad\u00edtja az executoreket. Az executor az a folyamat, amely a munk\u00e1n mindent kisz\u00e1m\u00edt. Van valamennyi processzormagja \u00e9s valamilyen mennyis\u00e9g\u0171 mem\u00f3ri\u00e1ja.<\/p>\n<p>Hozz\u00e1adtuk ezt a param\u00e9tert. Minden rendben m\u0171k\u00f6d\u00f6tt. \u00c9szrevett\u00fck, hogy a r\u00e9sztvev\u0151k val\u00f3ban t\u00f6bb forr\u00e1st kaptak, amikor sz\u00fcks\u00e9g\u00fck volt r\u00e1. De felmer\u00fclt egy m\u00e1sik probl\u00e9ma \u2014 egy adott pillanatban m\u00e1s r\u00e9sztvev\u0151k is fel\u00e9bredtek, \u00e9s \u0151k is haszn\u00e1lni akart\u00e1k a Sparkot, de minden foglalt volt, \u00e9s \u0151k nem voltak el\u00e9gedettek. Meg\u00e9rthetj\u00fck \u0151ket. Elkezdtek n\u00e9zni a dokument\u00e1ci\u00f3t. Kider\u00fclt, hogy van m\u00e9g n\u00e9h\u00e1ny param\u00e9ter, amellyel befoly\u00e1solhatjuk a folyamatot. P\u00e9ld\u00e1ul, ha az executor v\u00e1rakoz\u00f3 \u00fczemm\u00f3dban van \u2014 mennyi id\u0151 m\u00falva lehet elvenni t\u0151le a forr\u00e1sokat?<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.executorIdleTimeout=120s<\/code><\/pre>\n<p>\nA mi eset\u00fcnkben, ha az executoraid k\u00e9t percig nem v\u00e9geznek semmit, k\u00e9rlek, tedd \u0151ket vissza a k\u00f6z\u00f6s poolba. De ez a param\u00e9ter sem mindig volt elegend\u0151. L\u00e1that\u00f3 volt, hogy valaki m\u00e1r r\u00e9g\u00f3ta nem csin\u00e1l semmit, de az er\u0151forr\u00e1sok nem szabadultak fel. Kider\u00fclt, hogy van egy k\u00fcl\u00f6n param\u00e9ter is \u2014 mennyi id\u0151 eltelt\u00e9vel kell sz\u0171rni az executoraidat, amelyek gyors\u00edt\u00f3t\u00e1razott adatokat tartalmaznak. Alap\u00e9rtelmez\u00e9s szerint ez a param\u00e9ter infinity \u00e9rt\u00e9ken \u00e1llt! Ezt m\u00f3dos\u00edtottuk.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.cachedExecutorIdleTimeout=600s<\/code><\/pre>\n<p>\nTeh\u00e1t, ha az executoraid 5 percig nem v\u00e9geznek semmit, add \u00e1t \u0151ket a k\u00f6z\u00f6s poolnak. Ezzel a m\u00f3dszerrel az er\u0151forr\u00e1sok felszabad\u00edt\u00e1si \u00e9s kiad\u00e1si sebess\u00e9ge a sok felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra megfelel\u0151 lett. A panaszok sz\u00e1ma cs\u00f6kkent. De \u00fagy d\u00f6nt\u00f6tt\u00fcnk, tov\u00e1bb l\u00e9p\u00fcnk, \u00e9s korl\u00e1tozzuk az alkalmaz\u00e1sonk\u00e9nti maxim\u00e1lis executorsz\u00e1mot \u2014 l\u00e9nyeg\u00e9ben egy program r\u00e9sztvev\u0151re.<\/p>\n<pre><code class=\"apache\">spark.dynamicAllocation.maxExecutors=19<\/code><\/pre>\n<p>\nMost, term\u00e9szetesen, m\u00e1sik oldalr\u00f3l is \u00e9rkeztek panaszok \u2014 \"a klaszter t\u00e9tlen, de nekem csak 19 executorom van\", de mit tegy\u00fcnk \u2014 sz\u00fcks\u00e9g van valamilyen helyes egyens\u00falyra. Mindenkit boldogg\u00e1 tenni nem lehet.<\/p>\n<p>\u00c9s m\u00e9g egy kis t\u00f6rt\u00e9net, amely a mi eset\u00fcnkh\u00f6z kapcsol\u00f3dik. Egyszer n\u00e9h\u00e1ny ember k\u00e9sve \u00e9rkezett a gyakorlati \u00f3r\u00e1ra, \u00e9s valami\u00e9rt a Spark nem indult el n\u00e1luk. Megn\u00e9zt\u00fck a szabad er\u0151forr\u00e1sok sz\u00e1m\u00e1t \u2014 \u00fagy t\u0171nik, van. A Sparknak el kellett volna indulnia. Szerencs\u00e9re arra az id\u0151re a dokument\u00e1ci\u00f3 m\u00e1r valahol be\u00e9p\u00fclt az eml\u00e9kezet\u00fcnkbe, \u00e9s esz\u00fcnkbe jutott, hogy a Spark ind\u00edt\u00e1sakor portot keres, amelyen elindulhat. Ha az els\u0151 port az intervallumban foglalt, \u00e1tl\u00e9p a k\u00f6vetkez\u0151re. Ha az szabad, akkor megkapja. Van egy param\u00e9ter, amely meghat\u00e1rozza a maxim\u00e1lis pr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1m\u00e1t. Alap\u00e9rtelmez\u00e9s szerint ez 16. Kevesebb, mint ah\u00e1ny ember van a csoportunkban az \u00f3r\u00e1n. Ennek megfelel\u0151en, 16 pr\u00f3b\u00e1lkoz\u00e1s ut\u00e1n a Spark feladta \u00e9s azt mondta, hogy nem tud elindulni. Ezt a param\u00e9tert m\u00f3dos\u00edtottuk.<\/p>\n<pre><code class=\"apache\">spark.port.maxRetries=50<\/code><\/pre>\n<p>\nMost n\u00e9h\u00e1ny be\u00e1ll\u00edt\u00e1st fogok megosztani, amelyek m\u00e1r nem nagyon kapcsol\u00f3dnak a mi eset\u00fcnkh\u00f6z.<\/p>\n<p>A Spark gyorsabb ind\u00edt\u00e1s\u00e1hoz javasolj\u00e1k, hogy a SPARK_HOME otthoni k\u00f6nyvt\u00e1r\u00e1ban l\u00e9v\u0151 jars mapp\u00e1t arch\u00edv\u00e1ljuk \u00e9s helyezz\u00fck el az HDFS-en. \u00cdgy nem fog id\u0151t pazarolni ezeknek a jar f\u00e1jloknak a munk\u00e1sokhoz val\u00f3 bet\u00f6lt\u00e9s\u00e9re.<\/p>\n<pre><code class=\"apache\">spark.yarn.archive=hdfs:\/\/\/tmp\/spark-archive.zip<\/code><\/pre>\n<p>\nA gyorsabb m\u0171k\u00f6d\u00e9s \u00e9rdek\u00e9ben javasolt a kryo haszn\u00e1lata mint soros\u00edt\u00f3. Ez optimaliz\u00e1ltabb, mint az alap\u00e9rtelmezett.<\/p>\n<pre><code class=\"apache\">spark.serializer=org.apache.spark.serializer.KryoSerializer<\/code><\/pre>\n<p>\nEgy r\u00e9gi probl\u00e9ma a Sparkkal, hogy gyakran mem\u00f3riahib\u00e1t okoz. Gyakran ez akkor t\u00f6rt\u00e9nik, amikor a munk\u00e1sok m\u00e1r mindent kisz\u00e1moltak \u00e9s k\u00fcldik az eredm\u00e9nyt a vez\u00e9rl\u0151h\u00f6z. Mi ezt a param\u00e9tert megn\u00f6velt\u00fck. Alap\u00e9rtelmez\u00e9s szerint 1GB, mi 3-ra \u00e1ll\u00edtottuk.<\/p>\n<pre><code class=\"apache\">spark.driver.maxResultSize=3072<\/code><\/pre>\n<p>\nV\u00e9g\u00fcl, mint desszert. Hogyan friss\u00edts\u00fck a Sparkot 2.1-es verzi\u00f3ra a HortonWorks disztrib\u00faci\u00f3j\u00e1n \u2014 HDP 2.5.3.0. Ez a HDP verzi\u00f3 el\u0151re telep\u00edtett 2.0-\u00e1s verzi\u00f3t tartalmaz, de egyszer \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy a Spark el\u00e9gg\u00e9 akt\u00edvan fejl\u0151dik, \u00e9s minden \u00faj verzi\u00f3 jav\u00edt valamilyen hib\u00e1t, plusz \u00faj lehet\u0151s\u00e9geket ad, bele\u00e9rtve a Python API-t is, ez\u00e9rt \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy friss\u00edtj\u00fck.<\/p>\n<p>Let\u00f6lt\u00f6tt\u00fck a Hadoop 2.7-hez k\u00e9sz\u00fclt verzi\u00f3t az hivatalos oldalr\u00f3l. Kicsomagoltuk, beletett\u00fck a HDP mapp\u00e1j\u00e1ba. Be\u00e1ll\u00edtottuk a szimbolikus linkeket, ahogy kell. Elind\u00edtjuk \u2014 nem indul. Nagyon \u00e9rthetetlen hib\u00e1t \u00edr.<\/p>\n<pre><code class=\"apache\">java.lang.NoClassDefFoundError: com\/sun\/jersey\/api\/client\/config\/ClientConfig<\/code><\/pre>\n<p>\nGoogle keres\u00e9s ut\u00e1n kider\u00fclt, hogy a Spark nem akarta megv\u00e1rni, am\u00edg a Hadoop elk\u00e9sz\u00fcl, \u00e9s \u00fagy d\u00f6nt\u00f6tt, hogy \u00faj jersey verzi\u00f3t haszn\u00e1l. Ezen d\u00edleket vitatj\u00e1k a JIRA-n. A megold\u00e1s az volt, hogy let\u00f6ltj\u00fck <noindex><a rel=\"nofollow\" href=\"https:\/\/mvnrepository.com\/artifact\/com.sun.jersey\/jersey-bundle\/1.17.1\">jersey 1.17.1 verzi\u00f3j\u00e1t.<\/a><\/noindex>Beletett\u00fck ezt a SPARK_HOME jars mapp\u00e1j\u00e1ba, \u00fajra zipelt\u00fck \u00e9s feltett\u00fck az HDFS-re.<\/p>\n<p>Ezt a hib\u00e1t megoldottuk, de egy \u00faj, meglehet\u0151sen zavaros hiba mer\u00fclt fel.<\/p>\n<pre><code class=\"apache\">org.apache.spark.SparkException: Yarn application has already ended! Lehet, hogy meg\u00f6lt\u00e9k, vagy nem tudta elind\u00edtani az alkalmaz\u00e1s f\u0151programj\u00e1t.<\/code><\/pre>\n<p>\nEkkor megpr\u00f3b\u00e1ltuk elind\u00edtani a 2.0-\u00e1s verzi\u00f3t \u2014 minden rendben van. Pr\u00f3b\u00e1ld kital\u00e1lni, mi a probl\u00e9ma. Belel\u00e9pt\u00fcnk az alkalmaz\u00e1s logjaiba \u00e9s valami ilyet l\u00e1ttunk:<\/p>\n<pre><code class=\"apache\">\/usr\/hdp\/${hdp.version}\/hadoop\/lib\/hadoop-lzo-0.6.0.${hdp.version}.jar<\/code><\/pre>\n<p>\n\u00d6sszess\u00e9g\u00e9ben valamilyen okn\u00e1l fogva a hdp.version nem volt feloldva. Google keres\u00e9s ut\u00e1n megtal\u00e1ltuk a megold\u00e1st. Az Ambari-ban be kell l\u00e9pni a YARN be\u00e1ll\u00edt\u00e1sokba, \u00e9s hozz\u00e1 kell adni egy param\u00e9tert a testreszabott yarn-site-hoz:<\/p>\n<pre><code class=\"apache\">hdp.version=2.5.3.0-37<\/code><\/pre>\n<p>\nEz a var\u00e1zslat seg\u00edtett, \u00e9s a Spark m\u0171k\u00f6d\u00e9sbe l\u00e9pett. Tesztelt\u00fck n\u00e9h\u00e1ny jupyter-notebookunkat. Minden m\u0171k\u00f6dik. K\u00e9szen \u00e1llunk az els\u0151 Spark \u00f3r\u00e1ra szombaton (m\u00e1r holnap)!<\/p>\n<p><b>UPD<\/b>. Az \u00f3r\u00e1n egy \u00fajabb probl\u00e9ma mer\u00fclt fel. Egy bizonyos pillanatban a YARN meg\u00e1llt, hogy kont\u00e9nereket adjon a Sparknak. A YARN-ban jav\u00edtani kellett egy param\u00e9tert, amely alap\u00e9rtelmez\u00e9s szerint 0.2 volt:<\/p>\n<pre><code class=\"apache\">yarn.scheduler.capacity.maximum-am-resource-percent=0.8<\/code><\/pre>\n<p>\nTeh\u00e1t csak a forr\u00e1sok 20%-a vett r\u00e9szt az er\u0151forr\u00e1sok kioszt\u00e1s\u00e1ban. A param\u00e9terek m\u00f3dos\u00edt\u00e1sa ut\u00e1n \u00fajraind\u00edtottuk a YARN-t. A probl\u00e9ma megold\u00f3dott, \u00e9s a t\u00f6bbi r\u00e9sztvev\u0151 is el tudta ind\u00edtani a spark kontextust.<br \/>\n<br \/>Forr\u00e1s: <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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0425\u0430\u0431\u0440, \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/hu\/blog\/news\/konfigurirovanie-spark-na-yarn\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/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\udd47Spark konfigur\u00e1l\u00e1sa YARN-on | ProHoster","description":"Habr, \u00fcdv!","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/konfigurirovanie-spark-na-yarn","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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!","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/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\/hu\/wp-json\/wp\/v2\/posts\/30548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=30548"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/30548\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=30548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=30548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=30548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}