Te whirihora i te Spark on YARN

Habr, kia ora! Inanahi ra hui i whakatapua ki a Apache Spark, mai i nga taangata o Rambler&Co, he maha nga patai a nga kaiuru e pa ana ki te whirihora i tenei taputapu. I whakatau matou ki te whai i ona tapuwae me te whakapuaki i o maatau wheako. Ehara i te mea ngawari te kaupapa - no reira ka tono matou ki a koe ki te whakapuaki i to wheako i roto i nga korero, tera pea kei te mohio ano matou me te whakamahi i tetahi mea he.

He kupu whakataki mo te whakamahi a Spark. E toru marama ta matou kaupapa “Matanga Raraunga Nui”, a puta noa i te waahanga tuarua e mahi ana a maatau kaiuru ki tenei taputapu. No reira, ko ta matou mahi, hei kaiwhakarite, he whakarite i te kahui mo te whakamahi i roto i taua keehi.

Ko te ahuatanga o ta maatau whakamahi ko te maha o nga tangata e mahi ana i te wa kotahi ki te Spark ka rite ki te roopu katoa. Hei tauira, i te wananga, ka whakamatauria e te katoa tetahi mea i te wa ano ka whakahoki ano i muri i to tatou kaiako. A ehara tenei i te nui - i etahi wa ka eke ki te 40 tangata. Kaore pea he maha nga kamupene o te ao e pa ana ki taua keehi whakamahi.

I muri mai, ka korero atu ahau ki a koe me pehea me te aha i tohua ai e matou etahi tawhā whirihora.

Kia timata mai i te timatanga. E 3 nga whiringa a Spark ki te whakahaere i runga i te tautau: mokowhiti, te whakamahi i te Mesos, me te whakamahi i te WANANGA. I whakatau matou ki te whiriwhiri i te whiringa tuatoru na te mea i whai tikanga ki a maatau. He kāhui hadoop kē tā mātou. Kua tino mohio o tatou kaiuru ki tona hoahoanga. Me whakamahi tatou i te WARI.

spark.master=yarn

He pai ake. Ko ia o enei waahanga tuku e 3 e rua nga waahanga tuku: te kiritaki me te roopu. I runga tuhinga me nga hononga maha i runga i te Ipurangi, ka taea e taatau te whakatau he pai te kaihoko mo nga mahi whakawhitiwhiti - hei tauira, na roto i te pukatuhi jupyter, me te tautau he pai ake mo nga otinga whakaputa. I roto i ta maatau take, i hiahia matou ki nga mahi whakawhitiwhiti, na reira:

spark.deploy-mode=client

I te nuinga o te waa, mai i tenei wa ka mahi a Spark i runga i te YARN, engari kaore i ranea mo matou. I te mea he kaupapa ta maatau mo nga raraunga nui, i etahi wa karekau nga kaiuru i makona i nga mea i riro mai i roto i te anga o te tapahi rawa. Na ka kitea he mea whakamere - te tohatoha rauemi hihiri. Hei poto, ko te kaupapa tenei: mena he uaua to mahi me te kore utu o te tautau (hei tauira, i te ata), ma te whakamahi i tenei whiringa ka taea e Spark te hoatu rauemi taapiri. Ka tatauhia te hiahia ki reira i runga i te tikanga mohio. E kore matou e uru ki nga korero - he pai te mahi.

spark.dynamicAllocation.enabled=true

I tautuhia e matou tenei tawhā, a i te tiimatanga ka tuki a Spark karekau i timata. Ka tika, na te mea me panui e au tuhinga kia tupato. E kii ana kia pai nga mea katoa, me whakauru ano koe i tetahi taapiri taapiri.

spark.shuffle.service.enabled=true

He aha i hiahiatia ai? Ki te kore a maatau mahi e hiahia kia nui rawa nga rauemi, me whakahoki e Spark ki te puna wai noa. Ko te atamira e pau ana i te nuinga o nga mahi MapReduce ko te atamira Riwhi. Ma tenei tawhā ka taea e koe te tiaki i nga raraunga ka hangaia i tenei waahanga me te tuku i nga kaihautu. A ko te kaiwhakahaere ko te tukanga e tatau ana i nga mea katoa i runga i te kaimahi. Kei a ia he maha o nga waahanga tukatuka me te nui o te mahara.

Kua taapirihia tenei tawhā. I pai nga mea katoa. Ka kitea he nui ake nga rauemi i whakawhiwhia ki nga kaiuru ina hiahia ana ratou. Engari i ara ake ano tetahi raruraru - i etahi wa ka oho etahi atu o nga kaiuru me te hiahia ki te whakamahi i te Spark, engari he pukumahi nga mea katoa i reira, kaore i te koa. Ka taea te mohio. I timata matou ki te titiro ki nga tuhinga. I puta mai he maha atu nga taapiri ka taea te whakamahi hei awe i te mahi. Hei tauira, mena kei te aratau tatari te kaitakawaenga, he aha te wa ka taea te tango rauemi mai i a ia?

spark.dynamicAllocation.executorIdleTimeout=120s

Ki a maatau, ki te kore e mahia e to kaiwhakaoti mo te rua meneti, tena koa whakahoki mai ki te puna wai noa. Engari ko tenei tawhā kaore i ranea i nga wa katoa. I kitea kua roa te tangata e mahi ana i tetahi mea, kaore ano nga rawa e waatea ana. I puta mai he taapiri motuhake ano - i muri i te waa ki te kowhiri i nga kaikorero kei roto nga raraunga keteroki. Ma te taunoa, he mutunga kore tenei tawhā! I whakatikahia e matou.

spark.dynamicAllocation.cachedExecutorIdleTimeout=600s

Arā, ki te kore e mahia e o kaiwhakahaere mo te 5 meneti, hoatu ki te puna wai noa. I tenei aratau, kua pai te tere o te tuku me te tuku rauemi mo te tini o nga kaiwhakamahi. Kua heke te nui o te pouri. Engari i whakatau matou ki te haere whakamua ki te whakawhāiti i te maha o nga kaikorero mo ia tono - ko ia kaiuru hotaka.

spark.dynamicAllocation.maxExecutors=19

Inaianei, he tangata karekau kei tera taha - "kua mangere te kahui, a 19 noa aku kaikokoti," engari ka aha koe? Me whai ahua tika. Kaore e taea e koe te harikoa katoa.

A ko tetahi atu korero iti e pa ana ki nga korero mo to maatau keehi. He aha, he maha nga tangata i tomuri mo tetahi akoranga mahi, a na etahi take kaore a Spark i timata mo ratou. I tirohia e matou te nui o nga rauemi kore utu - te ahua kei reira. Me timata te korakora. Waimarie, i tera wa kua taapirihia nga tuhinga ki te subcortex i tetahi waahi, a ka mahara matou i te wa i whakarewahia ai, ka rapu a Spark i tetahi tauranga hei timata. Mena kei te pukumahi te tauranga tuatahi o te awhe, ka nuku ki te tauranga e whai ake nei. Mena he kore utu, ka mau. A he tawhā e tohu ana i te maha o nga nganatanga mo tenei. Ko te taunoa ko te 16. He iti ake te nama i te maha o nga tangata o to matou roopu i roto i te karaehe. No reira, i muri i nga nganatanga 16, ka mutu a Spark ka kii kaore au e tiimata. Kua whakatikahia e matou tenei tawhā.

spark.port.maxRetries=50

I muri mai ka korero atu ahau ki a koe mo etahi tautuhinga kaore e tino pa ana ki nga korero motuhake o ta maatau keehi.

Kia tere ake te tiimata o te Spark, ka tūtohuhia kia putunga te kōpaki ipu kei roto i te raarangi kaainga SPARK_HOME ka tuu ki runga HDFS. Na ka kore ia e moumou taima ki te uta i enei jarniks e nga kaimahi.

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

E taunaki ana hoki kia whakamahia te kryo hei raupapa mo te mahi tere. He pai ake te arotau atu i te taunoa.

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

A tera ano tetahi raru kua roa mo te Spark he maha nga wa ka pakaru mai i te mahara. I te nuinga o nga wa ka puta tenei i te wa i tatauhia e nga kaimahi nga mea katoa ka tukuna atu te hua ki te taraiwa. I hanga e matou tenei tawhā kia nui ake ma matou ake. Ma te taunoa, ko te 1GB, i hanga e matou te 3.

spark.driver.maxResultSize=3072

Ka mutu, hei kai reka. Me pehea te whakahou i te Spark ki te putanga 2.1 mo te tohatoha HortonWorks - HDP 2.5.3.0. Kei roto i tenei putanga o te HDP he putanga 2.0 i mua i te whakaurunga, engari i whakatauhia e maatau ake kei te kaha te whanake a Spark, a ka whakatikahia e ia putanga hou etahi pepeha me te whakarato i etahi atu waahanga, tae atu ki te API python, no reira ka whakatauhia e matou, he aha nga mea hei mahi. kia mahia he whakahou.

I tangohia te putanga mai i te paetukutuku mana mo Hadoop 2.7. Wewetehia ka hoatu ki te kōpaki HDP. I whakauruhia e matou nga hononga tohu ina hiahiatia. Ka whakarewahia e matou - kaore e timata. Ka tuhia he hapa tino marama.

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

I muri mai i te googling, i kitea e matou i whakatau a Spark kia kaua e tatari kia whanau ra ano a Hadoop, ka whakatau ki te whakamahi i te putanga hou o te reeti. Ko ratou ano e tautohetohe ana ki a ratou ano mo tenei kaupapa i JIRA. Ko te otinga ko te tango reeti putanga 1.17.1. Whakanohoia tenei ki roto i te kōpaki ipu i SPARK_HOME, ka tuku ki HDFS.

I tutuki i a maatau tenei hapa, engari he mea hou, he maamaa noa ake.

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

I te wa ano, ka ngana matou ki te whakahaere i te putanga 2.0 - he pai nga mea katoa. Ngana ki te whakaaro he aha kei te haere. I titiro matou ki roto i nga rarangi o tenei tono ka kite i tetahi mea penei:

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

I te nuinga o te waa, mo etahi take kaore i whakatauhia e te hdp.version. Whai muri i te tirotiro haere, ka kitea he otinga. Me haere koe ki nga tautuhinga YARN i Ambari me te taapiri i tetahi tawhā ki reira ki te pae miro ritenga:

hdp.version=2.5.3.0-37

I awhina tenei makutu, ka rere atu a Spark. I whakamatauria e matou etahi o a maatau rorohiko jupyter. Kei te mahi nga mea katoa. Kua reri matou mo te akoranga Spark tuatahi hei te Rahoroi (apopo)!

DUP. I te wa o te akoranga, ka puta mai tetahi atu raruraru. I etahi wa, ka mutu te tuku ipu mo Spark. I roto i te YARN he mea tika ki te whakatika i te tawhā, i te taunoa ko 0.2:

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

Arā, 20% noa iho o ngā rauemi i uru ki te tohatoha rauemi. Whai muri i te whakarereke i nga tawhā, ka utaina ano e matou te YARN. I whakatauhia te raru, ka taea hoki e te toenga o nga kaiuru te whakahaere i te horopaki korakora.

Source: will.com

Tāpiri i te kōrero