Full text
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
GRADO EN INGENIERÍA INFORMÁTICA
Mención en Sis emas de In o mación
PARALELIZACIÓN DE ALGORITMOS DE MINERÍA DE
TEXTOS CON HADOOP
PARALLELIZATION OF TEXT MINING ALGORITHMS
USING HADOOP
Realizado po
Elena Ca asco Ba ios
Tu o izado po
Ismael Na as Delgado
Co- u o izado po
José F ancisco Aldana Mon es
Depa amen o
Lenguajes y Ciencias de la Compu ación
UNIVERSIDAD DE MÁLAGA
MÁLAGA, Oc ub e de 2014
Fecha de ensa:
El Sec e a io del T ibunal
Resumen: Es e T abajo Fin de G ado (TFG) iene como obje i os
pa aleliza algo i mos de mine ía de ex os pa a pode pe mi i su ejecución con
una g an can idad de ex os en el meno iempo posible y con usua ios
concu en es, y la c eación de un modelo de da os RDF con las ano aciones
gene adas po el algo i mo en los documen os. La pa alelización se ha ealizado
siguiendo la iloso ía MapReduce. En la ase del mappe se ealiza la ejecución
del algo i mo de mine ía de ex os sob e el ex o de en ada y se gene a el
modelo RDF asociado a ese ex o. La ase del educe se enca ga de uni odos
los modelos RDF que hagan e e encia a ex os de un documen o en un único
modelo global. El esul ado de la ejecución de es e p og ama son pa es <nomb e
del documen o, modelo RDF>. Pa a cumpli con el segundo obje i o se ha
desa ollado o a aplicación que une odos los modelos gene ados po el
p og ama an e io en un solo modelo. El desa ollo del sis ema se ha ealizado
usando Ja a SE y las ecnologías Apache Hadoop, Ga e y Apache Jena. En es e
abajo se expond án un sis ema capaz de pa aleliza algo i mos de mine ía de
ex os desa ollados en GATE y c ea el modelo RDF co espondien e a las
ano aciones gene adas a pa i de los ex os, las conclusiones alcanzadas a aíz
de es e abajo y algunas p opues as de abajos u u os.
Palab as cla es: Pa alelización, Algo i mo de mine ía de ex os,
MapReduce, Algo i mo de econocimien o de nomb es de en idades, modelo
RDF
Abs ac : This Deg ee Thesis (TFG) aims o pa alleliza ion algo i hms
o ex mining in o de o allow hem o un wi h a lo o ex s as quickly as
possible and wi h concu en use s, and he c ea ion o a RDF da a model
wi h he anno a ions gene a ed by he algo i hms in he documen s. The
pa alleliza ion has been made ollowing he ilosophy o he MapReduce. In
he phase o he mappe , he ex mining algo i hm is un on he inpu ex and
he RDF model associa ed a his ex is gene a ed. The phase o he educe
aims o pu oge he all he RDF models ha e e o a documen in a single
global model. Once un his p og am, pai s a e ob ained: <documen name,
model RDF>. To achie e he second objec i e, ano he applica ion, ha
uni es all models gene a ed by he abo e p og am in a single model, has
been de eloped. The de elopmen o he sys em has been done using Ja a
SE and Apache Hadoop, Ga e and Apache Jena echnologies. In his wo k
will be exposed a sys em able o pa allelize ex mining algo i hms de eloped
in Ga e and c ea e he RDF model co esponding o he gene a ed
anno a ions om ex s, he conclusions eached as a esul o his wo k and
some p oposals o u u e wo k.
Keywo ds: Pa alleliza ion, Tex mining algo i hm, MapReduce, Named-
en i y ecogni ion algo i hm, RDF model
Índice
1. In oducción ........................................................................................................... 1
1.1 Mo i ación y obje i os ....................................................................................... 2
1.2 Me odología ...................................................................................................... 4
1.3 Es uc u a de la memo ia .................................................................................. 5
2. Es ado del A e ....................................................................................................... 7
2.1 Mine ía de ex os............................................................................................... 7
2.2 P ocesamien o del Lenguaje Na u al y NER ................................................... 10
2.3 Big Da a y Pa alelización de algo i mos .......................................................... 13
2.4 Cloud Compu ing ............................................................................................ 19
2.5 RDF y Web Semán ica .................................................................................... 20
3. Tecnologías y he amien as u ilizadas ............................................................... 23
4. Desa ollo ............................................................................................................. 25
4.1 Elección y con igu ación de la a qui ec u a del sis ema................................... 25
4.2 Análisis, diseño y cons ucción del sis ema ..................................................... 29
i. Aspec os básicos ............................................................................................ 29
ii. Inc emen os y e apas de la ase ...................................................................... 30
iii. Implemen ación y uncionamien o del sis ema ................................................ 32
4.3 P uebas del sis ema y análisis de los esul ados............................................. 51
i. P uebas del sis ema ........................................................................................ 51
ii. Análisis de los esul ados ................................................................................ 52
4.4 Conside aciones ............................................................................................. 55
5. Conclusiones y abajos u u os ......................................................................... 57
5.1 Conclusiones .................................................................................................. 57
5.2 T abajos u u os .............................................................................................. 58
6. Bibliog a ía ........................................................................................................... 61
7. Anexos Técnicos .................................................................................................. 65
7.1 Manual de usua io ........................................................................................... 65
7.2 Resul ados del sis ema usando ANNIE ........................................................... 66
7.3 Fiche os u ilizados pa a el análisis .................................................................. 67
1
1. In oducción
Es e T abajo Fin de G ado pe enece a la línea Ges ión y Análisis de
Da os. En dicha línea se busca, po un lado, la c eación de aplicaciones
capaces de ges iona y analiza da os, y po o o lado, el desa ollo de
p og amas que si an pa a pode usa las an e io es aplicaciones con un g an
olumen de da os, con i iéndose así en écnicas de Big Da a.
El TFG p esen ado a con inuación se engloba ía en la segunda pa e, ya
que su inalidad es pa aleliza algo i mos de mine ía de ex os pa a pe mi i su
ejecución con una g an can idad de ex os en el meno iempo posible y con
usua ios concu en es. Dichos algo i mos han sido desa ollados po el
p oyec o de in es igación que es á asociado a la línea gene al, Bioledge (BIO
knowLEDGe Ex ac o and Modelle o P o ein P oduc ion) [1], po lo que el
ámbi o de es e T abajo es, en esencia, biológico, pe o la implemen ación del
algo i mo de pa alelización pe mi e que pueda se u ilizado po o os algo i mos
de mine ía de ex os de cualquie ámbi o que es én desa ollados bajo una
a qui ec u a de e minada. La pa alelización consis e en una se ie de ases, que
se mues an en el diag ama de bloques ep esen ado en la Figu a 1, en la que
se simula una ejecución álida del p og ama.
P ime o se dis ibuye el abajo a ealiza en las máquinas (nodos)
seleccionadas siguiendo el c i e io de la localización de los documen os a
p ocesa y se dis ibuye los documen os en dichas máquinas. A con inuación,
cada documen o (inpu ) se ocea en a ios eco ds, es deci , agmen os del
documen o ( ase spli ing). T as ello, en la ase mapping se ejecu a el algo i mo
de mine ía de ex os a cada eco d, y se gene a un modelo RDF a pa i de las
ano aciones gene adas po dicho algo i mo. Esas ano aciones almacenan
in o mación en el p opio documen o de la palab a encon ada y la en idad a la
que se e ie e, en e o as. Luego se eúnen las que engan la misma cla e (en
es e caso el nomb e del documen o) de cada ejecución (shu ling) y en la ase
del educing se unen odos los modelos de un documen o conc e o.
2
El esul ado inal de la pa alelización son pa es <documen o, modelo>.
Po ello se ha desa ollado un p og ama pa a uni odos esos modelos en un
único modelo gene al que los cen alice, sin pe de in o mación.
La ecnología u ilizada pa a la p og amación de la aplicación es Ja a
S anda d, siguiendo el modelo MapReduce. Pa a lo cual, se ha hecho uso del
amewo k Hadoop pa a ealiza la pa alelización. Además de es as
ecnologías, ambién se han usado las lib e ías de GATE, ya que los algo i mos
de mine ía de ex os han sido desa ollados bajo es a a qui ec u a, y Apache
Jena pa a gene a los modelos RDF de las ano aciones gene adas po dichos
algo i mos.
En el diseño de la aplicación se ha u ilizado la me odología UML. La
p og amación se ha desa ollado a a és del IDE Eclipse Juno y la ins alación
de Hadoop se ha ealizado en máquinas con SO Linux Red Ha .
1.1 Mo i ación y obje i os
El obje i o de es e T abajo Fin de G ado es pa aleliza algo i mos de
mine ía de ex os. Como e emos en el capí ulo 2, la mine ía de ex os es á
adqui iendo cada ez más impo ancia pa a las emp esas al pe mi i la
ex acción y el análisis de la in o mación con enida de o ma implíci a en
g andes olúmenes de ex os a a és del econocimien o de nomb es de
en idades (NER), como pueden se la ma ca de un coche o el nomb e de una
célula. Es o ha supues o una g an en aja, en e o os, en el ámbi o cien í ico,
en el que se gene an una g an can idad de a ículos al año, lo cual p o oca que
sea p ác icamen e imposible que de o ma manual se pueda ex ae la
in o mación de odos ellos. El p oblema de es os algo i mos es que son
demasiado len os, especialmen e si ienen que p ocesa de mane a secuencial
miles de documen os, como en el caso de los a ículos cien í icos. Po ello, a
pa i de es e incon enien e su ge el p esen e TFG, en el que se da la
posibilidad de pa aleliza la ejecución de algo i mos de ipo NER de o ma
e icien e.
3
A í ulo pe sonal, es e T abajo ha se ido pa a el conocimien o y
ap endizaje de la mine ía de ex os y sus ases, así como los algo i mos NER y,
mayo men e, la pa alelización de algo i mos, además de las ecnologías que se
u ilizan ac ualmen e en dichos ámbi os. Aspec os que apenas se mencionan en
el G ado pe o que, g acias al TFG, han podido se aba cados.
Con espec o a los obje i os, el obje i o gene al de es e T abajo Fin de
G ado es a a la pa alelización de algo i mos de mine ía de ex os que se
desa ollen sob e la pla a o ma GATE, usando pa a ello la me odología de
p og amación MapReduce de Hadoop.
Conc e ando, los obje i os p incipales son pe mi i el uso de dichos
algo i mos en en o nos con a ios usua ios concu en es y mejo a el
endimien o, especialmen e en lo que a iempo o al de cómpu o se e ie e, de
los algo i mos de mine ía de ex os al pa aleliza los. Las ano aciones
gene adas po dichos algo i mos se almacena án en un modelo de da os ipo
RDF pa a que, combinándolas con o as ecnologías en o os posibles TFG,
sean usados pa a cie as aplicaciones en la Web semán ica.
Todos es os obje i os se subdi iden en los siguien es:
C eación de un p og ama MapReduce que dis ibuya y ejecu e los
algo i mos en a ios nodos.
C eación de modelos RDF con las ano aciones gene adas po las
aplicaciones de mine ía de ex os du an e el p oceso MapReduce, y su
pos e io unión en un modelo inal pa a globaliza lo.
Análisis y compa ación del iempo o al de p ocesamien o de los
algo i mos de mine ía de ex os al ejecu a los con y sin pa alelización.
Análisis de la pé dida de in o mación debido a que, en eo ía, al ocea
los documen os de en ada se pie de el con ex o.
4
1.2 Me odología
La me odología usada pa a el desa ollo de la aplicación ha sido, en
esencia, el modelo I e a i o e Inc emen al [2]. Las ases gene ales del
desa ollo ue on las siguien es:
1. Es udio y con igu ación de la a qui ec u a del sis ema.
2. Análisis de los equisi os, diseño e implemen ación de la aplicación.
3. P uebas de sis emas y análisis de los esul ados.
En la p ime a ase se ha ealizado el es udio del es ado del a e, las
di e en es ecnologías u ilizadas, los algo i mos a pa aleliza , y la ins alación y
con igu ación de la a qui ec u a del sis ema. En la segunda ase u o luga las
e apas de análisis de los equisi os, diseño e implemen ación del algo i mo pa a
la pa alelización y el de la unión de odos los modelos gene ados po el
p og ama an e io . La úl ima ase se co esponde con la ealización de las
p uebas necesa ias al sis ema pa a es ea lo y e i ica su co ec o
uncionamien o, jun o con el análisis de los esul ados ob enidos, que ue on
mencionados en el apa ado 1.1.
Pa a la segunda ase se ealiza on una se ie de inc emen os, que se
di idían en es e apas. Es as e apas se explican a con inuación:
Es udio y análisis de los equisi os de dicho inc emen o: Se de inían los
equisi os que se iban a implemen a en el inc emen o en cues ión, lo
que eque ía que se hicie a un pequeño es udio del es ado del a e en el
que es aba englobado.
Diseño e implemen ación de los equisi os: Se diseñaban y cons uían
los códigos necesa ios pa a el desa ollo de los equisi os escogidos.
P uebas e in eg ación con el es o del sis ema: P ime o se ealizaban
p uebas uni a ias al código implemen ado. Una ez pasadas de mane a
sa is ac o ia se in eg aba con el es o del sis ema desa ollado y se
ealizaban nue as p uebas pa a comp oba el co ec o uncionamien o al
es a in eg ado.
11
1. Análisis mo ológico: El análisis de las palab as pa a ex ae aíces,
unidades léxicas compues as, en e o os.
2. Análisis sin ác ico: El análisis de la es uc u a sin ác ica de la ase
usando la g amá ica de la lengua.
3. Análisis semán ico: Ob ención del signi icado de la ase y esolución de
ambigüedades.
4. Análisis p agmá ico: El análisis del signi icado de las palab as según el
con ex o.
5. Plani icación de la ase: Se plani ica la es uc u a de la ase pa a
exp esa el signi icado adecuado.
6. Gene ación de la ase: La c eación de la ase según la es uc u a que
se ha especi icado en la ase an e io .
Es as ases se pueden descompone has a engloba ases de un ex o.
Uno de los obje i os del p ocesamien o del lenguaje na u al es el
p ocesamien o de ex o y en él se usa una de las écnicas de la mine ía de
ex os, el econocimien o de nomb es de en idades.
El econocimien o de nomb es de en idades (NER) es especialmen e ú il
pa a p ocesa ex os, ya que su obje i o p incipal es clasi ica nomb es en unas
ca ego ías que se hayan de inido an es, como nomb es de pe sonas,
o ganizaciones, localizaciones, can idades, o ma os de iempo, en e o os.
Los algo i mos de mine ía de ex os, y en conc e o los de ipo NER,
uncionan de la siguien e mane a: p ime o di iden el ex o en pá a os y
sen encias (y las ano an como al), luego di iden cada o ación en okens. Una
ez se han gene ado los okens, se e ique a cada uno o un conjun o de ellos
bajo la ca ego ía que co esponda.
Po ejemplo, suponiendo que se iene la ca ego ía “F ui ” con odas las
u as especi icadas en ella y la ase “I ea an apple”, el algo i mo gene a ía
una ano ación como la siguien e:
I ea an [anno a ion: F ui ]apple[/anno a ion]
12
El algo i mo comp oba ía si algún elemen o de las ca ego ías
p ede inidas se encuen a en la ase, y, en el caso de que sea así, la e ique a
con la ca ego ía co espondien e.
Como emos, el uncionamien o de los algo i mos de ipo NER es
bas an e ácil de comp ende , al igual que el p oblema que deben a on a .
Siguiendo con el ejemplo, en el caso en el que exis ie a la ca ego ía
“O ganiza ion” jun o a la an e io , ¿cómo sabe el algo i mo a qué ca ego ía
pe enece? Pa a soluciona lo hay muchas ap oximaciones. Los algo i mos más
sencillos e ique an el nomb e con la p ime a ca ego ía en la que se puedan
encuad a . Los más so is icados hacen uso de modelos p obabilís icos o de la
IA pa a soluciona la desambiguación del signi icado de las palab as [12]. Pa a
no en a en muchos de alles, se menciona á que se usan un conjun o de da os
pa a alimen a esos modelos y, en el caso de que se enga en cuen a el
con ex o de la ase o del ex o, se incluyen ambién las elaciones en e cie as
palab as. De es e modo, se ponde an los posibles signi icados que iene la
palab a en cues ión y se ca ego iza según los esul ados.
En el ejemplo an e io , si enemos un modelo en el que se elacione
e bos con las palab as podemos deduci que “apple” se e ie e a una comida,
ya que el e bo “ea ” no se u iliza cuando se habla de emp esas. Po an o, la
ca ego ía “F ui ” end á más ponde ación que la ca ego ía “O ganiza ion”, ya
que las u as se pueden come . Así pues, la palab a “apple” se ano a ía con
dicha ca ego ía. Se pod ía llega a la misma conclusión si u iésemos co pus
de g an amaño con el mismo o pa ecido con ex o, lo que ha ía que la
ca ego ía “F ui ” u ie a de base una ponde ación supe io .
Los algo i mos NER es án p oli e ando en ámbi os elacionados con la
in es igación, especialmen e en sec o es biomédicos. Es e in e és iene su
undamen o en la g an can idad de ex os y a ículos cien í icos que exis en
sob e el ema y en su obje i o p incipal, pode ano a a ículos y ex os pa a la
ex acción de in o mación a a és de la iden i icación de en idades o pa a la
clasi icación de documen os. Algunos algo i mos que se han desa ollado en
es e ámbi o son Gene ag [13], un algo i mo basado en NER que e ique a
13
genes y p o eínas, y algo i mos NER que e ique an en idades elacionadas con
en e medades [14].
Pa a el desa ollo de algo i mos de mine ía de ex os exis en muchas
he amien as y a qui ec u as de desa ollo. Una de las he amien as más
ex endidas es la a qui ec u a GATE (Gene al A chi ec u e o Tex Enginee ing)
[15]. GATE es una in aes uc u a de código lib e (open sou ce so wa e) usada
pa a desa olla y desplega componen es so wa e que p ocesan ex os en
lenguaje humano, es deci , es un en o no de desa ollo pa a algo i mos de
p ocesamien o del lenguaje na u al y mine ía de ex os.
GATE p opo ciona un sis ema de ex acción de ex os, que u iliza NER,
llamado ANNIE [16]. Es e sis ema es usado pa a el desa ollo del algo i mo de
pa alelización, po lo que se explica á con más de alle en el capí ulo 4.
2.3 Big Da a y Pa alelización de algo i mos
En el apa ado an e io se ha mencionado que los algo i mos NER son
muy u ilizados en el ámbi o cien í ico p incipalmen e pa a la clasi icación de
ex os y la ex acción de in o mación. Las p egun as que cab ían hace se es de
cuán os documen os es amos hablando y si es posible ex ae in o mación de
odos ellos.
A pa i del es udio de Bo-Ch is e Bjö k [17] podemos esponde a las
p egun as an e io es. Al año se publican muchos a ículos cien í icos (al ededo
de 1.5 millones), po lo que el olumen de da os es inmanejable, esul ando
casi imposible que un humano sea capaz de ex ae conocimien o a pa i de
ese olumen.
Los algo i mos de mine ía de ex os au oma izan ese p oceso. Aun así
es di ícil p ocesa una can idad an ele ada de documen os, an o po el iempo
pa a p ocesa los odos como po los ecu sos pa a ealiza lo. El a amien o de
g andes can idades de in o mación es un p oblema que a a de soluciona el
Big Da a [18]. El é mino Big Da a se usa pa a hace e e encia a las
14
aplicaciones o a los algo i mos que son capaces de ges iona un ele ado
conjun o de da os que un so wa e habi ual no pod ía manipula , como
e aby es o pe aby es de da os en un único da a se , es deci , un único conjun o
de da os.
Es e es el mo i o po el que las ecnologías del Big Da a son muy
usadas, ya que en bas an es sec o es se equie e hace uso de muchos da os,
como en el sec o emp esa ial con las écnicas de Business In eligence, en e
o os. G andes emp esas como son Mic oso , SAP y O acle p opo cionan
he amien as de Big Da a pa a la o ganización y la manipulación de g andes
olúmenes de da os a una elocidad de p ocesamien o bas an e azonable.
Uno de los sis emas que es án cob ando ue za en es e ámbi o es
Hadoop [19], de Apache So wa e Founda ion. Hadoop es un amewo k de
so wa e que pe mi e el p ocesamien o dis ibuido de g andes conjun os de
da os a a és de clús e es usando el modelo de p og amación MapReduce. En
Hadoop, un clús e iene un nodo mas e y uno o a ios nodos sla es [20]. El
nodo mas e almacena los me ada os de los nodos sla es y iene o puede ene
los siguien es se icios:
Namenode: Ges iona el espacio de nomb es del sis ema de iche os.
Man iene la es uc u a del ilesys em y los me ada os. Además, conoce
los da anodes en los que se almacenan los bloques de un de e minado
iche o.
Seconda y namenode: Copia del namenode p incipal. Se ac i a cuando
el p incipal cae o alla po algún mo i o.
Da anode: Almacena y ecupe a bloques cuando lo pide el namenode o
los clien es (cuando se accede al sis ema de iche os). También
in o man al namenode de los bloques que almacenan.
Job acke : Coo dina y di ide en a eas el job (una aplicación de Ja a,
po ejemplo) que se es á ejecu ando.
Task acke : Ejecu a las a eas en las que se ha di idido el job.
15
Los nodos sla es almacenan los da os y ejecu an los abajos de
p ocesamien o. Sólo ienen dos se icios:
Da anode
Task acke
En la Figu a 2 se obse a oda la es uc u a explicada an e io men e. En
el capí ulo 4, conc e amen e en el p ime apa ado, se p o undiza á en la
a qui ec u a de Hadoop y su uncionamien o. Sin emba go, des aca que
Hadoop iene su p opio sis ema de iche os llamado HDFS (Hadoop Dis ibu ed
File Sys em) [21] que es á diseñado especí icamen e pa a almacena iche os
de g an amaño de o ma dis ibuida. Esos iche os se di iden en bloques (de
64 MB cada uno) y se dis ibuyen po los nodos con el ol da anode del clús e .
HDFS incluye eplicación de bloques pa a acili a la ecupe ación en caso de
allo de un nodo.
Figu a 2. Es uc u a de los nodos en Hadoop
Hadoop es una solución ideal pa a el p oblema que habíamos
mencionado an es. Hay una g an can idad de ex os y a ículos cien í icos, cuyo
p ocesamien o es imposible debido al amaño del co pus de en ada a los
algo i mos de mine ía de ex os. Po ello, la solución p opues a po la iloso ía
de Hadoop es básicamen e la pa alelización de esos algo i mos,
16
dis ibuyéndolos en e los di e en es nodos sla es según la ce canía a la que
es án los iche os a p ocesa y ejecu ándolos. Los algo i mos de mine ía de
ex os, o de cualquie o o ipo, deben es a implemen ados siguiendo la
iloso ía MapReduce, de iniendo al menos las dos clases p incipales, Mappe y
Reduce .
El Mappe es la unción enca gada de mapea las cla es. A pa i de
pa es <cla e, alo > de uel e una lis a de pa es <cla e, alo >.
Map (key1, alue1)
lis (key2, alue2)
El Reduce es la unción de educción. A pa i de una cla e y una
colección de alo es gene a una lis a de alo es.
Reduce (key2, lis ( alue2))
lis ( alue3)
El uncionamien o del MapReduce se en iende de mane a más in ui i a
en la Figu a 3, en el que se mues a la pa alelización de un algo i mo pa a
con a palab as. El ex o de en ada se di ide en pequeños agmen os
llamados eco ds, que son pequeños ozos de un ex o, y cada uno es el inpu
de un map. En la ase del mappe se c ea un pa <cla e, alo > cada ez que
encuen a una palab a, siendo la cla e la p opia palab a y el alo 1. En es a
ase el obje i o es simplemen e ano a cada palab a que apa ece, sin suma el
núme o de eces que apa ece la misma. Eso se ealiza en la ase del educe ,
al cual en cada ejecución le llega una de e minada palab a y una lis a de
alo es (1) po cada ez que lo han encon ado los mappe s.
17
Figu a 3. Ejecución algo i mo MapReduce
Como podemos supone , la implemen ación es mucho más sencilla que
haciendo odo el p oceso de una ez, y mucho más ápida a la ho a de la
ejecución. El mappe se enca ga de almacena cada palab a que apa ece y el
educe eco e la lis a de alo es que se le pasa como a gumen o y los suma
uno a uno, esc ibiendo el pa <palab a, suma o al>.
Una ez is o cómo unciona una aplicación basada en MapReduce, a
con inuación se explica á cómo es el p oceso que sigue Hadoop pa a lle a a
cabo la pa alelización de esas aplicaciones. De mane a gene al, el p oceso de
pa alelización es el siguien e:
La aplicación, implemen ada siguiendo la iloso ía MapReduce, c ea un
job que se á ges ionado po un nodo mas e (job acke ).
El job acke inicia á los ask acke s con enien es, según su p oximidad
a los bloques. Como se dijo an es, los iche os de en ada se di iden en
bloques.
Empieza la p ime a ase, el mapping. Cada ask acke ejecu a el
mappe y el combine si es á implemen ado. El combine se u iliza pa a
disminui la salida gene ada de los maps, así que suele ene la misma
implemen ación que los educe s.
18
Cuando odos los ask acke s e minan comienza la siguien e ase, el
educing. En es a ase se inician los ask acke s necesa ios, que
ejecu a án el educe usando como en ada la salida de los mappe s.
Cuando e minan su ejecución mue en los esul ados de la ejecución al
sis ema de iche os de Hadoop, es deci , al HDFS.
En la igu a an e io se puede obse a que los bloques de en ada se
di iden en spli s, y esos son la e dade a en ada de los ask acke s. Como ya
se e á en el capí ulo del Desa ollo, po de ec o en las aplicaciones que se
desa ollan en Hadoop se di ide la en ada en ozos más pequeños según una
cie a lógica, como po ejemplo un sal o de línea. De es a o ma las ejecuciones
de los maps son mucho más ápidas y e i a las pé didas de iempo y de
ecu sos en el caso de que alle uno de ellos y se enga que ol e a einicia .
Es a o ma de ecupe a se del e o es posible g acias a la sepa ación del
job acke y del ask acke , de al o ma que si un ask acke alla, el job acke
se enca ga ía de elimina dicho ask acke y c ea o o en un nodo disponible
del clús e pa a que ejecu e el abajo que es aba haciendo el p ime o.
Las en ajas de la pa alelización se han ido mencionando a lo la go de la
explicación de es e apa ado y de los an e io es. És as se esumen en la mayo
elocidad de p ocesamien o en e a la ejecución secuencial y, desde el pun o
de is a de la au o a de es e TFG, el mecanismo de ecupe ación an e posibles
e o es. Es e mecanismo se expande a a ios ni eles, po ejemplo a ni el de
los ask acke s en el que, como se ha mencionado an e io men e, se e i a que
alle la ejecución en e a del p og ama einiciando sólo la a ea que es aba
ealizando dicha pa e. Pa a acaba es e apa ado, des aca la ges ión in e na
que implemen a Hadoop pa a e i a la pé dida de in o mación: la eplicación de
bloques en e da anodes. G acias a la eplicación de los bloques se e i a que
se pie dan da os en el caso de que un da anode caiga, y po o o lado acili a
que el job acke pueda selecciona un nodo ipo ask acke que no enga
mucha sob eca ga de abajo, lo que mejo a ía la concu encia de a ios
usua ios.
19
2.4 Cloud Compu ing
Las en ajas que p opo ciona el Big Da a jun o con la pa alelización de
los algo i mos han quedado pa en es en el an e io apa ado. Según el análisis
ealizado po Ryan Me iman [22], el iempo de ejecución de un algo i mo de
p ocesamien o del lenguaje na u al pa alelizado usando Hadoop en un clús e
de 20 máquinas es á comp endido en al ededo de una oc a a pa e de la
ejecución del mismo algo i mo en modo s andalone, es deci , sin pa alelización.
Es e hecho ha lle ado a las emp esas a hace se con clús e es de un amaño
conside able, ya que con clús e es de dos nodos no se ob ienen los esul ados
an e io es, lo que puede gene a di icul ades.
En e esas di icul ades, las más des acables son el p ecio pa a
adqui i los y con igu a los así como los gas os que se gene an, incluyendo el
desap o echamien o de los ecu sos y las limi aciones en el caso de que e
amplia el clús e de o ma ápida.
El cloud compu ing [23] es un pa adigma que su gió pa a da solución a
es as di icul ades p opo cionando se icios de compu ación a a és de
In e ne . Usando es e pa adigma, las emp esas pod ían ene clús e es en la
nube, lo que supone una g an en aja a la ho a de moni o iza el clús e g acias
a las apps des inadas a ello. O a en aja a des aca es la posibilidad de paga
po el uso o los ecu sos que ealmen e se es én u ilizando po lo que, además
de aba a a cos es, se aumen a la op imización de los ecu sos. Po o o lado,
la mayo ía de las emp esas dedicadas a o ece es os se icios pe mi en la
escalabilidad en el caso de que se equie a, y lo con a io ambién, jun o con la
ges ión de las ac ualizaciones au omá icas pa a que no a ec en nega i amen e
a los ecu sos de TI.
G acias a la expansión de la Web y a los bene icios que apo a, el cloud
compu ing es á en alza, sob e odo en los sec o es en los que se equie e Big
Da a. Los algo i mos de Big Da a equie en p ocesa una g an can idad de
documen os, po lo que el cloud compu ing, al y como se ha is o, es la
solución más adecuada en é minos de cos e y escalabilidad [24]. Es e én asis
po el cloud compu ing se e leja en emp esas in e nacionalmen e econocidas
20
que es án o eciendo se icios de cloud. Ejemplos de es os se icios son IBM
Cloud [25] y Amazon Web Se ices (AWS) [26].
2.5 RDF y Web Semán ica
Las ano aciones que se gene an po los algo i mos desa ollados en
GATE es án inc us adas en el documen o p ocesado, po consiguien e, a
menos que se ans o me po ejemplo en XML, no se pueden obse a en el
iche o. Pa a pode ob ene esas ano aciones se suelen u iliza modelos de
da os en ocados a los me ada os, como el RDF, pa a almacena los y, ambién,
pa a posibles usos en la Web Semán ica.
El RDF (Resou ce Desc ip ion F amewo k) [27] es un modelo es ánda
basado en XML pa a el in e cambio de da os en la Web basado en iple as.
Es as iple as ienen la siguien e es uc u a:
Suje o – P edicado – Obje o
Suje o: El ecu so. Cualquie obje o web iden i icado median e una URI,
gene almen e hace e e encia a un obje o de un eposi o io de da os
lib e, como DBpedia [28].
P edicado: También conocido como p opiedad. Son asgos o aspec os
del ecu so. Exp esa la elación en e el suje o y el obje o.
Obje o: El alo conc e o de ese ecu so pa a el p edicado dado. Pueden
se li e ales o ecu sos (suje os).
Es e modelo de da os iene una es uc u a bas an e sencilla, de ahí que
sea ex ensamen e u ilizado po se an lexible pa a la es uc u ación de la
in o mación [29]. Los modelos RDF, como se mues a en la Figu a 4, son
g a os acíclicos di igidos que ep esen an la es uc u a an e io . Como se
puede obse a , es os modelos ep esen an de o ma bas an e ace ada y
sencilla el conocimien o, de ahí que sea muy usado en edes semán icas y
on ologías.
27
Una ez ins alado y con igu ado, se ealizó el es udio de las ases que
con o man una aplicación que implemen e la iloso ía MapReduce, en conc e o
el amewo k Hadoop. A su ez se p oba on el ejemplo más simple de un
algo i mo MapReduce, el wo dcoun (con ado de palab as), y el ejemplo del
lib o de e e encia sob e Hadoop [37], que a a de un algo i mo que de uel e
la empe a u a más ele ada de cada año. El p ime algo i mo unciona al y
como se mos ó en la Figu a 3 y se explicó en el capí ulo 2. El segundo
algo i mo es un poco más complejo, pe o ácil de comp ende . El mappe
ex aía y de ol ía los da os ele an es de los inpu s de en ada del NCDC
(Na ional Clima ic Da a Cen e ), es deci , el año y la empe a u a en e a odos
los demás da os que había medido una de e minada es ación en un momen o
de e minado. Al educe le llega una lis a de odos los alo es asociados a una
cla e de e minada, que en es e caso es el año. Po lo an o, el educe es el
que ealmen e ealiza la búsqueda de la empe a u a máxima, eco iendo la
lis a de alo es pa a un año (la cla e) conc e o. La implemen ación de es e
p oblema se ía bas an e más complicada si no se siguie a es a iloso ía, sob e
odo cuando haya que p ocesa una g an can idad de documen os.
El siguien e y úl imo paso de es a ase ue el es udio de la a qui ec u a
GATE y del algo i mo que se iba a pa aleliza . Sin emba go, dicho algo i mo no
es aba lis o, así que pa a el desa ollo de la aplicación se u ilizó uno de los
algo i mos que p opo cionaba la he amien a GATE y que se asemejaba lo
su icien e al de Bioledge, ANNIE [16].
ANNIE es un sis ema de ex acción de ex os basado en NER. Como la
mayo ía de los algo i mos desa ollados en GATE, es e sis ema se es uc u a
en una se ie de componen es que o man un pipeline. A dichos componen es
se les conoce como p ocessing esou ces y, en el caso de ANNIE, los más
ep esen a i os son los siguien es:
Documen Rese : Es e ecu so limpia el documen o de
ano aciones, de ol iéndolo al es ado o iginal. Se usa en el caso de que
el documen o se haya p ocesado an e io men e po el mismo pipeline o
po o o.
28
Tokenise : Se enca ga de di idi el ex o en okens, di e enciando
núme os, palab as y signos de pun uación.
Gaze ee : Iden i ica nomb es de en idades basándose en lis as
es á icas.
Sen ence Spli e : Di ide el ex o en sen encias.
Pa o Speech Tagge : C ea ano aciones de cada palab a o
símbolo en o ma de e ique as. Pa a ello usa un dicciona io y un
conjun o de eglas. También exis e el Seman ic Tagge , que se basa en
el lenguaje JAPE [38] (Ja a Anno a ion Pa e ns Engine) y se enca ga
de c ea las ano aciones iden i icando las di e en es en idades y el ipo al
que pe enecen (Pe son, Loca ion, Money, e c.).
O hoMa che : Ag ega las elaciones de iden idad exis en es en e
las en idades iden i icadas po el Tagge , de al o ma que si encuen a
dos en idades iguales y una de ellas se ha clasi icado como “Unknown”
se uel e a clasi ica con el mismo ipo que se haya asignado a la o a
en idad. Es o se ealiza pa a mejo a la co e e encia.
Pa a asimilia ANNIE con el algo i mo que se enía pensado pa aleliza
en un u u o se sus i uyó el Gaze ee po el LKB Gaze ee [39]. Es e gaze ee
es más po en e que el de ANNIE, ya que no se basa únicamen e en lis as
es á icas, sino ambién en eposi o ios semán icos, ya sean dicciona ios
es á icos o dinámicos. Ejemplos de eposi o ios que usa es DBpedia [28],
accediendo a su in o mación median e el lenguaje SPARQL [40].
Cualquie algo i mo desa ollado en GATE necesi a pa a ejecu a se unos
inpu s, conocidos como Language Resou ces. Es os ecu sos se componen de
co pus y documen os, pe o el algo i mo sólo acep a como en ada los co pus,
que es a án compues os de uno o más documen os.
Pa a ejecu a un algo i mo desa ollado en GATE desde cualquie
lenguaje de p og amación bas a con expo a dicho algo i mo a zip (o ene lo
en un di ec o io) y c ea un p og ama, po ejemplo en Ja a, con los siguien es
pasos:
29
1. Inicia Ga e.
2. C ea un co pus acío.
3. Es ablece las u as de los plugins y de la aplicación.
4. Ca ga la aplicación en GATE y asigna le el co pus.
5. C ea documen os GATE a pa i de los documen os y añadi los al
co pus.
6. Ejecu a la aplicación.
Pa a el caso de ANNIE, la e sión 7.1 de GATE p o ocaba e o es a la
ho a de ejecu a se desde Ja a. Sin emba go, con la e sión 7.0 no había
ningún p oblema.
4.2 Análisis, diseño y cons ucción del sis ema
En la ase an e io se ha mos ado los pun os que se debe segui pa a la
ejecución de un algo i mo desa ollado en GATE desde cualquie lenguaje de
p og amación. En es a ase se explica á el es o del análisis y diseño del
sis ema y su implemen ación.
i. Aspec os básicos
El desa ollo se ealizó sob e el sis ema ope a i o Cen OS 6.5 usando el
IDE Eclipse Juno [41]. El sis ema es á compues o de dos p oyec os:
TFG_Pa alleliza ionApp: La aplicación con más peso en el
sis ema. Se enca ga de la pa alelización de los algo i mos desa ollados
en GATE usando MapReduce. También gene a los modelos RDF de
cada documen o p ocesado po el algo i mo de GATE. Pa a su
uncionamien o se debe ejecu a el ja a a és de Hadoop.
TFG_UnionModels: Aplicación secunda ia que o ece más
uncionalidad al sis ema. Se ejecu a independien e de Hadoop y, po
30
an o, de la pa alelización. Es a aplicación une en un único modelo
global odos los modelos RDF gene ados po la p ime a aplicación.
La es uc u a de ambos modelos se e leja en la Figu a 6.
Figu a 6. Es uc u a de las aplicaciones desa olladas
ii. Inc emen os y e apas de la ase
A con inuación se desc iben los inc emen os ealizados du an e el
desa ollo de es a ase. Des aca que en la ase an e io se p obó la ejecución
en Hadoop de ejemplos MapReduce desa ollados en Ja a. Po ello, en las
e apas de es a ase se empezó el p opio desa ollo de ambas aplicaciones.
1. P ime a e sión TFG_Pa alleliza ionApp: Es a p ime a e sión
consis ía en el desa ollo de un algo i mo MapReduce capaz de inicia
GATE y ejecu a el algo i mo ANNIE, esc ibiendo en un iche o las
ano aciones que gene aba el algo i mo.
31
2. Segunda e sión TFG_Pa alleliza ionApp: En es a e sión se
implemen aba o o de los equisi os, la gene ación de modelos RDF.
Pa a ello, se sus i uyó el código del MapReduce pa a que en el mappe
se c ea a el modelo RDF del inpu co espondien e (las ano aciones del
p ocesamien o de un pá a o de un documen o) y el educe unía odos
los modelos gene ados po el mappe de un documen o en conc e o. La
salida de la ejecución en Hadoop es un iche o con pa es
<nomb eDocumen o, modelo RDF>.
3. TFG_UnionModels: Desa ollo de la aplicación enca gada de uni
odos los modelos RDF de documen os dis in os en un único modelo.
4. Te ce a e sión TFG_Pa alleliza ionApp: Implemen ación de un
demonio enca gado de ges iona GATE, es deci , su inicialización y la
limpieza del co pus. De es a o ma se libe a al mappe de ealiza dicho
abajo. En es a e sión ambién se desa olló el código necesa io pa a
que Hadoop no ocea a los documen os, es deci , no di idie a el
documen o en una se ie de pequeños eco ds.
Cada uno de es os inc emen os se di idía en a ias e apas:
Selección de los obje i os y equisi os a implemen a en el
inc emen o. En odos los inc emen os, excep o en el p ime o, se enían
en cuen a ambién unos obje i os de co ección o mejo as del código ya
desa ollado.
P io ización y plani icación de los obje i os y equisi os. La
co ección de e o es enía la máxima p io idad.
Diseño e implemen ación de los equisi os.
Realización de p uebas ( es ing). P ime o se ealizaban p uebas
uni a ias al código implemen ado, y luego se ealizaban las p uebas al
sis ema comple o. Du an e es a e apa se de ec aban e o es que se
enían en cuen a en el siguien e inc emen o.
32
iii. Implemen ación y uncionamien o del sis ema
En es e apa ado se explica á el uncionamien o del sis ema, jun o con
su implemen ación.
En el diag ama de a qui ec u a ep esen ado en la Figu a 7 se esume el
uncionamien o básico del sis ema comple o. Pa a ejecu a una aplicación con
YARN se debe u iliza la consola de comandos e in oduci el siguien e
comando:
ya n ja applica ion.ja MainClass inpu s ou pu
Applica ion.ja : Aplicación MapReduce que a a ejecu a Hadoop.
MainClass: Clase que c ea el job y lo lanza.
Inpu s: Ca pe a o documen os de en ada a la aplicación. Se deben
encon a en el sis ema dis ibuido de Hadoop (HDFS).
Ou pu : Ca pe a con los esul ados de la ejecución. Se c ea en el
HDFS du an e la ejecución, po lo que no debe exis i an e io men e.
El nodo maes o se enca ga á de con ola dicho job y di idi lo en asks,
mien as que los nodos escla os ejecu a án las asks que les co espondan,
comenzando de es a o ma el p oceso MapReduce.
Pa a el caso de es e sis ema, hay que indica en el comando el ja de la
aplicación TFG_Pa alleliza ionApp y su clase que ac úa de p incipal,
HadoopGa eD i e , incluyendo los documen os o di ec o ios de en ada y el
di ec o io de salida. En el apa ado 7.1 se indica cómo se ejecu a.
HadoopGa eD i e La clase p incipal cons a de los siguien es es
mé odos:
33
El p ime mé odo que se ejecu a es el main(S ing[] a gs), con los
a gumen os que se pasan en el comando (los inpu s y el ou pu ). Es e mé odo
llama a un(S ing[] a gs), que se enca ga de ex ae los a gumen os,
c ea y ejecu a el job, de ol iendo un booleano si se ha comple ado con éxi o
o no.
El úl imo mé odo es c ea eJob(Con igu a ion con igu a ion,
Collec ion<Pa h> inpu s, Pa h ou pu ) y se enca ga de c ea un job
dados la con igu ación con la que se a a ejecu a el job, una colección de los
documen os de en ada y el di ec o io de salida po el mé odo explicado
an e io men e.
En la c eación del job se añade a la con igu ación la di ección URI del
algo i mo y se c ea el job. Una ez c eado se añaden los pa hs de los inpu s y
del ou pu , el ol de cada clase, es deci , qué clases implemen an el Mappe , el
Reduce y/o el Combine , y las clases usadas pa a el pa <cla e, alo >, siendo
la clase Tex de Hadoop. Además, se han especi icado las clases pa a el
o ma o de los inpu s y del ou pu , de al o ma que bas a ía con cambia la
clase del o ma o de los inpu s (Tex Inpu Fo ma ) pa a e i a que se oceen los
documen os. La clase a cambia se ía WholeInpu Fo ma que es llamada an es
de en a en la ase del mapping, po la ase spli ing.
Tal y como se explicó y mos ó en la Figu a 3, los documen os de
en ada se di iden en di e sos eco ds. Es a ase se conoce como spli ing. En
las lib e ías de Hadoop hay clases que implemen an es a ca ac e ís ica, po lo
que se usó la clase Tex Inpu Fo ma pa a el sis ema a implemen a . Es a clase
gene a eco ds po cada sal o de línea que encuen a en el ex o, que suele
co esponde se con los pá a os.
34
Figu a 7. Diag ama de A qui ec u a
El p oblema es que no hay ninguna clase que gene e un único eco d, es
deci , que no di idie a el documen o. Po ello se implemen a on las clases
WholeInpu Fo ma y WholeReco dReade , ya que se que ía analiza las
di e encias de in o mación que puede exis i al i ejecu ando el algo i mo de
mine ía de ex os con agmen os del documen o, que implica la pé dida del
con ex o semán ico de odo el documen o, en e al p ocesamien o del ex o
comple o en una sola pasada, conse ando el con ex o.
WholeInpu Fo ma posee dos mé odos:
35
El p ime mé odo indica si el ex o pasado como a gumen o ( ile) se
puede di idi o no. Como es a clase se c eó pa a e i a que se di idie a el
ex o, siemp e de uel e que no lo es. Es e mé odo no es su icien e pa a e i a
la gene ación de a ios eco ds, ya que hay que c ea o a clase que de uel a
el eco d co espondien e y como se mencionó an e io men e, no hay clases
que implemen en es a ca ac e ís ica. Esa clase es WholeReco dReade .
El segundo mé odo se enca ga de c ea una ins ancia de
WholeReco dReade e inicializa lo.
WholeReco dReade Clase que de uel e un documen o comple o
como un eco d. Implemen a los mé odos de la in e az de la que ex iende
(Reco dReade ). En e dichos mé odos se encuen an los ge e de la cla e y el
alo que haya ex aído, el po cen aje del p og eso y la inicialización de las
a iables pa a ob ene los eco ds, como son ileSpli , que es el iche o que
se a a di idi , y con , la con igu ación/con ex o del ask que lo es á
ejecu ando.
Los pa áme os pa a la inicialización se los pasa la clase
WholeInpu Fo ma .
El mé odo más impo an e de la clase es nex KeyValue(). Es e mé odo
de uel e un booleano indicando si hay más eco ds o no, así que en es e caso
solo de uel e ue cuando no se ha p ocesado el documen o, in oduciendo en
la a iable alue el con enido comple o del documen o. En el caso de que ya
se haya ob enido el eco d an es, de uel e alse.
36
Los pa es <key, alue> son las en adas al mappe , que ejecu a la
unción map() po cada pa que le llega. El key con iene el o se del eco d con
espec o al ex o comple o, que en el caso de los eco ds gene ados po la
clase WholeReco dReade siemp e ald á 0, ya que solo hay un eco d po
documen o. El alue es el con enido del eco d. Po lo an o, pa a el mappe
que se ha c eado, lo único que se necesi a es el alue, el key no es necesa io.
Así pues, al e mina la e apa de spli ing, los eco ds se en ían a los
mappe s co espondien es, dando luga al comienzo de la e apa del mapping.
HadoopGa eMappe Clase que implemen a el mappe . Su unción es
ejecu a el algo i mo de mine ía de ex os al eco d co espondien e y c ea el
modelo RDF asociado a las ano aciones gene adas po el algo i mo. Los
mé odos más impo an es pa a ealiza es a a ea son los siguien es:
43
Es a clase iene un cons uc o que c ea el h ead y lo con ie e en
demonio.
El es o de mé odos son usados en el cue po ( un()) del demonio. El
mé odo un() se di ide en es pa es:
1. Inicia GATE, jun o con el algo i mo y el co pus.
2. Bucle de ejecución. Aquí se ealiza el abajo más impo an e del
demonio. P ime o se comp ueba si Ga eApp ha pedido que se inicie
GATE y el algo i mo, en cuyo caso se p ocede a ealiza lo (usando el
mé odo de la 1º pa e). Después se ealiza la limpieza del co pus si se
ha llegado al amaño máximo. Finalmen e, comp ueba si el mappe ha
acabado pa a inaliza su ejecución, ya que solo iene sen ido en la ase
del mapping.
3. Cie e de GATE, se limpia el co pus y se libe an los ecu sos.
La mayo ía de los mé odos son ge e y se e de las a iables de la
clase, acili ando a las o as clases (Ga eApp y el mappe ) que puedan
in e ac ua con el demonio:
Mé odos pa a ob ene y cambia la URI del algo i mo de GATE:
ge URI() y se URI (URI newU i).
Mé odos pa a ob ene el con olado del algo i mo y el co pus:
ge Applica ion() y ge Co pus().
P ocedimien os pa a ob ene y cambia el lag pa a indica si se
debe inicia GATE: ge FlagWan Ga e() y se FlagWan Ga e(boolean
lagWan Ga e).
P ocedimien o pa a ob ene (acqui e) o deja ( elease) el
semá o o pa a con ola que no se manipule el co pus po dos o más
obje os, lo usa el mappe pa a e i a que mien as se es á ejecu ando el
44
algo i mo sob e el co pus no se haga la limpieza, y ice e sa:
ge Mu exGa e(boolean b).
A con inuación se de allan el es o de mé odos del demonio:
El p ocedimien o s opDeamon() desac i a el booleano pa a de ene el
bucle del demonio y que e mine de ejecu a su un. El mé odo
wan S a Ga e() lo usa Ga eApp pa a ac i a el lag en el caso de que no
es é iniciado GATE, indicando que necesi a su inicialización y la del algo i mo.
Pa a e i a la posible concu encia al oca esa a iable se usan semá o os.
Cuando se e mina el mé odo se asegu a que GATE es á inicializado.
El p ocedimien o isS a Ga e() comp ueba si GATE es á inicializado
y si las a iables que almacenan el algo i mo y el co pus no son nulas, es deci ,
si ya es án ins anciadas.
45
El mé odo pa a consegui el h ead del map si es á ac i o es
ge Th eadMap(), y lo usa el demonio pa a sabe si iene que pa a su
ejecución (no es una a iable de clase).
El p ocedimien o s a Ga e() inicia GATE si no es á inicializado de
an es, es ablece las u as de los plugins, ca ga el algo i mo NER, c ea un
co pus y lo asigna al con olado del algo i mo. Usa semá o os pa a que no se
modi ique el lag que indica que hay que le an a GATE, y al acaba lo pone a
also.
El mé odo cleanCo pus() eco e el co pus eliminando comple amen e
cada documen o, y luego elimina el co pus, des uyendo odos los ecu sos de
cada documen o y del p opio co pus. Al inal del mé odo se c ea un nue o
co pus y se asigna al con olado del algo i mo. El código de es e mé odo es á
con olado po semá o os pa a e i a la concu encia en el co pus.
El úl imo p ocedimien o, closeGa e(), se enca ga de limpia el co pus
con el mé odo an e io y elimina lo jun o con el con olado de la aplicación.
Cuando acaba la ase del mapping comienza las e apas del shu ling y
del educing. El shu ling se hace au omá icamen e po Hadoop, y consis e en
euni los esul ados de odos los mappe s que engan la misma cla e, pa a
en iá selo a un educe . Como se ha is o, la cla e que gene an los mappe s
es el nomb e del documen o al que pe enece el modelo RDF gene ado po
uno de sus agmen os o del ex o comple o, así que el shu ling pasa ía como
a gumen os al educe la lis a de odos los modelos gene ados en el mapping
46
pa a un único documen o. Como ocu ía con el mapping, los node manage s
asignados se enca gan de c ea a eas ( ask) pa a ejecu a el educe .
HadoopGa eReduce Clase que implemen a el educe de la aplicación.
Al igual que el mappe , implemen a el mé odo de su in e az (Reduce ) que
se á llamado po los asks asignados a la ase educing.
El mé odo se enca ga de uni los modelos RDF almacenados en la lis a
de alo es ( alues) en un único modelo, ob eniendo el modelo inal que
ep esen a a las ano aciones del documen o al que haga e e encia la cla e
(key). Así pues, se eco e dicha lis a y se a ealizando la unión de conjun os
con el modelo inal, que en la p ime a i e ación se inicializa á con el p ime
modelo RDF de la lis a. Cuando acaba el bucle se esc ibe en el con ex o del
educe ask la misma cla e que ha ecibido y el modelo RDF esul an e de la
unión.
La ejecución de la aplicación inaliza cuando se esc ibe el esul ado de
odos los educe s en iche os llamados pa - -xxxxx, donde las x e e encian al
iden i icado de cada ask. Dichos iche os se c ean en el di ec o io del HDFS
que el usua io ha pasado como a gumen o en el ou pu y con end án pa es
<nomb e del documen o, modelo RDF>. Po ello, pa a pode ene un modelo
global de odos los documen os p ocesados hay que usa la o a aplicación del
sis ema.
En la Figu a 9 se mues a el diag ama de clases del p og ama
TFG_Pa alleliza ionApp.
47
Figu a 9. Diag ama de clase de TFG_Pa alleliza ionApp
La segunda aplicación, TFG_UnionModels, se enca ga de uni en un
único modelo global odos los modelos RDF gene ados po la p ime a
aplicación, lanzada en Hadoop. Es e p oyec o es de meno en e gadu a que el
an e io y es á compues o po es clases: Main, Fil o y UnionModels.
Main Es la clase ejecu able y se enca ga de c ea un obje o
UnionModels y ejecu a su mé odo pa a la unión de los modelos, pasándole
como pa áme o el nomb e del di ec o io que haya in oducido el usua io como
a gumen o.
48
Fil o Es a clase es usada po la clase UnionModels pa a il a los
iche os que hay en la ca pe a de salida gene ada po Hadoop, indicando si son
iche os con esul ados de la ejecución de la aplicación o no. Es os iche os
ienen la siguien e es uc u a: pa - -xxxxx, donde las ‘x’ hacen e e encia al
núme o del ask que lo ha gene ado. Comienzan po el 0, es deci , el p ime
iche o es pa - -00000.
UnionModels Es la clase que implemen a la lógica de es a aplicación.
Tiene un cons uc o que c ea un modelo RDF acío y lo asigna a la a iable
inalModel.
Su mé odo p incipal es unionModels() y usa como apoyo los o os
mé odos p i ados de la clase.
49
Los mé odos de sopo e son los siguien es:
El mé odo eadFile (Bu e edReade eade ) se enca ga de
de ol e el con enido del iche o que se le pasa como a gumen o en un
s ing.
w i e() c ea un iche o (Modelo-Final. x ) en el que esc ibe el
modelo RDF global gene ado po la unión de odos los modelos.
El mé odo union(S ing s ingModel) c ea un modelo a pa i
del s ing que se le pasa como a gumen o y lo une al modelo inal. La
unión de los modelos es como la unión ma emá ica, es deci , no duplica
ecu sos ya exis en es, como los de las en idades.
El mé odo p incipal es unionModels(S ing di ec o y) y su unción
es la de uni odos los modelos gene ados en la ejecución de Hadoop. Pa a
ello, lo p ime o que hace es c ea la con igu ación necesa ia pa a conec a se al
HDFS, añadiendo como ecu sos los iche os de con igu ación hd s-si e.xml y
co e-si e.xml, además de especi ica los pa áme os del FileSys em local y el
50
del HDFS. Con es a con igu ación se puede accede al HDFS (deben es a
co iendo el namenode y los da anodes) y, po an o, al di ec o io ou pu
gene ado po la p ime a pa e del sis ema. Usando la clase Fil o comen ada
an es, il amos los a chi os del di ec o io pa a ob ene aquellos iche os que
con engan la salida de la ejecución, ya que en ese di ec o io ambién se
almacenan más iche os que ienen que e con el éxi o del p og ama, en e
o os. Se ha con olado que en el caso de no encon a los iche os el p og ama
acaba á sin gene a excepciones o e o es.
En el caso de encon a los iche os, ex ae el con enido usando el
p ime mé odo de sopo e, luego eco e dicho con enido pa a ex ae cada
modelo RDF que apa ece y se lo pasa al mé odo que añade el modelo ex aído
con el modelo inal. Una ez que se ha ealizado la unión de odos los modelos,
se usa el mé odo w i e() pa a esc ibi el modelo global en un iche o.
La pa e más di ícil ha sido la ex acción de los modelos. El uso de
S ingTokenize y la unción Spli () de los S ing ha acili ado la a ea al pode
okeniza el con enido según las a iables s a y end, lo que pe mi ía
desca a los okens que u ie an las cla es (los nomb es de los documen os).
Los de alles a ene en cuen a son:
Al okeniza desapa ecen las e ique as al p incipio y al inal de los
modelos, po lo que an es de c ea el modelo a pa i de ese con enido
hay que ag ega le dichas e ique as.
En el caso de que un modelo se quede pa ido, es deci , una pa e
del modelo es é en un iche o y el es o en o o, lo p ime o que se hace
es mi a si se da dicha ca ac e ís ica comp obando si sólo queda un
oken con un modelo en el iche o ac ual y si el índice de apa ición de
una e ique a de in de modelo es más pequeño que el de inicio de
modelo en el siguien e iche o. En ese caso, se jun a ían el s ing con el
p ime agmen o del modelo con el del segundo, y se p ocede ía como
siemp e.
51
En la Figu a 10 se mues a el diag ama de clases de la aplicación
TFG_UnionModels.
Figu a 10. Diag ama de clase de TFG_UnionModels
En el apa ado 7.2 se mues a el esul ado de la ejecución del sis ema
comple o usando ANNIE como algo i mo a pa aleliza .
4.3 P uebas del sis ema y análisis de los esul ados
Es a úl ima ase consis ió en la limpieza y e ac o ización del código, y
en la ealización de las úl imas p uebas al sis ema. Además, se incluye ambién
el análisis de los esul ados ob enidos al ejecu a las aplicaciones.
i. P uebas del sis ema
Se ealizó una ba e ía de p uebas inales que consis ie on en ejecu a la
aplicación TFG_Pa alleliza ionApp (con y sin el spli ing) con una se ie de
documen os en inglés, y la aplicación TFG_UnionModels con los esul ados de
la an e io . Las ejecuciones se ealizaban con documen os de di e so amaño y
con ca ac e es ex años y/o líneas en blanco.
52
Las o as p uebas ealizadas se cen a on en el demonio, de al o ma
que se p obó el co ec o uncionamien o de la limpieza (al llega al lími e, que
se puso en 3 documen os du an e las p uebas) sin al e a demasiado el
uncionamien o del mappe , e i ando el acceso y modi icación simul áneo del
co pus. También se comp obó que, en el caso de que se caye a un ask jun o
con GATE, el demonio ol ie a a inicia GATE y a p epa a el algo i mo con el
co pus.
ii. Análisis de los esul ados
Los análisis a ealiza consis ían en dos:
Análisis y compa ación del iempo o al de p ocesamien o de los
algo i mos de mine ía de ex os al ejecu a los con y sin pa alelización.
Análisis de la posible pé dida de in o mación al ocea los
documen os.
Pa a la ealización del p ime análisis se eligie on 4 documen os
pequeños pa a el p ocesamien o. Po un lado, se calcula on los iempos en la
ejecución del algo i mo de mine ía de ex os sin pa aleliza usando un
p og ama que lo ejecu a a a a és de Eclipse y que gene ase los modelos
RDF de los documen os. Po o o lado, se usó la aplicación
TFG_Pa alleliza ionApp pa a pa aleliza dicho algo i mo, usando los mismos
ex os.
Los iempos ob enidos se mues an a con inuación:
Tiempo Ejecución
Con pa alelización
(TFG_Pa alleliza ionApp)
41 segundos
59
Pa aleliza la aplicación enca gada de la unión de odos los modelos
RDF (TFG_UnionModels).
60
61
6. Bibliog a ía
[1]
«Bioledge,» [En línea]. A ailable: h p://www.bioledge.eu/ op.h ml.
[2]
D. A. Cockbu n, «Using Bo h Inc emen al and I e a i e De elopmen ,» 2008. [En
línea]. A ailable: h p://www.c oss alkonline.o g/s o age/issue-
a chi es/2008/200805/200805-Cockbu n.pd .
[3]
«Tex Mining,» [En línea]. A ailable: h p://en.wikipedia.o g/wiki/Tex _mining.
[4]
«Uns uc u ed Da a and he 80 Pe cen Rule,» [En línea]. A ailable:
h p://b eak h oughanalysis.com/2008/08/01/uns uc u ed-da a-and- he-80-
pe cen - ule/.
[5]
McKinsey Global Ins i u e, «Big da a: The nex on ie o inno a ion, compe i ion,
and p oduc i i y,» May 2011. [En línea]. A ailable:
h p://www.mckinsey.com/insigh s/business_ echnology/big_da a_ he_nex _ on ie
_ o _inno a ion.
[6]
«Au onomy,» [En línea]. A ailable:
h p://www. ex echnologies.com/ca ego y/ endo s/au onomy/.
[7]
«SAS Tex Analy ics,» [En línea]. A ailable:
h p://www.sas.com/en_us/so wa e/analy ics.h ml# ex -analy ics.
[8]
«Ae oTex ,» [En línea]. A ailable: h p://www. ocke so wa e.com/p oduc s/ ocke -
ae o ex .
[9]
B. Liu, de Sen imen Analysis and Opinion Mining, Mo gan & Claypool Publishe s,
2012, pp. 5-30.
[10]
M. R. Mehl, «Quan i a i e Tex Analysis,» [En línea]. A ailable:
h p://dingo.sbs.a izona.edu/~mehl/eRep in s/Tex %20analysis%20Handbook.pd .
[11]
J. Ca bonell, «El p ocesamien o del lenguaje na u al, ecnología en ansición,»
[En línea]. A ailable:
h p://c c.ce an es.es/ob e /cong esos/se illa/ ecnologias/ponenc_ca bonell.h m.
[12]
A. Suá ez y M. Paloma , «Desambiguación del sen ido y del dominio de las
palab as con modelos de p obabilidad de Máxima En opía.,» 5 Mayo 2002. [En
línea]. A ailable:
h p://jou nal.sepln.o g/sepln/ojs/ojs/index.php/pln/a icle/ iew/3303/1792.
[13]
X. N. T. L. M. W. W. W. Tanabe L, «GENETAG: a agged co pus o gene/p o ein
named en i y ecogni ion.,» 2005. [En línea]. A ailable:
h p://www.ncbi.nlm.nih.go /pubmed/15960837.
62
[14]
E. J.-R. V. L. S. G. R. B. D. R.-S. An onio Jimeno, «Assessmen o disease named
en i y ecogni ion on a co pus o anno a ed sen ences,» [En línea]. A ailable:
h p://www.biomedcen al.com/1471-2105/9/S3/S3.
[15]
«Ga e,» [En línea]. A ailable: h ps://ga e.ac.uk/.
[16]
D. M. K. B. I. R. Hamish Cunnigham, «ANNIE: a Nea ly-New In o ma ion
Ex ac ion Sys em,» de De eloping Language P ocessing Componen s wi h GATE
Ve sion 8, pp. 117-137.
[17]
A. R. M. L. Bo-Ch is e Bjö k, «Scien i ic jou nal publishing: yea ly olume and
open access a ailabili y,» 2009. [En línea]. A ailable:
h p://www.in o ma ion .ne /i /14-1/pape 391.h ml.
[18]
O acle, «In o ma ion Managemen and Big Da a,» [En línea]. A ailable:
h p://www.o acle.com/ echne wo k/ opics/en a ch/a icles/in o-mgm -big-da a- e -
a ch-1902853.pd .
[19]
«Apache Hadoop,» [En línea]. A ailable: h p://hadoop.apache.o g/.
[20]
A. Chauhan, «Mas e Sla e a chi ec u e in Hadoop,» 2012. [En línea]. A ailable:
h p://blogs.msdn.com/b/a kashchauhan/a chi e/2012/02/24/mas e -sla e-
a chi ec u e-in-hadoop.aspx.
[21]
T. Whi e, «The Hadoop Dis ibu ed Filesys em,» de Hadoop: The De ini i e Guide,
O'Reilly Media / Yahoo P ess, 2012, pp. 45-83.
[22]
R. Me iman, «Massi e Pe o mance Gains and Cos Sa ings using Hadoop,»
2011. [En línea]. A ailable: h p://blogs.a alonconsul .com/blog/en e p ise-
web/cloud-compu ing/massi e-pe o mance-gains-and-cos -sa ings-using-
hadoop/.
[23]
Sales o ce, «¿Qué es Cloud Compu ing?,» [En línea]. A ailable:
h p://web.a chi e.o g/web/20121130221321/h p://www.i news.ec/ma co/000035.
aspx.
[24]
R. N. C. S. B. M. A. S. N. R. B. Ma cos D. Assuncao, «Big Da a Compu ing and
Clouds: T ends and Fu u e Di ec ions,» 2013. [En línea]. A ailable:
h p://a xi .o g/pd /1312.4722 2.pd .
[25]
«IBM Cloud,» [En línea]. A ailable: h p://www.ibm.com/cloud-compu ing/es/es/.
[26]
«Amazon Web Se ices,» [En línea]. A ailable: h p://aws.amazon.com/es/.
[27]
«Resou ce Desc ip ion F amewo k (RDF),» [En línea]. A ailable:
h p://www.w3.o g/RDF/.
[28]
«BDpedia,» [En línea]. A ailable: h p://dbpedia.o g/Abou .
63
[29]
E. M. M. Rod íguez, «RDF: Un modelo de me ada os lexible pa a las biblio ecas
digi ales del p óximo milenio,» [En línea]. A ailable:
h p://www.cobdc.o g/jo nades/7JCD/1.pd .
[30]
«W3C - Web Semán ica,» [En línea]. A ailable:
h p://www.w3c.es/Di ulgacion/GuiasB e es/WebSeman ica.
[31]
«Jena,» [En línea]. A ailable: h p://jena.apache.o g/.
[32]
«Ma en,» [En línea]. A ailable: h p://ma en.apache.o g/.
[33]
«Wiki Hadoop Windows,» [En línea]. A ailable:
h ps://wiki.apache.o g/hadoop/Hadoop2OnWindows.
[34]
T. Whi e, «YARN (MapReduce2),» de Hadoop: The De ini i e Guide, O'Reilly
Media/Yahoo P ess, 2012, pp. 194-200.
[35]
«Cloude a,» [En línea]. A ailable:
h p://www.cloude a.com/con en /cloude a/en/home.h ml.
[36]
«Ho onwo ks,» [En línea]. A ailable: h p://ho onwo ks.com/.
[37]
T. Whi e, Hadoop: The De ini i e Guide, O'Reilly Media/Yahoo P ess, 2012.
[38]
«JAPE,» [En línea]. A ailable: h ps://ga e.ac.uk/sale/ ao/spli ch8.h ml.
[39]
«LKB Gaze ee ,» [En línea]. A ailable:
h ps://con luence.on o ex .com/display/KimDocs37EN/La ge+Knowledge+Base+(
LKB)+gaze ee .
[40]
«SPARQL,» [En línea]. A ailable: h p://www.w3.o g/TR/ d -spa ql-que y/.
[41]
«Eclipse Juno,» [En línea]. A ailable: h p://www.eclipse.o g/juno/.
64
65
7. Anexos Técnicos
Los documen os mencionados en es e capí ulo se encuen an en la
ca pe a Documen acion/Anexos del CD apo ado con la memo ia.
7.1 Manual de usua io
Pa a usa el sis ema Hadoop debe es a ins alado en las máquinas en
las que se aya a ejecu a y los se icios deben es a ac i os. En uno de los
nodos mas e s se lanza á la aplicación TFG_Pa alleliza ionApp, u ilizando el
comando ya n ja :
Los a gumen os de dicho comando son:
El ja de la aplicación. La u a se debe ajus a a la localización de es e
ja .
Clase p incipal que ejecu a el job. No es a iable.
Documen os o di ec o io de en ada. Es a iable y se deben encon a
en el HDFS.
Di ec o io de salida. No debe exis i en el HDFS.
Los iche os esul an es de la ejecución se almacenan en el di ec o io
que se haya especi icado, en el HDFS. El zip con el algo i mo de mine ía de
ex os que se aya a pa aleliza debe subi se al HDFS con el nomb e
“applica ion.zip” en la u a “/use /hadoop”.
La segunda aplicación, TFG_UnionModels, es un poco más es ic i a.
Se puede ejecu a el p oyec o desde un IDE como Eclipse o el ja desde una
consola de comandos.
66
El a gumen o que se le in oduce es la u a del di ec o io esul an e en la
ejecución an e io . La es icción que iene es que dos iche os de con igu ación
deben es a en una u a de e minada, conc e amen e:
-/us /local/hadoop/hadoop-2.2.0/e c/hadoop/co e-si e.xml
-/us /local/hadoop/hadoop-2.2.0/e c/hadoop/hd s-si e.xml
Es e p og ama de uel e un iche o llamado “Modelo-Final. x ” con el
modelo RDF gene ado a pa i de odos los modelos del di ec o io de salida de
la an e io aplicación.
La u a del di ec o io debe esc ibi se con la siguien e es uc u a (sin las
comillas):
La máquina y el pue o donde se accede al HDFS.
La u a del di ec o io en el HDFS
7.2 Resul ados del sis ema usando ANNIE
Un ejemplo de los esul ados de la ejecución del sis ema comple o se
puede encon a en la u a Analisis/Segundo/T oceado. También se pueden
encon a en el di ec o io Codigo.
TFG_Pa alleliza ionApp
En el documen o salidaAnalisis2T oceado/pa - -00000. Es el iche o
gene ado po la ejecución de Hadoop.
TFG_UnionModels
En el documen o Modelo-Final. x . Es e es el iche o que eúne odos los
modelos gene ados po los di e en es iche os de salida de Hadoop en un único
modelo.
67
7.3 Fiche os u ilizados pa a el análisis
Los iche os mencionados se encuen an en el CD apo ado jun o con la
memo ia.
Análisis 1
En la u a Analisis/P ime o.
- Ejecución S andalone. En el documen o Execu ionResul _S andalone. x
- Ejecución Pa alelizada. En el documen o Analisis1DocsPeqs. x
Análisis 2
En la u a Analisis/Segundo.
- Modelo Sin ocea . En el documen o Sin ocea /Modelo-Final. x .
- Modelo Final T oceado: En el documen o T oceado/Modelo-Final. x .