Zer da Apache Hadoop Spring?

Orokorra: Spring Asko erabiltzen den enpresa aplikazioen garapena esparru bat da,en. Spring Spring ORM bezalako osagai desberdinak ditu, Spring JDBC etab ezaugarri ezberdinak onartzen. Apache Hadoop Spring esparruan Hadoop HDFS bezalako osagaiekin aplikazioak eraikitzeko onartzen da, MapReduce eta Hive etc. Spring APIak da osagai horiek guztiak batera lan eskaintzen. Spring halaber Hadoop integrazioa bizitza errealean aplikazioak garatzeko Spring ekosistema beste proiektuekin onartzen. Artikulu honetan erabilera buruz hitz egingo dugu Spring Apache Hadoop esparruak for.

Sarrera:
Apache Hadoop iturburu irekiko software-esparru bat da, bertan gordetzeko eta prozesua bolumen handiago datu-multzo erabiltzen da. Spring da, halaber, kode irekiko marko bat, oso zabalduta dago, Java / J2ee aplikazioak erabili. Udaberri en mendekotasun injekzio (DE) edo kontrol inbertsioa (IO) mekanismo Enterprise Java Beans alternatiba ezaguna bihurtu da (edo EJB) eredua. Spring nahikoa malgua izatearen abantaila du, beste edozein garapen-esparru batera erraz entxufatuta egon. Udaberrian abantaila hau erabiliz, entxufatu ahal izango dugu Apache Hadoop batera gehienez bi esparru horiek bakoitzaren prestazioa lortzeko gurekin laguntzeko.

Hasten:
Atal honetan Hadoop MapReduce Enplegu bat Spring erabiliz nola sortu buruz hitz egin dugu. Hau dakar ondoko urratsak -

  • Step 1 - Lortu behar diren mendekotasunen Maven erabiliz - Dakigunez maven oso pom.xml fitxategia menpe, honako sarrerak egin dugu gure pom.xml fitxategia ere. mendekotasun Sarrera horiek Hadoop core eta Spring esparru dira.

Listing1: Sample konfigurazio sarrerak pom.xml fitxategia ere

[kodea]

< !– Spring Data Apache Hadoop — >
< mendekotasun >
< groupid > org.springframework.data </ groupid >
< artifactId > udaberri-data-hadoop </ artifactId >
< version > 1.0.0.RELEASE </ version >
< /mendekotasun >
< !– Apache Hadoop Core -- >
< mendekotasun >
< groupid > org.apache.hadoop </ groupid >
< artifactId > hadoop-core </ artifactId >
< version > 1.0.3 </version >
</mendekotasun>

[/ kodea]

  • Step 2 - Sortu mapatzailea osagaia - Dakigunez mapatzailea osagai bat benetako arazoa hausteko osagai txikiagoetan banatzen erabiltzen da. osagai hauek txikiak gero bihurtu errazago konpontzeko. Gure pertsonalizatuak mapatzailea osagaia izan dezakegu zabalduz Apache mapa murrizteko Mapper class arabera. mapa klase honen metodoa jaramonik egin behar dugu. mapatzailea class espero du hurrengo lau parametroak -

sarrera for: Jarraitzen parametroak sarrera gakoa eta balio dira

  • GERO - Parametro honek hau da, sarrera gisa emandako mapatzailea osagaia gako mota deskribatzen.
  • VALUEIN - Parametro honek zein da mapatzailea osagai sarrera bezala emandako balioa mota azaltzen.

irteera for: Jarraitzen parametro irteera gakoa eta balio dira

  • KEYOUT - Parametro hau jarri gako parametroa mapatzailea osagai batetik kanpo mota azaltzen.
  • VALUEOUT - Parametro honek irteera balioa mota azaltzen mapatzailea osagai batetik.

Parametro horietako bakoitzak aplikatu behar idazgarria interface. Emandako adibidean, erabili dugu gure mapatzailea fitxategi bat lerro edukiak irakurtzeko denbora batean eta prestatzeko gako-balio lerro bakoitzean bikote. Gure mapa metodoa ezartzeko zeregin hauek burutzen -

  • First, zatitu lerro bakar bakoitza hitzak sartu
  • Second, hitz bakoitzak bakarrean bidez batetik bestera joateko eta atera ez du Unicode ez diren letrak ezta karaktere karaktere guztiak.
  • Hirugarren, gako-balio bikote bat eraikitzeko idazteko metodoa erabiliz Testuingurua Klase hau da, espero irteera gako-balio bikote bateragarria.

Listing2: Sample pertsonalizatu Mapper class

[Code]

Klase publiko MyWordMapper hedatzen Mapper<LongWritable, Testua, Testua, IntWritable> {
Idatzi pribatua myword = Testu berria();

@ Override
babestuta void mapa(LongWritable gakoa, Idatzi balio, testuingurua testuinguru) botatzen IOException, InterruptedException {
String Line = value.toString();
StringTokenizer lineTokenz = new StringTokenizer(line);
berriz (lineTokenz.hasMoreTokens()) {
String cleaned_data = removeNonLettersNonNumbers(lineTokenz.nextToken());
myword.set(cleaned_data);
context.write(myword, berria IntWritable(1));
}
}

/**
* Ordeztu direla ez zenbakiak ezta letrak kate huts bat Unicode karaktere guztiak.
* @param jatorrizko, jatorrizko katea da
* @return kate objektu batek letrak eta zenbakiak bakarrik ditu
*/
String pribatua removeNonLettersNonNumbers (String jatorrizko) {
itzuli original.replaceAll(“[^ P{L}\\p{N}]”, “”);
}
}

[/Code]

Step 3 - Sortu gutxitzeko Osagai - gutxitzeko A osagairik, nahigabeko tarteko balioak eta aurreraka soilik gako bikote zein dira garrantzitsuak ezabatzen ditu da. Gure pertsonalizatu murriztailea izan behar du, Gure klasean zabaldu behar gutxitzeko Klase eta gorako martxa murrizteko metodo. gutxitzeko class ondoko lau parametro espero du.

sarrera for: Jarraitzen parametroak sarrera gakoa eta balio dira

  • GERO - Parametro honek hau da, sarrera gisa emandako mapatzailea osagaia gako mota deskribatzen.
  • VALUEIN - Parametro honek zein da mapatzailea osagai sarrera bezala emandako balioa mota azaltzen.

irteera for: Jarraitzen parametro irteera gakoa eta balio dira

  • KEYOUT - Parametro hau jarri gako parametroa mapatzailea osagai batetik kanpo mota azaltzen
  • VALUEOUT - Parametro honek irteera balioa mota azaltzen mapatzailea osagai batetik.

Bitartean gauzatzeko ziurtatu du 'keyin' eta 'keyout' parametroak datatype hori bera dira behar dugu. Era berean, 'valuein' eta valueout 'parametro mota berekoak izan behar. Gure murrizteko metodoa ezartzeko burutzen urrats hauek -

  • First, egiaztatu sarrera gakoa nahi den hitza dauka.
  • Second, Aurreko urratsa egia bada, hitzaren agerpen kopurua lortu.
  • Hirugarren, eraikitzeko gako-balio bikote bat idaztea gutxitzeko klasearen metodo deituz.

Listing3: Sample pertsonalizatu gutxitzeko class

[Code]

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

Klase publiko MyWordReducer hedatzen gutxitzeko<Testua, IntWritable, Testua, IntWritable> {
babestuta static final String MY_TARGET_TEXT = “Hadoop”;

@ Override
babestuta hutsunea murrizteko(Idatzi keyTxt, Iterable<IntWritable> balioak, testuingurua testuinguru) botatzen IOException, InterruptedException {
bada (containsTargetWord(keyTxt)) {
int wCount = 0;
for (IntWritable balio: balioak) {
wCount = value.get();
}
context.write(key, berria IntWritable(wCount));
}
}
boolean containsTargetWord pribatua(Idatzi keyTxt) {
itzuli keyTxt.toString().berdinen(MY_TARGET_TEXT);
}
}

[/Code]

  • Step 4 - Sortu aplikazioaren testuinguruan - Hurrengo urratsa da aplikazioaren testuinguruan XML erabiliz. Aplikazio gure aplikazioaren ondorengo pausoak jarraituz testuinguruan konfiguratu ahal izango dugu -
    • Sortu propietate fitxategi bat konfigurazio higiezinen balioa dauka. aplikazio baten adibidea propietate fitxategia honetan erakusteko -

[Code]
fs.default.name = HDFS://localhost:9000
mapred.job.tracker = localhost:9001
input.path = / bidea / / input / fitxategia /
output.path = / bidea / / irteera / fitxategia
[/Code]

  • Konfiguratu jabetza leku titularrak zein konfigurazio propietate balioak eskuratu sortu propietate fitxategia erabiltzen da. Hau izango da honako hau gehituz gure aplikazioaren testuinguruan XML fitxategia ere egin daiteke -

[Code]
<testuinguru:Jabetza-placeholder kokapena =”classpath:application.properties” />

[/Code]

  • Konfiguratu Apache Hadoop eta bere lan - fitxategi-sistema lehenetsia eta bere lana tracker konfiguratu ahal izango dugu honako hau gehituz gure aplikazioaren testuinguruan fitxategia ere

[Code]

<HDP:konfigurazio>
fs.default.name = ${fs.default.name}
mapred.job.tracker = ${mapred.job.tracker}
</HDP:konfigurazio>

[/Code]

honako hau gehitu behar dugu gure aplikazioaren testuinguruan XML fitxategia lana tracker definitzeko in -

[Code]
<HDP:lan id =”wordCountJobId”
sarrera-path =”${input.path}”
irteera-path =”${output.path}”
jar-by-class =”net.qs.spring.data.apachehadoop.Main”
mapatzailea =”net.qs.spring.data.apachehadoop.MyWordMapper”
gutxitzeko =”net.qs.spring.data.apachehadoop.MyWordReducer”/>

[/Code]

  • Konfiguratu lana korrikalari horrek sortu hadoop lana exekutatzen. Enplegu korrikalari Ondorengo gehituz gure aplikazioaren testuinguruan XML fitxategia ere konfigura daiteke

[Code]
<HDP:lan-korrikalari id =”wordCountJobRunner” lan-ref =”wordCountJobId” run-at startup =”Egia”/>
[/Code]

  • Step 5 – Aplikazio testuinguruan kargatzen abiatzerakoan - orain instalatu ahal dugu sortu Hadoop Lan eskaera testuinguruan kargatuz aplikazioa abiaraztean. Hau egin ahal izango dugu ClasspathXmlApplicationContext objektuaren instantzia horrek gure aplikazioaren testuinguruan fitxategia sarrera parametro gisa izenean onartzen eraikitzaile sortuz. Hau pean gisa egin daiteke -

Listing4: Sample erakustea aplikazioaren testuinguruan kargatzea

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

Klase publiko nagusia {
public static void main(Katea[] arguments) {
ApplicationContext CTX = ClassPathXmlApplicationContext berria(“applicationContext.xml”);
}
}

[/Code]

  • Step 6 - Run Mapreduce lana - Gure mapa murrizteko lana urrats hauek erabiltzen hasi gara -
  • Igo sarrera agiri bat HDFS sartu - Hau egin ahal izango dugu komando gonbita honako komandoa exekutatuz -

[Code]

hadoop dfs -put sample.txt /input/sample.txt

[/Code]

Jarraitzen lagin sarrerako fitxategia izan den adibide hau erabiltzen da. The helburu gako-hitza 'Hadoop ' dago nabarmenduta GREEN. Hitza 'Hadoop ' existitzen 4 laginean aldiz.

Input

Sarrerako

Irudi1: Sample sarrerako fitxategia

  • Begiratu fitxategia kargatu bada arrakastaz honako komandoa exekutatuz. sarrerako fitxategia agertuko da.

[kodea]

hadoop dfs -LS / input

[/kodea]

  • Run Mapreduce lana. Hau izango da gure java fitxategia metodo nagusiak exekutatzean IDE bertatik egin daiteke. urrats guztiak lan bada, espero bezala, ondoren, honako irteera izango da.

Output: Hadoop 4
Summary: Demagun orain arte aztertu dugun honako balas ondorioztatu dugu –

  • Biek Spring eta Hadoop dira kode irekiko komunitatearen batetik esparruak erabilgarria.
  • horiek konbinatuz By bai esparru onura lor dezakegu.
  • Sortzea mapa bat murrizteko lana udaberrian erabiliz sei urrats prozesua da lehen azaldu bezala.
Tagged on: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share