Stropa apmācība - stropa arhitektūra un NASA gadījumu izpēte

Šis stropa apmācības emuārs sniedz jums padziļinātas zināšanas par stropa arhitektūru un stropa datu modeli. Tas arī izskaidro NASA gadījumu izpēti par Apache Hive.

Apache Hive apmācība: Ievads

Strops ir visā nozarē stingri izmantots rīks, kas paredzēts lielo datu analīzei, un lielisks rīks, lai sāktu darbu ar. Šajā Hive apmācības emuārā mēs padziļināti apspriedīsim par Apache Hive. Apache Hive ir datu noliktavas rīks , kas nodrošina SQL līdzīgu valodu vaicājumiem un lielo datu analizēšanai. Stropu izstrādes motivācija ir SQL izstrādātājiem un analītiķiem mazāks berzes mācību ceļš. Strops ir ne tikai glābējs cilvēkiem no programmēšanas fona, bet arī samazina to programmētāju darbu, kuri ilgu laiku pavada, rakstot MapReduce programmas. Šajā Apache Hive Tutorial emuārā es runāšu par:





Apache Hive apmācība: kas ir Hive?

Apache Hive ir datu noliktavas sistēma, kas izveidota virs Hadoop un tiek izmantota strukturētu un daļēji strukturētu datu analīzei.Strops abstraktina Hadoop MapReduce sarežģītību. Būtībā tas nodrošina mehānismu, kā projektēt struktūru uz datiem un veikt HQL (Hive Query Language) rakstītus vaicājumus, kas ir līdzīgi SQL priekšrakstiem. Iekšēji Hive kompilators šos vaicājumus vai HQL pārveido par karti, lai samazinātu darbavietas. Tādēļ jums nav jāuztraucas par sarežģītu MapReduce programmu rakstīšanu, lai jūsu datus apstrādātu, izmantojot Hadoop. Tā ir paredzēta lietotājiem, kuriem SQL ir ērti. Apache Hive atbalsta datu definēšanas valodu (DDL), datu manipulācijas valodu (DML) un lietotāja definētas funkcijas (UDF).

Stropu apmācība iesācējiem Izpratne par stropu dziļumā Edureka



SQL + Hadoop MapReduce = HiveQL

Apache Hive apmācība: Stropa stāsts - no Facebook līdz Apache

Facebook lietošanas gadījums - stropa apmācība - EdurekaAtt : Stropu apmācība - Facebook lietošanas gadījums

Izaicinājumi vietnē Facebook: datu eksponenciāla izaugsme

Pirms 2008. gada visa Facebook datu apstrādes infrastruktūra tika veidota ap datu noliktavu, kuras pamatā bija komerciāls RDBMS. Šīs infrastruktūras bija pietiekami spējīgas, lai tajā laikā apmierinātu Facebook vajadzības. Bet, tā kā dati sāka augt ļoti ātri, tas kļuva par milzīgu izaicinājumu pārvaldīt un apstrādāt šo milzīgo datu kopu. Saskaņā ar Facebook rakstu dati ir mērogoti no 15 TB datu kopas 2007. gadā līdz 2 PB datiem 2009. gadā. Daudzi Facebook produkti ietver tādu datu analīzi kā Audience Insights, Facebook Leksikons, Facebook Ads utt. Tātad, viņi vajadzēja pielāgojamu un ekonomisku risinājumu, lai tiktu galā ar šo problēmu, un tāpēc sāka izmantot Hadoop sistēmu.



Demokratizējošs Hadoop - MapReduce

Bet, pieaugot datiem, Map-Reduce kodu sarežģītība proporcionāli auga. Tātad kļuva grūti apmācīt cilvēkus, kuriem nav programmēšanas, rakstīt MapReduce programmas. Lai veiktu vienkāršu analīzi, ir jāuzraksta simts MapReduce koda rindiņu. Tā kā SQL inženieri un analītiķi, tostarp Facebook, plaši izmantoja, tāpēc SQL ievietošana Hadoop augšpusē šķita loģisks veids, kā padarīt Hadoop pieejamu lietotājiem ar SQL fonu.

Tādējādi SQL spēja pietikt ar lielāko daļu analītisko prasību un Hadoop mērogojamība dzemdēja Apache strops kas ļauj veikt SQL līdzīgus vaicājumus par HDFS esošajiem datiem. Vēlāk Hive projektu 2008. gada augustā atklāja Facebook un šodien tas ir brīvi pieejams kā Apache Hive.

Tagad apskatīsim Hive funkcijas vai priekšrocības, kas to padara tik populāru.

Apache Hive apmācība: Stropa priekšrocības

  • Noderīgi cilvēkiem, kuri nav no programmēšanas fona, jo tas novērš nepieciešamību rakstīt sarežģītu MapReduce programmu.
  • Izvelkams un mērogojams lai tiktu galā ar pieaugošo datu apjomu un daudzveidību, neietekmējot sistēmas veiktspēju.
  • Tas ir kā efektīvs rīks ETL (Extract, Transform, Load).
  • Strops atbalsta jebkuru klienta lietojumprogrammu, kas rakstīta Java, PHP, Python, C ++ vai Ruby, pakļaujot to Taupības serveris . (Lai piekļūtu datu bāzei, piemēram, DB2 utt., Varat izmantot šīs klienta puses valodas, kas iegultas SQL.
  • Tā kā stropa metadatu informācija tiek saglabāta RDBMS, tā ievērojami samazina semantisko pārbaužu veikšanas laiku vaicājuma izpildes laikā.

Apache Hive apmācība: kur izmantot Apache Hive?

Apache Hive izmanto gan pasaules, t.i., SQL Database System un ietvaros. Tādēļ to izmanto ļoti daudz uzņēmumu. To galvenokārt izmanto datu glabāšanai, kur jūs varat veikt analīzi un datu ieguvi, kas neprasa reāllaika apstrādi. Daži no laukiem, kuros varat izmantot Apache Hive, ir šādi:

  • Datu uzglabāšana
  • Ad-hoc analīze

Kā teikts, jūs nevarat aplaudēt tikai ar vienu roku, t.i., jūs nevarat atrisināt visas problēmas ar vienu rīku. Tādēļ jūs varat savienot stropu ar citiem rīkiem, lai to izmantotu daudzās citās jomās. Piemēram, Tableau kopā ar Apache Hive var izmantot datu vizualizācijai, Apache Tez integrācija ar Hive nodrošinās reāllaika apstrādes iespējas utt.
Virzoties uz priekšu šajā Apache Hive Tutorial emuārā, ļaujiet mums apskatīt NASA gadījuma pētījumu, kur jūs uzzināsiet, kā Hive atrisināja problēmu, ar kuru NASA zinātnieki saskārās, veicot klimata modeļu novērtēšanu.

Stropa apmācība: NASA gadījumu izpēte

Klimata modelis ir klimatisko sistēmu matemātisks attēlojums, kas balstīts uz dažādiem faktoriem, kas ietekmē Zemes klimatu. Būtībā tas apraksta dažādu klimata faktoru, piemēram, okeāna, saules, atmosfēras utt., Mijiedarbību arsniegt ieskatu klimata sistēmas dinamikā. To izmanto, lai prognozētu klimata apstākļus, simulējot klimata izmaiņas, pamatojoties uz faktoriem, kas ietekmē klimatu. NASA reaktīvo dzinēju laboratorija ir izstrādājusi reģionālo klimata modeļu novērtēšanas sistēmu (RCMES), lai analizētu un novērtētu klimata rezultātu modeli, salīdzinot ar attālās uzrādes datiem, kas atrodas dažādās ārējās krātuvēs.

RCMES (reģionālā klimata modeļa novērtēšanas sistēma) ir divas sastāvdaļas:

  • RCMED (reģionālā klimata modeļa novērtēšanas datu bāze):

Tā ir mērogojama mākoņu datu bāze, kas ielādē ar klimatu saistītos attālās uzrādes datus un reanalīzes datus, izmantojot ekstraktorus, piemēram, Apache OODT nosūcējus, Apache Tika utt. Visbeidzot, tas pārveido datus kā datu punktu modeli, kas ir formā (platums , garums, laiks, vērtība, augstums) un saglabā to My SQL datu bāzē. Klients var izgūt RCMED esošos datus, veicot vietas / laika vaicājumus. Šādu vaicājumu apraksts mums tagad nav aktuāls.

  • RCMET (reģionālā klimata modeļa novērtēšanas rīkkopa):

Tas nodrošina lietotājam iespēju salīdzināt RCMED esošos atsauces datus ar klimata modeļa izejas datiem, kas iegūti no dažiem citiem avotiem, lai veiktu dažāda veida analīzi un novērtēšanu. Lai saprastu RCMES arhitektūru, varat atsaukties uz tālāk sniegto attēlu.

RCMED atsauces dati iegūti no attālinātas satelītnovērošanas saskaņā ar dažādiem parametriem, kas nepieciešami klimata modeļa novērtēšanai. Piemēram - AIRS (Atmosfēras infrasarkanais signāls) nodrošina tādus parametrus kā virsmas gaisa temperatūra, temperatūra un ģeopotenciāls, TRMM (tropisko nokrišņu mērīšanas misija) nodrošina ikmēneša nokrišņus utt.

Problēmas, ar kurām saskaras NASA, izmantojot MySQL datu bāzes sistēmu:

  • Pēc MySQL datu bāzes ielādes ar 6 miljardiem veidlapu kopu (platums, garums, laiks, datu punktu vērtība, augstums) sistēma avarēja, kā parādīts augšējā attēlā.
  • Pat pēc visas tabulas sadalīšanas mazākās apakškopās, apstrādājot datus, sistēma radīja milzīgas izmaksas.

Tātad viņiem bija nepieciešams pielāgojams risinājums, kas var uzglabāt un apstrādāt šo milzīgo datu daudzumu ar SQL, piemēram, vaicājumu sniegšanas iespējām. Visbeidzot, viņi nolēma izmantot Apache Hive, lai pārvarētu iepriekš minētās problēmas.

Kā Apache Hive var atrisināt problēmu?

Apskatīsim, kādas ir tās funkcijas, kas pārliecināja NASA JPL komandu iekļaut Apache Hive kā neatņemamu sastāvdaļu savā risinājumu stratēģijā:

  • Tā kā Apache Hive darbojas virs Hadoop, tas ir mērogojams un var apstrādāt datus sadalītā un paralēlā veidā.
  • Tas nodrošina stropu vaicājumu valodu, kas ir līdzīga SQL un tādējādi viegli iemācāma.

Stropa izvietošana:

Šis attēls RCMES arhitektu izskaidro ar Apache Hive integrāciju:

Att : Stropa apmācība - RCMES arhitektūra ar Apache Hive

Iepriekš redzamajā attēlā parādīta apache stropa izvietošana RCMES. Izvietojot Apache Hive, NASA komanda veica šādus pasākumus:

  • Viņi instalēja Hive, izmantojot Cloudera un Apache Hadoop, kā parādīts iepriekšējā attēlā.
  • Viņi izmantoja Apache Soop, lai ievadītu datus stropā no MySQL datu bāzes.
  • Apache OODT iesaiņotājs tika ieviests, lai veiktu vaicājumus pakalpojumā Hive un atgūtu datus atpakaļ RCMET.

Sākotnējie novērojumi ar stropu:

  • Sākotnēji viņi vienā tabulā ielādēja 2,5 miljardus datu punktu un veica skaitīšanas vaicājumu. Piemēram, Stropu> atlasiet skaitu (datapoint_id) no dataPoint. Visu rekordu saskaitīšana prasīja 5-6 minūtes (pilni 6,8 miljardi ierakstu - 15–17 minūtes).
  • Samazināšanas fāze bija ātra, bet kartes fāze aizņēma 95% no kopējā apstrādes laika. Viņi izmantoja sešus ( 4x četrkodolu ) sistēmas ar 24 GB RAM (aptuveni) katrā no sistēmām.
  • Pat pēc vairāku mašīnu pievienošanas, HDFS bloka lieluma (64 MB, 128 MB, 256 MB) un daudzu citu konfigurācijas mainīgo mainīšana (io.kārtot.faktors, t.i..kārtot.mb), viņi neguva daudz panākumu, samazinot laiku, lai pabeigtu skaitīšanu.

Stropu kopienas dalībnieku ieguldījums:

Visbeidzot, stropa kopienas locekļi nāca talkā un sniedza dažādas atziņas, lai atrisinātu problēmas ar pašreizējo stropu ieviešanu:

  • Viņi minēja, ka HDFS lasīšanas ātrums ir aptuveni 60 MB / s salīdzinot ar 1 GB / s lokāla diska gadījumā atkarībā no tīkla jaudas un NameNode slodzes.
  • Locekļi to ieteica 16 kartētāji pašreizējā sistēmā būs nepieciešami, lai tie atbilstu vietējā, nevis Hadoop uzdevuma I / O veiktspējai.
  • Viņi arī ieteica samazināt split-size katram kartētājam palielināt numurugadakartētājus un tāpēc nodrošina lielāku paralēlismu.
  • Visbeidzot, kopienas locekļi viņiem to teica izmantot skaits (1) tā vietā, lai atsauktos uz skaitīt ( datapoint_id) . Tas ir tāpēc, ka skaitīšanas (1) gadījumā nav atsauces kolonnas, un tāpēc, veicot skaitīšanu, dekompresija un deserializācija nenotiek.

Visbeidzot, NASA varēja pielāgot savu stropu kopu viņu cerībām, ņemot vērā visus stropa kopienas locekļu ieteikumus. Tāpēc viņi varēja pieprasīt miljardiem rindu tikai 15 sekundēs, izmantojot iepriekš minētās sistēmas konfigurācijas.

Apache Hive apmācība: Stropa arhitektūra un tās sastāvdaļas

Šajā attēlā ir aprakstīta stropa arhitektūra un plūsma, kurā tiek iesniegts vaicājumsStropuun visbeidzot apstrādā, izmantojot MapReduce ietvaru:

Att : Stropa apmācība - stropa arhitektūra

Kā parādīts iepriekšējā attēlā, stropu arhitektūru var iedalīt šādos komponentos:

kas seriālizēts java
  • Stropu klienti: Strops atbalsta lietojumprogrammu, kas rakstīta daudzās valodās, piemēram, Java, C ++, Python uc, izmantojot JDBC, Thrift un ODBC draiverus. Tādējādi vienmēr var uzrakstīt stropa klienta pieteikumu, kas rakstīts viņu izvēlētajā valodā.
  • Stropu pakalpojumi: Apache Hive nodrošina dažādus pakalpojumus, piemēram, CLI, tīmekļa saskarni utt., Lai veiktu vaicājumus. Mēs drīz izpētīsim katru no tiem šajā stropa apmācības emuārā.
  • Apstrādes sistēma un resursu pārvaldība: IekšējiHive vaicājumu izpildei izmanto Hadoop MapReduce sistēmu kā faktisko dzinēju. ir pati par sevi atsevišķa tēma, un tāpēc šeit tā netiek apskatīta.
  • Dalītā krātuve: Tā kā Hive ir instalēts virs Hadoop, izplatītajai krātuvei tā izmanto pamatā esošo HDFS. Jūs varat atsaukties uz HDFS emuārs lai uzzinātu vairāk par to.

Tagad izpētiet divus pirmos galvenos stropa arhitektūras komponentus:

1. Stropu klienti:

Apache Hive atbalsta dažāda veida klienta lietojumprogrammas, lai veiktu vaicājumus Hive. Šos klientus var iedalīt trīs veidos:

  • Taupības klienti: Tā kā Hive servera pamatā ir Apache Thrift, tas var apkalpot pieprasījumu no visām programmēšanas valodām, kas atbalsta Thrift.
  • JDBC klienti: Strops ļauj Java lietojumprogrammām izveidot savienojumu ar to, izmantojot JDBC draiveri, kas definēts klases org.apache.hadoop.strops.jdbc.HiveDriver.
  • ODBC klienti: Hive ODBC draiveris ļauj izveidot savienojumu ar Hive lietojumprogrammām, kas atbalsta ODBC protokolu. (Tāpat kā JDBC draiveris, arī ODBC draiveris izmanto Thrift, lai sazinātos ar Hive serveri.)

2. Stropu pakalpojumi:

Strops nodrošina daudzus pakalpojumus, kā parādīts attēlā iepriekš. Apskatīsim katru no tiem:

  • Stropa CLI (komandrindas saskarne): Šī ir noklusējuma korpuss, ko nodrošina strops, kur jūs varat tieši izpildīt stropa vaicājumus un komandas.
  • Apache Hive tīmekļa saskarnes: Papildus komandrindas interfeisam Hive nodrošina arī tīmekļa GUI, lai izpildītu Hive vaicājumus un komandas.
  • Stropu serveris: Hive serveris ir veidots uz Apache Thrift un tāpēc tiek dēvēts arī par Thrift Server, kas ļauj dažādiem klientiem iesniegt pieprasījumus Hive un izgūt gala rezultātu.
  • Apache Hive vadītājs: Tas ir atbildīgs par to, lai klients saņemtu jautājumus, kas klientam iesniegti, izmantojot CLI, tīmekļa lietotāja interfeisu, Thrift, ODBC vai JDBC saskarnes. Tad draiveris nodod vaicājumu kompilatoram, kur parsēšana, tipa pārbaude un semantiskā analīze notiek ar metastore esošās shēmas palīdzību. Nākamajā solī tiek izveidots optimizēts loģiskais plāns DAG (Directed Acyclic Graph) veidā, kurā norādīti uzdevumi, kas samazina karti un HDFS. Visbeidzot, izpildes programma izpilda šos uzdevumus atkarībā no to atkarības secībā, izmantojot Hadoop.
  • Metastore: Jūs varat domāt metastorekā centrālo krātuvi visas stropu metadatu informācijas glabāšanai. Stropu metadati ietver dažāda veida informāciju, piemēram, tabulu un starpsienu struktūrukopā ar kolonnu, kolonnas tipu, serializatoru un deserializatoru, kas nepieciešami HDFS esošo datu lasīšanas / rakstīšanas darbībai. Metastoresastāv no divām pamatvienībām:
    • Pakalpojums, kas nodrošina metastorepiekļuve citiemrStropu pakalpojumi.
    • Diska krātuve metadatiem, kas ir atsevišķi no HDFS krātuves.

Ļaujiet mums saprast dažādus stropu metastore ieviešanas veidusšīs stropa apmācības nākamajā sadaļā.

Apache Hive apmācība: metastore konfigurācija

Metastore glabā metadatu informāciju, izmantojot RDBMS un atvērtā koda ORM (Object Relational Model) slāni ar nosaukumu Data Nucleus, kas objekta attēlojumu pārvērš relāciju shēmā un otrādi. Iemesls RDBMS izvēlei HDFS vietā ir panākt zemu latentumu. Mēs varam ieviest metastore šādās trīs konfigurācijās:

1. Iegultā metastore:

Gan metastore pakalpojums, gan Hive pakalpojums pēc noklusējuma darbojas vienā un tajā pašā JVM, izmantojot iegulto Derby Database instanci, kur metadati tiek glabāti lokālajā diskā. To sauc par iegulto metastore konfigurāciju. Šajā gadījumā vienlaikus ar metastore datu bāzi var izveidot savienojumu tikai viens lietotājs. Startējot otro stropa draivera instanci, tiks parādīta kļūda. Tas ir labi vienību testēšanai, bet ne praktiskiem risinājumiem.

2. Vietējā metastore:

Šī konfigurācija ļauj mums veikt vairākas Hive sesijas, t.i., vairāki lietotāji vienlaikus var izmantot metastore datu bāzi. Tas tiek panākts, izmantojot jebkuru ar JDBC saderīgu datu bāzi, piemēram, MySQL, kas darbojas atsevišķā JVM vai citā mašīnā, nevis Hive pakalpojuma un metastore pakalpojuma datorā, kas darbojas tajā pašā JVM, kā parādīts iepriekš. Kopumā vispopulārākā izvēle ir MySQL servera ieviešana kā metastore datu bāze.

3. Attālā metastore:

Attālās metastore konfigurācijā metastore pakalpojums darbojas ar savu atsevišķo JVM, nevis Hive service JVM. Citi procesi sazinās ar metastore serveri, izmantojot Thrift Network API. Šajā gadījumā jums var būt viens vai vairāki metastore serveri, lai nodrošinātu lielāku pieejamību.Galvenā attālās metastore izmantošanas priekšrocība ir tāda, ka jums nav jādala JDBC pieteikšanās akreditācijas dati katram Hive lietotājam, lai piekļūtu metastore datu bāzei.

Apache Hive apmācība: datu modelis

Stropā esošos datus var iedalīt trīs veidos granulu līmenī:

  • Tabula
  • Sadalījums
  • Kauss

Galdi:

Stropā esošās tabulas ir tādas pašas kā Relāciju datu bāzē esošās tabulas. Jūs varat veikt filtrēšanas, projektēšanas, pievienošanās un savienošanas darbības. Stropā ir divu veidu tabulas:

1. Pārvalda tabula:

Komanda:

CREATE TABLE (1. sleja data_type, 2. sleja data_type)

IELĀDĒT DATU IEEJU tabulā managed_table

Kā norāda nosaukums (pārvaldītā tabula), Hive ir atbildīgs par pārvaldītās tabulas datu pārvaldību. Citiem vārdiem sakot, to, ko es gribēju teikt, sakot: „Strops pārvalda datus”, ir tas, ka, ielādējot datus no faila, kas atrodas HDFS, stropā Pārvalda tabula un izdodiet komandu DROP, tabula kopā ar tās metadatiem tiks izdzēsta. Tātad, dati, kas pieder pie kritušajiem pārvaldīta_tabula vairs nepastāv nekur HDFS, un jūs to nevarat izgūt nekādā veidā. Būtībā jūs pārvietojat datus, izsniedzot komandu LOAD no HDFS faila atrašanās vietas uz Hive noliktavas direktoriju.

Piezīme: Noliktavas direktorija noklusējuma ceļš ir iestatīts uz / user / hive / noliktava. Stropu tabulas dati atrodas noliktavas direktorijā / tabulas_nosaukums (HDFS). Varat arī norādīt noliktavas direktorija ceļu konfigurācijas parametrā hive.metastore.warehouse.dir, kas atrodas hive-site.xml.

2. Ārējā tabula:

Komanda:

IZVEIDOT ĀRĒJO TABULU (1. sleja data_type, 2. sleja data_type) LOCATION ’’

IELĀDĒT DATU IEVIETU ’’ TABULĀ

Priekš ārējais galds , Hive nav atbildīgs par datu pārvaldību. Šajā gadījumā, izsniedzot komandu LOAD, Hive pārvieto datus uz tās noliktavas direktoriju. Pēc tam Hive izveido metadatu informāciju ārējai tabulai. Tagad, ja jūs izsniedzat komandu DROP ārējais galds , tiks dzēsta tikai metadatu informācija par ārējo tabulu. Tādēļ jūs joprojām varat atgūt šīs pašas ārējās tabulas datus no noliktavas direktorija, izmantojot HDFS komandas.

Starpsienas:

Komanda:

IZVEIDOT TABULU table_name (kolonna1 data_type, kolonna2 data_type) SADALĪTĀ (partition1 data_type, partition2 data_type & hellip.)

Hive sakārto tabulas nodalījumos, lai grupētu līdzīga veida datus kopā, pamatojoties uz kolonnu vai nodalījuma atslēgu. Katrai tabulai var būt viena vai vairākas nodalījuma atslēgas, lai identificētu konkrētu nodalījumu. Tas ļauj mums ātrāk iegūt vaicājumus par datu šķēlītēm.

Piezīme: Atcerieties, ka visizplatītākā kļūda, veidojot nodalījumus, ir esošas kolonnas nosaukuma norādīšana kā nodalījuma kolonna. To darot, jūs saņemsit kļūdu - “Kļūda semantiskajā analīzē: kolonna atkārtota sadalīšanas kolonnās”.

Ļaujiet mums saprast nodalījumu, ņemot piemēru, kur man ir tabula studentu_sīkāka informācija par dažu inženierzinātņu koledžas studentu informāciju, piemēram, studenta_ID, nosaukums, katedra, gads utt. pieder konkrētam departamentam, tiks glabāti kopā tieši tajā nodalījumā. Fiziski nodalījums nav nekas cits kā apakškatalogs tabulas direktorijā.

Pieņemsim, ka mūsu studentu detalizācijas tabulā ir dati par trim departamentiem - PMP, ECE un Civil. Tāpēc mums būs trīs nodalījumi katram departamentam, kā parādīts attēlā zemāk. Katram departamentam mums būs visi dati par šo nodaļu, kas dzīvo atsevišķā apakšdirektorijā zem Hive tabulas direktorija. Piemēram, visi studentu dati par PMP nodaļām tiks saglabāti lietotājā / stropā / noliktavā / studenta_detaļā / nod. = PMP. Tātad vaicājumiem par PMP studentiem būs jāizskata tikai dati, kas atrodas PMP nodalījumā. Tas padara sadalīšanu ļoti noderīgu, jo tas samazina vaicājuma latentumu, tikai skenējot būtisks sadalīti dati visas datu kopas vietā. Patiesībā reālās pasaules ieviešanā jums būs darīšana ar simtiem TB datu. Tātad, iedomājieties, kā skenēt šo milzīgo datu daudzumu kādam vaicājumam 95% jūsu skenētie dati neatbilst jūsu vaicājumam.

Es iesaku jums apskatīt emuāru vietnē Stropa komandas kur jūs atradīsit dažādus nodalījumu ieviešanas veidus ar piemēru.

Kausi:

Komandas:

CREATE TABLE table_name PARTITIONED BY (partition1 data_type, partition2 data_type, & hellip.) CLUSTERED BY (kolonnas_nosaukums1, kolonnas_nosaukums2,…) KĀRTOTS (kolonnas_nosaukums [ASC | DESC],…)] IN NUM_Buckets KAMPAS

Tagad jūs varat sadalīt katru nodalījumu vai nesadalīto tabulu segmentos, pamatojoties uz tabulas kolonnas jaucējfunkciju. Faktiski katra grupa ir tikai fails nodalījumu direktorijā vai tabulas direktorijā (nedalīta tabula). Tādēļ, ja esat izvēlējies sadalīt nodalījumus n segmentos, katrā no jūsu nodalījumu direktorijā būs n faili. Piemēram, jūs varat redzēt iepriekš redzamo attēlu, kur mēs esam sadalījuši katru nodalījumu 2 spaiņos. Tātad katram nodalījumam, teiksim, PMP, būs divi faili, kur katrs no tiem glabās PMP studenta datus.

Kā Strops sadala rindas spaiņos?

Hive nosaka rindas segmenta numuru, izmantojot formulu: hash_function (bucketing_column) modulo (kopu_kopu skaits) . Lūk, hash_function ir atkarīgs no kolonnas datu veida. Piemēram, ja tabulu grupējat, pamatojoties uz INT datu veida kolonnu, teiksim, user_id, hash_function būs - hash_function (lietotāja_ID ) = user_id veselā vērtība . Pieņemsim, ka esat izveidojis divus segmentus, tad strops katrā partīcijā noteiks rindas, kas iet uz 1. segmentu, aprēķinot: (user_id vērtība) modulo (2). Tāpēc šajā gadījumā rindas, kurās user_id beidzas ar pat veselu skaitli, atradīsies vienā un tajā pašā segmentā, kas atbilst katram nodalījumam. Hash_function citiem datu tipiem ir nedaudz sarežģīti aprēķināt, un faktiski virknei tas nav pat cilvēciski atpazīstams.

Piezīme: Ja izmantojat Apache Hive 0.x vai 1.x, pirms kopēšanas ir jāizdod komanda - Hive terminālā iestatiet hive.enforce.bucketing = true. Tas ļaus jums iegūt pareizo reduktora skaitu, vienlaikus lietojot kopu pēc klauzulas kolonnas grupēšanai. Ja neesat to izdarījis, varat atrast, ka tabulas direktorijā izveidoto failu skaits nav vienāds ar segmentu skaitu. Varat arī iestatīt reduktora skaitu, kas vienāds ar segmentu skaitu, izmantojot kopu mapred.reduce.task = num_bucket.

Kāpēc mums vajadzīgi kausi?

Ir divi galvenie iemesli, lai veiktu segmentu segmentēšanu:

  • TO kartes pusē pievienoties pieprasa, lai dati, kas pieder unikālai pievienošanās atslēgai, būtu tajā pašā nodalījumā. Bet kā ar tiem gadījumiem, kad jūsu nodalījuma atslēga atšķiras no pievienošanās? Tādēļ šajos gadījumos jūs varat veikt kartes sānu savienojumu, pievienojot tabulu, izmantojot pievienošanās taustiņu.
  • Grupēšana padara izlases procesu efektīvāku un līdz ar to ļauj mums samazināt vaicājuma laiku.

Es gribētu šeit pabeigt šo stropa mācību emuāru. Esmu diezgan pārliecināts, ka pēc šī stropa apmācības emuāra apmeklēšanas jūs būtu sapratuši Apache Hive vienkāršību. Kopš tā laika jūs, puiši, esat iemācījušies visus stropa pamatus, ir pēdējais laiks nedaudz apgūt pieredzi ar Apache Hive. Tātad, pārbaudiet nākamo emuāru šajā Hive Tutorial emuāru sērijā, kas ir par Hive instalēšanu, un sāciet strādāt pie Apache Hive.

Tagad, kad esat sapratis Apache Hive un tā funkcijas, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Big Data Hadoop sertifikācijas apmācības kurss palīdz izglītojamajiem kļūt par HDFS, dzijas, MapReduce, Pig, Hive, HBase, Oozie, Flume un Sqoop ekspertiem, izmantojot reāllaika lietošanas gadījumus mazumtirdzniecības, sociālo mediju, aviācijas, tūrisma, finanšu jomā.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.