Na-ahazi Spark na YARN

Habr, ndewo! Ụnyaahụ na nzukọ raara nye Apache Spark, site na ụmụ okorobịa si Rambler&Co, e nwere nnọọ ọtụtụ ajụjụ sitere n'aka ndị sonyere configuring a ngwá ọrụ. Anyị kpebiri ịgbaso nzọụkwụ ya na ịkọ ahụmahụ anyị. Isiokwu a adịghị mfe - ya mere anyị na-akpọ gị òkù ịkọrọ gị ahụmahụ na comments, ma eleghị anya, anyị na-aghọta na-eji ihe na-ezighị ezi.

Obere mmalite maka otu anyị si eji Spark. Anyị nwere mmemme ọnwa atọ "Onye Ọkachamara Data", na n'ime modul nke abụọ ndị sonyere anyị na-arụ ọrụ na ngwa a. N'ihi ya, ọrụ anyị, dị ka ndị nhazi, bụ ịkwadebe ụyọkọ maka ojiji n'ime ụdị ikpe ahụ.

Ihe dị iche iche nke ojiji anyị bụ na ọnụ ọgụgụ ndị mmadụ na-arụ ọrụ n'otu oge na Spark nwere ike hà na otu dum. Dịka ọmụmaatụ, na nzukọ ọmụmụ ihe, mgbe onye ọ bụla nwalere ihe n'otu oge ma na-emeghachi onye nkụzi anyị. Ma nke a abụghị ọtụtụ - mgbe ụfọdụ ruo 40 mmadụ. Eleghị anya ọ bụghị ọtụtụ ụlọ ọrụ n'ụwa na-eche ụdị ojiji dị otú ahụ ihu.

Na-esote, m ga-agwa gị otú na ihe mere anyị ji họrọ ụfọdụ config parameters.

Ka anyị malite site na mmalite. Spark nwere nhọrọ 3 iji na-agba ọsọ na ụyọkọ: kwụ ọtọ, iji Mesos, na iji YARN. Anyị kpebiri ịhọrọ nhọrọ nke atọ n'ihi na ọ baara anyị uru. Anyị enweela ụyọkọ hadoop. Ndị sonyere anyị amatalarị ụkpụrụ ya nke ọma. Ka anyị jiri YARN.

spark.master=yarn

Ihe ọzọ na-adọrọ mmasị. Nke ọ bụla n'ime nhọrọ ntinye 3 ndị a nwere nhọrọ ntinye 2: onye ahịa na ụyọkọ. Dabere akwụkwọ na njikọ dị iche iche na ịntanetị, anyị nwere ike ikwubi na onye ahịa kwesịrị ekwesị maka ọrụ mmekọrịta - dịka ọmụmaatụ, site na jupyter notebook, na ụyọkọ dabara adaba maka ngwọta mmepụta. N'ọnọdụ anyị, anyị nwere mmasị na ọrụ mmekọrịta, ya mere:

spark.deploy-mode=client

N'ozuzu, site ugbu a gaa n'ihu Spark ga-arụ ọrụ na YARN, mana nke a ezughị anyị. Ebe ọ bụ na mmemme anyị bụ maka nnukwu data, mgbe ụfọdụ ndị na-eso ya ezughị ezu nke ihe enwetara n'ime usoro nke ọbụna slicing nke ihe onwunwe. Ma mgbe ahụ, anyị chọtara ihe na-adọrọ mmasị - dynamic resource allocation. Na nkenke, isi ihe bụ nke a: ọ bụrụ na ị nwere ọrụ siri ike na ụyọkọ ahụ bụ n'efu (dịka ọmụmaatụ, n'ụtụtụ), mgbe ahụ, iji nhọrọ a Spark nwere ike inye gị ihe ndị ọzọ. A na-agbakọ mkpa ebe ahụ dịka usoro aghụghọ siri dị. Anyị agaghị abanye n'ime nkọwa - ọ na-arụ ọrụ nke ọma.

spark.dynamicAllocation.enabled=true

Anyị doziri oke a, na mmalite Spark dara na ebidoghị. Nke ahụ ziri ezi, n'ihi na aghaghị m ịgụ ya akwụkwọ nke ọma karị. Ọ na-ekwu na ka ihe niile wee dị mma, ị ga-emekwa ka ihe ọzọ parameter.

spark.shuffle.service.enabled=true

Gịnị mere o ji dị mkpa? Mgbe ọrụ anyị anaghịzi achọ ọtụtụ akụrụngwa, Spark kwesịrị iweghachi ha na ọdọ mmiri nkịtị. Oge kachasị na-ewe oge n'ihe fọrọ nke nta ka ọ bụrụ ọrụ MapReduce ọ bụla bụ ọkwa Shuffle. Oke a na-enye gị ohere ịchekwa data nke emepụtara n'oge a wee hapụ ndị mmebe ya. Na onye mmebe bụ usoro na-agbakọ ihe niile na onye ọrụ. Ọ nwere ọnụ ọgụgụ ụfọdụ nke cores processor na ụfọdụ ebe nchekwa.

Agbakwunyela oke a. Ihe niile yiri ka ọ na-arụ ọrụ. Ọ bịara pụta ìhè na a na-enye ndị na-eso ụzọ ihe onwunwe karịa mgbe ha chọrọ ha. Ma nsogbu ọzọ bilitere - n'oge ụfọdụ ndị ọzọ sonyere na-eteta ma chọọkwa iji Spark, mana ihe niile na-arụsi ọrụ ike n'ebe ahụ, ha enweghịkwa obi ụtọ. Enwere ike ịghọta ha. Anyị malitere ilele akwụkwọ ahụ. Ọ tụgharịrị na a ka nwere ọtụtụ paramita nke ị nwere ike imetụta usoro ahụ. Dịka ọmụmaatụ, ọ bụrụ na onye nrụpụta ahụ nọ na ọnọdụ njikere, mgbe oge ole ka enwere ike iwere ihe onwunwe na ya?

spark.dynamicAllocation.executorIdleTimeout=120s

N'ọnọdụ anyị, ọ bụrụ na ndị ọrụ ikpe gị emeghị ihe ọ bụla maka nkeji abụọ, biko weghachite ha na ọdọ mmiri nkịtị. Mana oke a anaghị ezuru mgbe niile. O doro anya na onye ahụ emeghị ihe ọ bụla ruo ogologo oge, na a naghị ewepụta ihe onwunwe. Ọ tụgharịrị na enwerekwa paramita pụrụ iche - mgbe oge gachara ịhọrọ ndị mmebe nwere data echekwara. Site na ndabara, oke a enweghị ngwụcha! Anyị doziri ya.

spark.dynamicAllocation.cachedExecutorIdleTimeout=600s

Nke ahụ bụ, ọ bụrụ na ndị mmebe gị emeghị ihe ọ bụla maka nkeji 5, nye ha na ọdọ mmiri nkịtị. Na ọnọdụ a, ọsọ nke ịtọhapụ na ịnye akụrụngwa maka ọnụ ọgụgụ buru ibu nke ndị ọrụ aghọwo ezigbo. Ọnụọgụ nke enweghị afọ ojuju ebelatala. Mana anyị kpebiri ịga n'ihu ma kpachie ọnụ ọgụgụ kacha elu nke ndị mmebe kwa ngwa - n'ezie kwa onye so na mmemme.

spark.dynamicAllocation.maxExecutors=19

Ugbu a, n'ezie, e nwere ndị na-enweghị afọ ojuju n'akụkụ nke ọzọ - "ụyọkọ a na-abaghị uru, na m nwere nanị 19 executors," ma gịnị ka ị pụrụ ime? Anyị chọrọ ụfọdụ ezi nguzozi. Ị gaghị eme ka mmadụ niile nwee obi ụtọ.

Na otu obere akụkọ ọzọ metụtara nkọwa nke ikpe anyị. N'ụzọ ụfọdụ, ọtụtụ mmadụ egbughị oge maka nkuzi bara uru, n'ihi ihe ụfọdụ Spark amaliteghị maka ha. Anyị lere anya na ọnụọgụ ego efu - ọ dị ka ọ dị. Spark kwesịrị ịmalite. Ọ dabara nke ọma, n'oge ahụ agbakwunyela akwụkwọ ahụ na subcortex ebe, ma anyị chetara na mgbe emepere ya, Spark na-achọ ọdụ ụgbọ mmiri ọ ga-amalite. Ọ bụrụ na ọdụ ụgbọ mmiri mbụ dị na nso a na-arụ ọrụ, ọ na-aga na nke ọzọ n'usoro. Ọ bụrụ na ọ bụ n'efu, ọ na-ejide. Na enwere oke nke na-egosi ọnụ ọgụgụ kachasị nke mgbalị maka nke a. Ihe ndabara bụ 16. Ọnụ ọgụgụ ahụ erughị ọnụ ọgụgụ ndị nọ n'ìgwè anyị na klaasị. N'ihi ya, mgbe mgbalị 16 gasịrị, Spark kwụsịrị ma kwuo na enweghị m ike ịmalite. Anyị edozila ntọala a.

spark.port.maxRetries=50

Ọzọ, m ga-agwa gị gbasara ụfọdụ ntọala na-enweghị njikọ na nkọwa nke ikpe anyị.

Iji bido Spark ngwa ngwa, a na-atụ aro ka idobe folda ite dị na ndekọ ụlọ SPARK_HOME wee tinye ya na HDFS. Mgbe ahụ ọ gaghị egbu oge na-ebunye jarniks ndị a site n'aka ndị ọrụ.

spark.yarn.archive=hdfs:///tmp/spark-archive.zip

A na-atụ aro ka iji kryo dị ka serializer maka ịrụ ọrụ ngwa ngwa. Ọ kachasị mma karịa nke ndabara.

spark.serializer=org.apache.spark.serializer.KryoSerializer

Enwekwara nsogbu dị ogologo na Spark nke ọ na-adakarị site na ebe nchekwa. Ọtụtụ mgbe, nke a na-eme n'oge ndị ọrụ gbakọọ ihe niile ma zigara onye ọkwọ ụgbọ ala nsonaazụ ya. Anyị mere paramita a ka ukwuu maka onwe anyị. Site na ndabara, ọ bụ 1GB, anyị mere ya 3.

spark.driver.maxResultSize=3072

Na n'ikpeazụ, dị ka eji megharịa ọnụ. Otu esi emelite Spark na ụdị 2.1 na nkesa HortonWorks - HDP 2.5.3.0. Ụdị HDP a nwere ụdị 2.0 arụnyere mbụ, mana anyị kpebiri n'onwe anyị na Spark na-arụ ọrụ nke ọma, na ụdị ọhụrụ ọ bụla na-edozi ụfọdụ chinchi gbakwunyere na-enye atụmatụ ndị ọzọ, gụnyere maka API python, yabụ anyị kpebiri , ihe kwesịrị ime. eme bụ update.

Budata ụdị a na webụsaịtị gọọmentị maka Hadoop 2.7. Wepu ya ma tinye ya na nchekwa HDP. Anyị tinye symlinks dị ka achọrọ. Anyị na-ebupụta ya - ọ naghị ebido. Na-ede njehie na-edochaghị anya.

java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig

Mgbe anyị gachara, anyị chọpụtara na Spark kpebiri na ọ gaghị echere ruo mgbe a mụrụ Hadoop, wee kpebie iji ụdị uwe ọhụrụ ahụ. Ha onwe ha na-arụrịta ụka maka isiokwu a na JIRA. Ihe ngwọta bụ ibudata ụdị jersey 1.17.1. Tinye nke a na nchekwa ite dị na SPARK_HOME, zip ya ọzọ ma bulite ya na HDFS.

Anyị nwetara gburugburu nke a njehie, ma ọhụrụ na kama streamlined nke bilitere.

org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to launch application master

N'otu oge ahụ, anyị na-agbalị ịgba ọsọ version 2.0 - ihe niile dị mma. Gbalịa iche ihe na-emenụ. Anyị lere anya na ndekọ nke ngwa a wee hụ ihe dị ka nke a:

/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar

N'ozuzu, n'ihi ihe ụfọdụ hdp.version edozibeghị. Mgbe googling, anyị chọtara ngwọta. Ị ga-aga na ntọala YARN dị na Ambari wee gbakwunye otu n'ebe ahụ na saịtị yarn omenala:

hdp.version=2.5.3.0-37

Ime anwansi a nyere aka, ma Spark wepụrụ. Anyị nwalere ọtụtụ laptọọpụ jupyter anyị. Ihe niile na-arụ ọrụ. Anyị dị njikere maka nkuzi Spark nke mbụ na Satọde (echi)!

DUP. N'oge nkuzi ahụ, nsogbu ọzọ pụtara. N'oge ụfọdụ, YARN kwụsịrị inye arịa maka Spark. Na YARN ọ dị mkpa iji dozie oke, nke na ndabara bụ 0.2:

yarn.scheduler.capacity.maximum-am-resource-percent=0.8

Ya bụ, naanị 20% nke akụrụngwa sonyere na nkesa akụrụngwa. Ka ịgbanwee paramita ahụ, anyị bugharịrị YARN. A doziri nsogbu ahụ ma ndị ọzọ so na ya nwekwara ike ịgbasa okwu ọkụ.

isi: www.habr.com

Tinye a comment