Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid

Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid
Aimsir Diadhachd le Remarin

sgioba Mail.ru Cloud Solutions tairgsean eadar-theangachadh artaigil innleadair Rahul Bhatia bho Clairvoyant mu dè na cruthan faidhle a tha ann an dàta mòr, dè na feartan as cumanta ann an cruthan Hadoop agus dè an cruth as fheàrr a chleachdadh.

Carson a tha feum air diofar chruthan faidhle?

Is e cnap-starra coileanaidh mòr airson tagraidhean le comas HDFS leithid MapReduce agus Spark an ùine a bheir e airson dàta a sgrùdadh, a leughadh agus a sgrìobhadh. Tha na duilgheadasan sin air an dèanamh nas miosa leis an duilgheadas ann a bhith a’ riaghladh sheataichean dàta mòra ma tha sgeama mean-fhàs againn seach fear stèidhichte, no ma tha cuid de chuingealachaidhean stòraidh ann.

Bidh giullachd dàta mòr a’ meudachadh an luchd air an fho-shiostam stòraidh - bidh Hadoop a’ stòradh dàta gun fheum gus fulangas locht a choileanadh. A bharrachd air diosgan, tha am pròiseasar, lìonra, siostam cuir a-steach / toraidh, agus mar sin air adhart air an luchdachadh. Mar a bhios meud an dàta a’ fàs, mar sin bidh cosgais a ghiullachd agus a stòradh.

Diofar chruthan faidhle ann an Hadoop air a chruthachadh gus na duilgheadasan sin fhuasgladh gu mionaideach. Faodaidh buannachdan cudromach a bhith ann a bhith a’ taghadh an cruth faidhle iomchaidh:

  1. Ùine leughaidh nas luaithe.
  2. Ùine clàraidh nas luaithe.
  3. Faidhlichean co-roinnte.
  4. Taic airson mean-fhàs sgeamaichean.
  5. Taic teannachaidh leudaichte.

Tha cuid de chruthan faidhle airson cleachdadh coitcheann, cuid eile airson cleachdaidhean nas sònraichte, agus tha cuid air an dealbhadh gus coinneachadh ri feartan dàta sònraichte. Mar sin tha an roghainn gu math mòr.

Avro fòrmat faidhle

airson sreathachadh dàta Tha Avro air a chleachdadh gu farsaing - e stèidhichte air sreang, is e sin, cruth stòraidh dàta sreang ann an Hadoop. Bidh e a’ stòradh an sgeama ann an cruth JSON, ga dhèanamh furasta a leughadh agus a mhìneachadh le prògram sam bith. Tha an dàta fhèin ann an cruth dà-chànanach, teann agus èifeachdach.

Tha siostam sreathachaidh Avro neo-phàirteach a thaobh cànain. Faodar faidhlichean a phròiseasadh ann an grunn chànanan, an-dràsta C, C ++, C #, Java, Python agus Ruby.

Is e prìomh fheart de Avro an taic làidir a th’ aige do sgeamaichean dàta a bhios ag atharrachadh thar ùine, is e sin, mean-fhàs. Tha Avro a’ tuigsinn atharrachaidhean sgeamaichean - cuir às, cuir ris no atharrachadh raointean.

Tha Avro a’ toirt taic do ghrunn structaran dàta. Mar eisimpleir, faodaidh tu clàr a chruthachadh anns a bheil sreath, seòrsa àireamhaichte, agus fo-chlàr.

Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid
Tha an cruth seo air leth freagarrach airson sgrìobhadh gu sòn tighinn air tìr (eadar-ghluasad) loch dàta (loch dàta, no loch dàta - cruinneachadh de shuidheachaidhean airson diofar sheòrsaichean dàta a stòradh a bharrachd air stòran dàta gu dìreach).

Mar sin, tha an cruth seo nas freagarraiche airson sgrìobhadh gu raon laighe loch dàta airson na h-adhbharan a leanas:

  1. Mar as trice bidh dàta bhon raon seo air a leughadh gu h-iomlan airson tuilleadh giollachd le siostaman sìos an abhainn - agus tha cruth stèidhichte air sreath nas èifeachdaiche sa chùis seo.
  2. Is urrainn do shiostaman sìos an abhainn clàran sgeama fhaighinn air ais bho fhaidhlichean - chan eil feum air sgeamaichean a stòradh air leth ann an stòradh meta taobh a-muigh.
  3. Tha atharrachadh sam bith air an sgeama tùsail air a phròiseasadh gu furasta (mean-fhàs sgeama).

Cruth faidhle parquet

Tha Parquet na chruth faidhle stòr fosgailte airson Hadoop a bhios a’ stòradh structaran dàta neadachaidh ann an cruth colbh còmhnard.

An coimeas ris an dòigh sreath traidiseanta, tha Parquet nas èifeachdaiche a thaobh stòradh agus coileanadh.

Tha seo gu sònraichte feumail airson ceistean a leughas colbhan sònraichte bho chlàr farsaing (iomadh colbh). Taing don fhòrmat faidhle, chan eil ach na colbhan riatanach air an leughadh, agus mar sin tha I / O air a chumail cho ìosal.

Mion-sgrùdadh agus mìneachadh: Gus tuigse nas fheàrr fhaighinn air cruth faidhle Parquet ann an Hadoop, chì sinn dè a th’ ann an cruth colbh - ie colbh -. Bidh an cruth seo a’ stòradh luachan co-chosmhail airson gach colbh còmhla.

Mar eisimpleir, tha an clàr a’ toirt a-steach raointean ID, Ainm, agus Roinn. Anns a 'chùis seo, thèid na luachan colbh ID gu lèir a stòradh còmhla, mar a bhios luachan colbh Ainm, agus mar sin air adhart. Seallaidh an clàr rudeigin mar seo:

ID
Ainm
Roinn

1
mp1
d1

2
mp2
d2

3
mp3
d3

Ann an cruth sreang, thèid an dàta a shàbhaladh mar a leanas:

1
mp1
d1
2
mp2
d2
3
mp3
d3

Ann an cruth faidhle colbh, thèid an aon dàta a shàbhaladh mar seo:

1
2
3
mp1
mp2
mp3
d1
d2
d3

Tha an cruth colbh nas èifeachdaiche nuair a dh’ fheumas tu grunn cholbh a cheasnachadh bho bhòrd. Cha leugh e ach na colbhan a tha a dhìth oir tha iad ri thaobh. San dòigh seo, tha gnìomhachd I/O air a chumail cho ìosal.

Mar eisimpleir, chan fheum thu ach an colbh NAME. ANNS cruth sreang Feumaidh gach clàr san t-seata a bhith air a luchdachadh, air a pharsadh a rèir raon, agus an uairsin air an dàta NAME a thoirt a-mach. Leigidh cruth a’ cholbh leat drileadh sìos gu dìreach chun cholbh Ainm oir tha na luachan uile airson a’ cholbh sin air an stòradh còmhla. Chan fheum thu an clàradh gu lèir a sganadh.

Mar sin, bidh an cruth colbh a’ leasachadh coileanadh ceiste leis gu bheil feum air nas lugha de ùine sgrùdaidh gus faighinn gu na colbhan a tha a dhìth agus a’ lughdachadh na h-àireamh de ghnìomhachd I/O leis nach eil ach na colbhan a tha thu ag iarraidh air an leughadh.

Aon de na feartan sònraichte Parquet is e sin gum faod e anns a’ chruth seo stòradh dàta le structaran neadachaidh. Tha seo a’ ciallachadh, ann am faidhle Parquet, gum faodar eadhon raointean neadachaidh a leughadh leotha fhèin gun a bhith a’ leughadh a h-uile raon san structar neadachaidh. Bidh parquet a’ cleachdadh algairim rùsgaidh is cruinneachaidh gus structaran neadachaidh a stòradh.

Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid
Gus cruth faidhle Parquet ann an Hadoop a thuigsinn, feumaidh fios a bhith agad air na teirmean a leanas:

  1. Buidheann de shreathan (buidheann sreath): roinn còmhnard loidsigeach de dhàta ann an sreathan. Ann am buidheann sreath tha criomag de gach colbh san t-seata dàta.
  2. Criomag colbh (cnoc colbh): Criomag de cholbh sònraichte. Tha na pìosan colbh seo a’ fuireach ann am buidheann sònraichte de shreathan agus tha iad cinnteach gum bi iad ri taobh an fhaidhle.
  3. Duilleag (duilleag): Tha pìosan colbh air an roinn ann an duilleagan air an sgrìobhadh aon às deidh a chèile. Tha tiotal cumanta aig na duilleagan, agus mar sin faodaidh tu an fheadhainn nach eil riatanach a sheachnadh nuair a bhios tu a’ leughadh.

Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid
An seo chan eil anns an tiotal ach an àireamh draoidheachd PAR1 (4 bytes) a chomharraicheas am faidhle mar fhaidhle Parquet.

Tha am bonn-coise ag ràdh na leanas:

  1. Metadata faidhle anns a bheil co-chomharran tòiseachaidh meata-dàta gach colbh. Nuair a bhios tu a 'leughadh, feumaidh tu meata-dàta an fhaidhle a leughadh an-toiseach gus na pìosan colbh inntinneach gu lèir a lorg. An uairsin bu chòir na pìosan colbh a leughadh ann an òrdugh. Tha meata-dàta eile a’ toirt a-steach an dreach cruth, sgeama, agus paidhrichean prìomh-luach a bharrachd.
  2. Fad meata-dàta (4 bytes).
  3. àireamh draoidheachd PAR1 (4 bytes).

Fòrmat faidhle ORC

Fòrmat faidhle colbh loidhne as fheàrr (Colbh sreath Optimized, CRO) a’ tabhann dòigh air leth èifeachdach airson dàta a stòradh agus chaidh a dhealbhadh gus faighinn thairis air crìochan chruthan eile. A ’stòradh dàta ann an cruth gu math toinnte, a’ toirt cothrom dhut mion-fhiosrachadh neo-riatanach a sheachnadh - gun a bhith feumach air clàran-amais mòra, iom-fhillte no air an cumail suas le làimh.

Buannachdan cruth ORC:

  1. Is e aon fhaidhle toradh gach gnìomh, a lughdaicheas an luchd air an NameNode (node ​​ainm).
  2. Taic airson seòrsachan dàta Hive, a’ toirt a-steach DateTime, seòrsaichean dàta deicheach agus iom-fhillte (structar, liosta, mapa agus aonadh).
  3. Leughadh aig an aon àm den aon fhaidhle le diofar phròiseasan RecordReader.
  4. Comas faidhlichean a sgoltadh gun sganadh airson comharran.
  5. Tomhais air an riarachadh cuimhne tiùrr as àirde a dh’ fhaodadh a bhith ann airson pròiseasan leughaidh / sgrìobhaidh stèidhichte air fiosrachadh ann am bonn-stèidh an fhaidhle.
  6. Tha meata-dàta air a stòradh ann an cruth sreathadh binary Protocol Buffers, a leigeas le raointean a bhith air an cur ris agus air an toirt air falbh.

Cruthan faidhle ann an dàta mòr: prògram foghlaim goirid
Bidh ORC a’ stòradh cruinneachaidhean de shreathan ann an aon fhaidhle, agus taobh a-staigh a’ cho-chruinneachadh, tha dàta sreang air a stòradh ann an cruth colbh.

Bidh faidhle ORC a’ stòradh buidhnean de loidhnichean ris an canar stiallan agus fiosrachadh taice ann am bonn an fhaidhle. Anns an Postscript aig deireadh an fhaidhle tha paramadairean teannachaidh agus meud a’ bhun-coise teannachaidh.

Is e am meud stripe àbhaisteach 250 MB. Mar thoradh air strì cho mòr, tha leughadh bho HDFS air a dhèanamh nas èifeachdaiche: ann am blocaichean mòra faisg air làimh.

Bidh bonn-coise an fhaidhle a’ clàradh liosta nan slighean san fhaidhle, an àireamh de shreathan anns gach sreath, agus an seòrsa dàta anns gach colbh. Tha an luach cunntais, min, as àirde agus suim airson gach colbh air a sgrìobhadh an sin cuideachd.

Ann am bonn na stiall tha eòlaire de dh'àiteachan nan sruthan.

Bithear a’ cleachdadh dàta sreath nuair a thathar a’ sganadh chlàran.

Tha dàta clàr-amais a’ toirt a-steach na luachan as ìsle agus as àirde airson gach colbh agus suidheachadh nan sreathan anns gach colbh. Bithear a’ cleachdadh clàran-amais ORC a-mhàin airson stiallan agus buidhnean sreath a thaghadh, chan ann airson ceistean a fhreagairt.

Dèan coimeas eadar diofar chruthan faidhle

Avro an coimeas ri Parquet

  1. Is e cruth stòraidh sreath a th’ ann an Avro, fhad ‘s a bhios Parquet a’ stòradh dàta ann an colbhan.
  2. Tha parquet nas freagarraiche airson ceistean anailis, a’ ciallachadh gu bheil gnìomhachd leughaidh agus ceasnachadh dàta tòrr nas èifeachdaiche na sgrìobhaidhean.
  3. Tha obraichean sgrìobhaidh ann an Avro air an coileanadh nas èifeachdaiche na ann am Parquet.
  4. Bidh Avro a’ dèiligeadh ri mean-fhàs cuairteachaidh nas aibidh. Chan eil parquet a’ toirt taic ach do chur-ris sgeamaichean, fhad ‘s a tha Avro a’ toirt taic do mean-fhàs ioma-ghnìomhach, is e sin, cuir ris no atharrachadh colbhan.
  5. Tha parquet air leth freagarrach airson a bhith a’ ceasnachadh fo-sheata de cholbhan ann an clàr ioma-colbh. Tha Avro freagarrach airson gnìomhachd ETL far am bi sinn a’ ceasnachadh a h-uile colbh.

ORC vs Parquet

  1. Bidh stòradh parquet a’ neadachadh dàta nas fheàrr.
  2. Tha ORC nas freagarraiche airson putadh sìos.
  3. Bidh ORC a’ toirt taic do thogalaichean ACID.
  4. Bidh ORC a’ teannachadh dàta nas fheàrr.

Dè eile a leughas tu air a’ chuspair:

  1. Mion-sgrùdadh dàta mòr san sgòth: mar as urrainn do chompanaidh a bhith stèidhichte air dàta.
  2. Iùl iriosal air sgeamaichean stòr-dàta.
  3. An sianal teileagram againn mu chruth-atharrachadh didseatach.

Source: www.habr.com

Cuir beachd ann