Çfarë është Pranvera për Apache Hadoop?

Përmbledhje: pranverë is one of the widely used frameworks in enterprise applications development. pranverë ka komponentë të ndryshëm si Pranvera ORM, Spring JDBC etj për të mbështetur karakteristika të ndryshme. Spring për Apache Hadoop është korniza për të mbështetur ndërtimin e aplikimit me komponentët Hadoop si HDFS, MapReduce dhe Hive etj. pranverë ofron TV për të punuar me të gjitha këto komponente. Spring gjithashtu mbështet integrimin e Hadoop me projekte të tjera të ekosistemit Spring për zhvillimin e aplikimit të jetës reale. Në këtë artikull ne do të diskutojmë përdorimin e pranverë për kornizat Apache Hadoop.

Parathënie:
Apache Hadoop është një kornizë software burim të hapur, e cila është përdorur për të ruajtur dhe të procesit të të dhënave-grupe të vëllimit të madh. Pranvera është gjithashtu një kornizë me burim të hapur, e cila është përdorur gjerësisht në Java aplikacioneve / J2EE. injeksion varësia Pranvera e (E) ose përmbysja e kontrollit (IO) Mekanizmi është bërë një alternativë popullore për Fasule Enterprise Java (ose EJB) Model. Pranvera ka avantazhin e të qënit mjaft fleksibile që të lidhej lehtë me ndonjë kuadër tjetër të zhvillimit. Duke përdorur këtë avantazh të pranverës, ne mund të plug atë me Apache Hadoop për të na ndihmuar të merrni dobitë maksimale e secilit prej këtyre dy kornizave.

Si T'ia Fillohet:
Në këtë seksion ne do të flasim rreth asaj se si për të krijuar një punë Hadoop MapReduce përdorur Pranvera. Kjo përfshin hapat e mëposhtëm -

  • Step 1 - Merrni varësitë e kërkuara duke Maven - Siç e dimë Maven është shumë e varur në dosjen pom.xml, ne kemi bërë shënimet e mëposhtme në dosjen tonë pom.xml. Këto të hyra varësisë janë për thelbin Hadoop dhe kornizës Pranvera.

Listing1: entries mostër konfigurimit në dosjen pom.xml

[kod]

< !– Spring Data Apache Hadoop — >
< varësi >
< groupId > org.springframework.data </ groupId >
< artifactId > pranverë-data-Hadoop </ artifactId >
< version > 1.0.0.NJOFTIM </ version >
< /varësi >
< !– Apache Hadoop Core -- >
< varësi >
< groupId > org.apache.hadoop </ groupId >
< artifactId > Hadoop-core </ artifactId >
< version > 1.0.3 </version >
</varësi>

[/ kod]

  • Step 2 - Krijo komponentin Mapper - Siç e dimë një komponent mekanizmin është përdorur për të thyer problemin aktual në komponente më të vogla. Këto komponente më të vogla pastaj të bëhet më e lehtë për të zgjidhur. Ne mund të ketë komponent tonë përshtatur Mapper duke zgjeruar hartën Apache reduktuar klasë Mapper. Ne kemi nevojë për të shkelur metodën hartë të kësaj klase. Klasa mekanizmin pret katër parametrat e mëposhtëm -

për kontributin e: parametrat e mëposhtëm janë për çelës dhëna dhe vlera

  • PASTAJ - Ky parametër përshkruan llojin kryesor e cila është dhënë si një kontribut për përbërësin Mapper.
  • VALUEIN - Ky parametër përshkruan llojin e vlerës e cila është dhënë si një input për komponentin Mapper.

për prodhim: parametrat e mëposhtëm janë për çelës të prodhimit dhe vlerës së

  • KEYOUT - Ky parametër përshkruan llojin e jashtë vënë parametër kyç nga komponenti Mapper.
  • VALUEOUT - Ky parametër përshkruan llojin e vlerës së prodhimit nga komponenti Mapper.

Secila prej këtyre parametrave duhet të zbatojë shkruajtshme interface. Në shembullin e dhënë, ne kemi përdorur mekanizmin tonë për të lexuar përmbajtjen e një file të një linjë në një kohë dhe të përgatisë palë me vlerë kryesore e çdo linjë. Zbatimi ynë i metodës hartë kryen detyrat e mëposhtme: -

  • First, ndarë çdo linjë të vetme në fjalë
  • I dytë, iterate nëpër çdo fjalë të vetme dhe të marrë as të gjitha karakteret e Unicode që nuk janë as letra as karaktere.
  • I tretë, ndërtimin e një palë me vlerë të rëndësishme duke përdorur metodën e shkrimit e të Kontekst klasë e cila është në përputhje me të prodhimit pritet të vlerave kryesore palë.

Listing2: Mostra klasë përshtatur Mapper

[Code]

publik klasë MyWordMapper shtrihet Mapper<LongWritable, tekst, tekst, IntWritable> {
myword private Text = Teksti i ri();

@ Override
Harta mbrojtur pavlefshëm(LongWritable kryesore, vlera text, konteksti konteksti) hedh IOException, InterruptedException {
Linja String = value.toString();
StringTokenizer lineTokenz = StringTokenizer ri(line);
derisa (lineTokenz.hasMoreTokens()) {
String cleaned_data = removeNonLettersNonNumbers(lineTokenz.nextToken());
myword.set(cleaned_data);
context.write(myword, ri IntWritable(1));
}
}

/**
* Replace të gjitha karaktereve Unicode që nuk janë as numrat as letra me një varg të zbrazët.
* @param origjinale, Kjo është string origjinale
* @return një objekt string i cili përmban vetëm shkronja dhe numra
*/
removeNonLettersNonNumbers private String (string origjinale) {
kthehen original.replaceAll(“[^ \ P{L}\\p{N}]”, “”);
}
}

[/Code]

Step 3 - të krijuar reducer Komponenti - A reducer është një komponent i cili fshin vlerat padëshiruar ndërmjetme dhe përcjell vetëm ato çifte kryesore me vlerë të cilat janë të rëndësishme. Për të kanë reducer tonë përshtatur, klasa jonë duhet të zgjasë reducer klasë dhe mbi ngasin reduktuar metodë. Klasa reducer pret katër parametrat e mëposhtme.

për kontributin e: parametrat e mëposhtëm janë për çelës dhëna dhe vlera

  • PASTAJ - Ky parametër përshkruan llojin kryesor e cila është dhënë si një kontribut për përbërësin Mapper.
  • VALUEIN - Ky parametër përshkruan llojin e vlerës e cila është dhënë si një input për komponentin Mapper.

për prodhim: parametrat e mëposhtëm janë për çelës të prodhimit dhe vlerës së

  • KEYOUT - Ky parametër përshkruan llojin e jashtë vënë parametër kyç nga komponenti Mapper
  • VALUEOUT - Ky parametër përshkruan llojin e vlerës së prodhimit nga komponenti Mapper.

Duke zbatuar ne duhet të sigurohemi se tipi i dhe parametrat e 'keyin' 'keyout' janë të njëjta. Gjithashtu 'valuein' dhe parametrat valueout 'duhet të jetë e të njëjtit lloj. Zbatimi ynë i metodës reduktuar kryen hapat e mëposhtme: -

  • First, kontrolloni se çelësi input përmban fjalën e dëshiruar.
  • I dytë, nëse hap më lart është e vërtetë, të marrë numrin e dukurive të fjalës.
  • I tretë, të ndërtuar një të ri palë me vlerë kryesore duke thirrur metodën shkruani e klasës reducer.

Listing3: Mostra klasë përshtatur Reducer

[Code]

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

publik klasë MyWordReducer shtrihet Reducer<tekst, IntWritable, tekst, IntWritable> {
mbrojtur statike String MY_TARGET_TEXT final = “Hadoop”;

@ Override
void mbrojtur reduktuar(Tekst keyTxt, Iterable<IntWritable> vlerat, konteksti konteksti) hedh IOException, InterruptedException {
nëse (containsTargetWord(keyTxt)) {
int wCount = 0;
për (vlera IntWritable: vlerat) {
wCount = value.get();
}
context.write(key, ri IntWritable(wCount));
}
}
containsTargetWord private boolean(Tekst keyTxt) {
kthehen keyTxt.toString().është e barabartë me(MY_TARGET_TEXT);
}
}

[/Code]

  • Step 4 - Krijo kontekstin e aplikimit - Hapi tjetër është për të krijuar kontekstin e aplikimit duke përdorur XML. Ne mund të konfiguroni kontekstin e aplikimit të kërkesës sonë duke përdorur hapat e mëposhtëm -
    • Krijo një pronat skedar që përmban vlerën e pronave të konfigurimit. Një mostër pronat e aplikimit skedës është treguar më poshtë -

[Code]
fs.default.name = hdfs://localhost:9000
mapred.job.tracker = localhost:9001
input.path = / path / të / input / file /
output.path = / path / të / output / fotografi
[/Code]

  • Konfiguro një mbajtës vend të pronës e cila është përdorur për të shkoj të marr vlerat e pronave të konfigurimit nga dosja pronat e krijuar. Kjo mund të bëhet duke shtuar në vijim e aplikimit dosjen tonë konteksti XML -

[Code]
<kontekst:Vendndodhja e pronës-placeholder =”classpath:application.properties” />

[/Code]

  • Konfiguro Apache Hadoop dhe punën e saj - Ne mund të konfiguroni sistemin e file parazgjedhur dhe tracker e tij të punës duke shtuar në vijim në tonë dosje kontekstin e aplikimit

[Code]

<hdp:konfiguracion>
fs.default.name = ${fs.default.name}
mapred.job.tracker = ${mapred.job.tracker}
</hdp:konfiguracion>

[/Code]

Ne duhet të shtoni në vijim e aplikimit konteksti XML skedar tonë për të përcaktuar tracker punës -

[Code]
<hdp:Puna id =”wordCountJobId”
input-rruga =”${input.path}”
output-rruga =”${output.path}”
jar-nga-class =”net.qs.spring.data.apachehadoop.Main”
mekanizmin =”net.qs.spring.data.apachehadoop.MyWordMapper”
reducer =”net.qs.spring.data.apachehadoop.MyWordReducer”/>

[/Code]

  • Konfiguro kontrabandist të punës e cila shkon punë e krijuar Hadoop. Kontrabandist Job mund të konfigurohet duke shtuar në vijim e aplikimit dosjen tonë context XML

[Code]
<hdp:punë-runner id =”wordCountJobRunner” punë-ref =”wordCountJobId” drejtuar-at-fillimin =”i vërtetë”/>
[/Code]

  • Step 5 – Loading kontekstin e aplikimit në fillimin - Ne tani mund të ekzekutojë detyrën e krijuar Hadoop nga ngarkimit kontekstin e aplikimit, kur aplikimi fillon. Ne mund ta bëjmë këtë duke krijuar shembull i objektit ClasspathXmlApplicationContext i cili pranon emrin e aplikimit kontekst dosjen tonë si parametër të dhëna për konstruktor. Kjo mund të bëhet si në -

Listing4: Mostra paraqitje ngarkimin e kontekstit të aplikimit

[Code]
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

publik klasë Main {
publike statike kryesore void(Varg[] arguments) {
ApplicationContext CTX = ClassPathXmlApplicationContext ri(“applicationContext.xml”);
}
}

[/Code]

  • Step 6 - Run punë MapReduce - Ne mund të fillojmë harta jonë zvogëlojë punën duke përdorur këto hapa -
  • Ngarko një skedar hyrës në HDFS - Ne mund ta bëjmë këtë duke ekzekutuar komandën e mëposhtme në komandën e shpejtë -

[Code]

Hadoop DSHP -Vendos shembull.txt /input/sample.txt

[/Code]

Në vijim është një file input mostër e cila është përdorur në këtë shembull. Çelësi objektivi Fjala "Hadoop ' është theksuar në GREEN. Fjala 'Hadoop ' ekziston 4 herë në mostër.

Input

të dhëna

Image1: fotografi mostër input

  • Kontrolloni nëse skeda është ngarkuar me sukses duke xhiruar komandën e mëposhtme. Ajo do të tregojë file input.

[kod]

DSHP Hadoop -LS / input

[/kod]

  • Run punë MapReduce. Kjo mund të bëhet duke e metodën kryesore të dosjes tonë java nga IDE. Nëse të gjitha hapat punojnë ashtu siç pritet, atëherë në vijim do të jetë prodhimi.

prodhim: Hadoop 4
Summary: Le të përfundojmë atë që kemi diskutuar deri tani në pikat e mëposhtme –

  • të dy pranverë dhe Hadoop janë kornizat dobishme nga komuniteti burim të hapur.
  • Duke i kombinuar këto ne mund të merrni në dobi të të dy kornizave.
  • Duke krijuar një hartë të reduktuar punën duke përdorur pranverë është një proces gjashtë hap siç shpjegohet më sipër.
Tagged në: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share