Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban

Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban
Cimilada Cimilada ee Remarin

kooxda Mail.ru Cloud Solutions dalabyo tarjumaada maqaalka Injineer Rahul Bhatia oo ka socda Clairvoyant oo ku saabsan nooca faylalka ay ku jiraan xogta weyn, maxay yihiin qaababka ugu caansan ee qaababka Hadoop iyo qaabka ugu wanaagsan in la isticmaalo.

Maxaa loogu baahan yahay qaabab faylal kala duwan?

Waxqabadka ugu weyn ee barnaamijyada karti u leh HDFS sida MapReduce iyo Spark waa wakhtiga ay qaadanayso raadinta, akhrinta, iyo qorista xogta. Dhibaatooyinkan waxaa u sii dheer dhibka lagu maamulayo xogta waaweyn haddii aan haysanno schema horumarsan oo aan ahayn mid go'an, ama haddii ay jiraan qaar ka mid ah caqabadaha kaydinta.

Hagaajinta xogta weyn waxay kordhisaa culayska nidaamka-hoosaadka kaydinta - Hadoop waxay kaydisaa xogta si aan xad lahayn si loo gaadho dulqaadka qaladka. Marka laga reebo saxanadaha, processor-ka, network-ga, habka wax-soo-saarka, iyo wixii la mid ah ayaa la raray. Sida mugga xogtu u korto, sidaas oo kale qiimaha habaynta iyo kaydinta.

Qaabab fayl oo kala duwan Hadoop loo hindisay in si sax ah loo xalliyo dhibaatooyinkan. Doorashada qaabka faylka ku habboon waxay ku siin kartaa faa'iidooyin muhiim ah:

  1. Waqtiga akhriska oo dhakhso badan.
  2. Wakhtiga duubista degdega ah
  3. Faylasha la wadaago
  4. Taageerada horumarinta schema.
  5. Taageerada cadaadiska oo la ballaariyay.

Qaar ka mid ah qaababka faylka waxaa loogu talagalay isticmaalka guud, kuwa kale si gaar ah u isticmaal, qaarna waxaa loogu talagalay inay la kulmaan sifooyinka xogta gaarka ah. Markaa doorashadu runtii aad bay u weyn tahay.

Qaabka faylka Avro

Si aad u xogta taxanaha ah Avro si weyn ayaa loo isticmaalaa - waa xadhig ku salaysan, taas oo ah, qaabka kaydinta xogta xargaha ee Hadoop. Waxay ku kaydisaa schema qaab JSON ah, taasoo sahlaysa in la akhriyo laguna tarjumo barnaamij kasta. Xogta lafteedu waa qaab laba-geesood ah, kooban oo hufan.

Nidaamka taxanaha ee Avro waa dhexdhexaad luqadeed. Faylasha waxaa lagu farsamayn karaa luqado kala duwan, hadda C, C++, C #, Java, Python iyo Ruby.

Astaanta muhiimka ah ee Avro waa taageerada adag ee ay u leedahay qorshayaasha xogta ee isbedelaya waqti ka dib, taas oo ah, horumarisa. Avro wuu fahamsan yahay isbeddellada schema-tirtirka, ku darista, ama bedelida goobaha.

Avro waxay taageertaa qaabab xogeed oo kala duwan. Tusaale ahaan, waxaad samayn kartaa diiwaan ka kooban habayn, nooc la tiriyey, iyo diiwaan-hoosaad.

Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban
Qaabkani waxa uu ku fiican yahay in wax loo qoro aagga soo degaya (transition) ee harada xogta (harada xogta, ama xogta lake - ururinta tusaalooyinka kaydinta noocyada kala duwan ee xogta marka lagu daro ilaha xogta si toos ah).

Haddaba, qaabkani waxa uu ku habboon yahay in wax loo qoro aagga laga soo degayo ee harada xogta sababahan soo socda awgood:

  1. Xogta aaggan waxaa inta badan loo akhriyaa iyada oo dhammaystiran si loogu sii habeeyo nidaamyada hoose - iyo qaabka ku salaysan safka ayaa aad waxtar u leh kiiskan.
  2. Nidaamyada hoose waxay si fudud uga soo ceshan karaan miisaska schema faylalka-looma baahna in si gaar ah loogu kaydiyo schema kaydinta meta ee dibadda ah.
  3. Isbeddel kasta oo ku yimaadda schema asalka ah si fudud ayaa looga baaraandegi karaa (wax ka beddelka schema).

Qaabka Faylka Parquet

Parquet waa qaab faylal il furan oo Hadoop ah oo kaydiya qaab-dhismeedka xogta buul leh oo qaab tiirar siman ah.

Marka la barbardhigo habka safka dhaqameed, Parquet waa wax ku ool ah marka la eego kaydinta iyo waxqabadka.

Tani waxay si gaar ah faa'iido u leedahay weydiimaha akhriya tiirar gaar ah oo ka soo baxay miis ballaaran (tiiro badan). Waad ku mahadsan tahay qaabka faylka, kaliya tiirarka lagama maarmaanka ah ayaa la akhriyaa, markaa I/O waxaa lagu hayaa ugu yaraan.

Digression yar iyo sharaxaad: Si aad si fiican u fahamto qaabka faylka Parquet ee Hadoop, aynu aragno waxa uu yahay qaabka column-ku-salaysan - tusaale ahaan columnar - qaabku. Qaabkani waxa uu kaydiyaa qiimayaal la mid ah tiir kasta.

Tusaale ahaan, diiwaanka waxaa ku jira aqoonsiga, Magaca, iyo qaybaha Waaxda. Xaaladdan oo kale, dhammaan qiyamka tiirka aqoonsiga ayaa la wada kaydin doonaa, sidoo kale qiyamka tiirka Magaca, iyo wixii la mid ah. Shaxda ayaa u ekaan doonta sidan:

ID
magaca
Waaxda

1
awood1
d1

2
awood2
d2

3
awood3
d3

Qaab xardhan, xogta waxa loo kaydin doonaa sida soo socota:

1
awood1
d1
2
awood2
d2
3
awood3
d3

Qaab faylka columnar, isla xogta ayaa loo kaydin doonaa sidan:

1
2
3
awood1
awood2
awood3
d1
d2
d3

Qaabka tiirarka ayaa aad waxtar u leh marka aad u baahan tahay inaad waydiiso tiirar badan miiska. Kaliya waxay akhrin doontaa tiirarka loo baahan yahay sababtoo ah way ku dhow yihiin. Sidan, hawlgallada I/O waxaa lagu hayaa ugu yaraan.

Tusaale ahaan, waxaad u baahan tahay oo kaliya tiirka NAME IN qaabka xargaha Diiwaan kasta oo ku jira kaydka xogta waxa uu u baahan yahay in la raro, lagu miisaamo goobta, ka dibna laga soo saaro xogta NAME Qaabka tiirka wuxuu kuu ogolaanayaa inaad si toos ah hoos ugu dhigto tiirka Magaca sababtoo ah dhammaan qiyamka tiirkaas ayaa la wada kaydiyaa. Uma baahnid inaad sawirto duubista oo dhan.

Haddaba, qaabka tiirarku waxa uu wanaajiyaa wax qabadka weydiinta sababtoo ah waxa ay u baahan tahay wakhti yar oo raadin ah si loo gaadho tiirarka loo baahan yahay oo waxa ay yaraynaysaa tirada hawlgallada I/O sababtoo ah tiirarka la rabo oo keliya ayaa la akhriyaa.

Mid ka mid ah sifooyinka gaarka ah Barxada waa in qaabkan ay awood u leedahay kaydi xogta leh dhismayaal buul leh. Tani waxay ka dhigan tahay in faylka Parquet, xitaa beeraha buulka ah si gaar ah ayaa loo akhrin karaa iyada oo aan loo baahnayn in la akhriyo dhammaan goobaha dhismaha buulka ah. Parquet waxay isticmaashaa jeexjeexa iyo isku-ururinta algorithm si ay u kaydiso dhismooyinka buulka leh.

Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban
Si aad u fahamto qaabka faylka Parquet ee Hadoop, waxaad u baahan tahay inaad ogaato shuruudaha soo socda:

  1. Kooxda safka ah (koox saf): macquul ah qaybinta xogta safaf. Kooxda safku waxay ka kooban tahay qayb ka mid ah tiir kasta oo ku jira xogta.
  2. Jajabka tiirka (cudurka tiirka): Qayb ka mid ah tiir gaar ah. Jajabyada tiirarkan waxay ku nool yihiin koox gaar ah oo saf ah waxaana loo dammaanad qaaday inay ku sii socdaan faylka.
  3. Bogga (bogga): Qaybaha sadarrada waxay u qaybsan yihiin bogag midba midka kale u qoran. Bogaggu waxay leeyihiin cinwaan guud, marka waxaad ka boodi kartaa kuwa aan loo baahnayn markaad wax akhrinayso.

Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban
Halkan cinwaanku wuxuu ka kooban yahay lambarka sixirka PAR1 (4 bytes) kaas oo tilmaamaya faylka sida faylka Parquet.

Cagtu waxay tidhi sidan:

  1. Faylka xogta badan ee ka kooban isku-duwayaasha bilawga xogta badan ee tiir kasta. Markaad akhrinayso, waa inaad marka hore akhridaa xogta badan ee faylka si aad u hesho dhammaan jajabyada tiirka ee xiisaha. Qaybaha tiirka waa in si isdaba joog ah loo akhriyaa. Xogta badan ee kale waxaa ka mid ah qaabka qaabka, schema, iyo wixii dheeraad ah ee lamaanayaasha qiimaha muhiimka ah.
  2. Dhererka metadata (4 bytes).
  3. Lambarka sixirka PAR1 (4 bytes).

Qaabka faylka ORC

Qaabka faylalka safafka la hagaajiyay (Tiirka safka la hagaajiyay, CRO) waxa ay bixisaa hab aad u hufan oo lagu kaydiyo xogta waxaana loo qorsheeyay in laga gudbo xaddidaadda qaababka kale. Ku kaydi xogta qaab dhamaystiran oo is haysta, taas oo kuu ogolaanaysa inaad ka gudubto faahfaahinta aan loo baahnayn - adigoon u baahnayn dhismo weyn, adag ama gacanta lagu hayo.

Faa'iidooyinka qaabka ORC:

  1. Hal fayl ayaa ah soo saarida hawl kasta, taas oo yaraynaysa culayska ku jira NameNode (magaca node).
  2. Taageerada noocyada xogta Hive, oo ay ku jiraan DateTime, jajab tobanle iyo noocyada xogta adag (qaabka, liiska, khariidadda iyo ururka).
  3. Akhrinta isku mar ee isla fayl isku mid ah hababka RecordReader ee kala duwan.
  4. Awood u lahaanshaha kala qaybinta faylasha iyada oo aan la baadhin calaamadaha.
  5. Qiyaasta ugu badnaan ee suurtogalka ah qoondaynta xusuusta tuulan ee habsocodyada wax-akhrinta/qorista iyadoo lagu salaynayo macluumaadka ku jira qaybta faylka.
  6. Xogta badan waxay ku kaydsan tahay qaabka is dabajooga ah ee Protocol Buffers binary, kaas oo u ogolaanaya beeraha in lagu daro oo laga saaro.

Qaababka faylka ee xogta weyn: barnaamij waxbarasho oo kooban
ORC waxay ku kaydisaa ururinta xadhkaha hal fayl, iyo ururinta gudaheeda, xogta xadhkaha waxaa lagu kaydiyaa qaab tiirar ah.

Faylka ORC waxa uu ku kaydiyaa kooxo xariiqyo ah oo loo yaqaan xariijimaha iyo macluumaadka taageeraya qaybta hoose ee faylka. Qoraalka-boostada ee dhamaadka faylka waxa uu ka kooban yahay cabbirada isku-buufinta iyo cabbirka cagtiisa la cufan.

Cabbirka xariijimaha caadiga ah waa 250 MB. Xariijimo waaweyn oo noocaas ah dartood, akhrinta HDFS si hufan ayaa loo qabtaa: baloogyo waaweyn oo isku xiran.

Cageeyaha faylka wuxuu diiwaangeliyaa liiska haadka faylka, tirada safka haad kasta, iyo nooca xogta tiir kasta. Qiimaha natiijada tirinta, min, ugu badnaan iyo wadarta tiir kasta ayaa sidoo kale halkaas lagu qoray.

Qeybta hoose ee falinka ayaa ka kooban tusaha meelaha qulqulka.

Xogta safka ah ayaa la isticmaalaa marka la sawirayo miisaska.

Xogta tusmada waxaa ku jira qiimaha ugu yar iyo kan ugu sarreeya ee tiir kasta iyo booska safafka tiir kasta. Tusmooyinka ORC waxaa loo isticmaalaa oo kaliya xulashada xargaha iyo kooxaha safka, looma isticmaalo ka jawaabista su'aalaha.

Isbarbardhigga qaababka faylalka kala duwan

Avro marka la barbar dhigo Parquet

  1. Avro waa qaab kaydinta saf ah, halka Parquet ay ku kaydiso xogta tiirar.
  2. Parquet ayaa ku habboon weydiimaha falanqaynta, taasoo la macno ah hawlgallada akhrinta iyo xog-waraysiga ayaa aad uga waxtar badan kuwa wax qora.
  3. Hawlgallada qorista ee Avro waxaa loo sameeyaa si ka hufan marka loo eego Parquet.
  4. Avro wuxuu ula macaamilaa kobaca wareegga si bisil. Parquet kaliya waxay taageertaa isku-darka schema, halka Avro uu taageerayo kobaca hawl-qabadka badan, taas oo ah, ku-darka ama bedelida tiirarka.
  5. Parquet waxay ku habboon tahay in la waydiiyo qayb hoose oo tiirar ah oo ku jira miis dhowr tiir ah. Avro wuxuu ku habboon yahay hawlgallada ETL halkaasoo aan ku weydiinno dhammaan tiirarka.

ORC vs Parquet

  1. Parquet waxay si fiican u kaydisaa xogta buulka leh.
  2. ORC way ku fiican tahay in la saadaaliyo riixitaanka.
  3. ORC waxay taageertaa guryaha ACID.
  4. ORC si fiican ayey u cadaadisaa xogta

Maxaa kale oo laga akhriyi mawduuca:

  1. Falanqaynta xogta weyn ee daruuraha: sida shirkadu u noqon karto xog-ujeeda.
  2. Hagaha Quusan ee Nidaamyada Xogta.
  3. Kanaalkayaga telegramka ee ku saabsan isbeddelka dhijitaalka ah.

Source: www.habr.com

Add a comment