scieee Open visual document viewer

Paralelización de algoritmos de minería de textos con Hadoop

Carrasco Barrios, Elena

Abstract

Este Trabajo Fin de Grado (TFG) tiene como objetivos paralelizar algoritmos de minería de textos para poder permitir su ejecución con una gran cantidad de textos en el menor tiempo posible y con usuarios concurrentes, y la creación de un modelo de datos RDF con las anotaciones generadas por el algoritmo en los documentos. La paralelización se ha realizado siguiendo la filosofía MapReduce. En la fase del mapper se realiza la ejecución del algoritmo de minería de textos sobre el texto de entrada y se genera el modelo RDF asociado a ese texto. La fase del reducer se encarga de unir todos los modelos RDF que hagan referencia a textos de un documento en un único modelo global. El resultado de la ejecución de este programa son pares <nombre del documento, modelo RDF>. Para cumplir con el segundo objetivo se ha desarrollado otra aplicación que une todos los modelos generados por el programa anterior en un solo modelo. El desarrollo del sistema se ha realizado usando Java SE y las tecnologías Apache Hadoop, Gate y Apache Jena. En este trabajo se expondrán un sistema capaz de paralelizar algoritmos de minería de textos desarrollados en GATE y crear el modelo RDF correspondiente a las anotaciones generadas a partir de los textos, las conclusiones alcanzadas a raíz de este trabajo y algunas propuestas de trabajos futuros.

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 .