Inicio wiki
Aula Virtual
 Administración de Sistemas Operativos
Inicio ASO Aula Virtual

Vistas
  •   PFC Procesamiento de Grandes Volúmenes de Datos en Entornos Cloud Computing Utilizando Haddop MapReduce
De ASO

La mejora de las comunicaciones de red y el hecho de que cada vez sea más sencillo y menos costoso el acceso a la misma, está generando un modo de vida en el que podemos conectarnos a Internet desde casi cualquier dispositivo y en cualquier lugar. Este incremento ha provocado que las conexiones de red cada vez soporten mayor tráfico de datos y con mayor velocidad.

Una consecuencia positiva de este aumento de velocidad y de cantidad de tráfico soportado es que comienzan a proliferar entornos de computación distribuida que utilizan la red para entablar sus comunicaciones. Este tipo de entornos cada vez alcanzan mayor rendimiento y a menor coste, dado que pueden integrarse servidores en distintas localizaciones físicas y de distintas características hardware en un sistema comunicado en red.

Otra de las secuelas positivas que se ha producido ha sido la aparición del paradigma de computación Cloud Computing. Este tipo de sistemas combina en un sistema de computación único equipos que no tienen por qué estar físicamente en la misma ubicación e incluso no tienen que ser iguales a nivel hardware, integrando todos sus recursos como si de un solo sistema se tratase. Beneficiándose de las comunicaciones de red se crea un sistema en el que varios servidores trabajan de manera conjunta y aprovechan todos sus recursos poniéndolos a disposición del entorno global. Los sistemas Cloud Computing ofrecen a los usuarios a través de la red recursos, sistemas completos o servicios que de otra forma serían muy costosos de implantar tanto por costes hardware como de trabajo de configuración e implantación. Estos sistemas permiten al usuario abstraerse del hardware y trabajar directamente sobre el entorno aprovechando las bondades de la virtualización de servidores. La idea principal de estos entornos de servidores que forman un Cloud, es poder desplegar instancias virtuales que permitan aprovechar al máximo los recursos. Una de las principales ventajas es que no se trabaja directamente sobre los servidores y puede crear y eliminar instancias virtuales sin preocuparse sobre la compatibilidad o no del hardware y los drivers del sistema.

El objetivo principal de los entornos Cloud Computing es dotar al usuario de servicios como infraestructuras informáticas completas, plataformas para el desarrollo de aplicaciones o software, de forma general. Esta es la prestación de la empresa proveedora del Cloud a sus usuarios, siendo para estos últimos indiferente el hardware. Además, dicha empresa es la encargada del establecimiento y el mantenimiento de la infraestructura que da soporte a sus servicios. Se trata de una tendencia de computación cada vez más fiable, con una escalabilidad elástica capaz de atender exigentes cambios en la demanda sin que ello suponga incrementos en los costes de administración y gestión. Su introducción ha permitido definir un nuevo modelo por consumo de servicios adaptando nuevas formas para el cobro por recursos consumidos. Sin embargo, este entorno de desarrollo presenta algunas dudas sobre su implantación, sobre todo debido a aspectos legales, de seguridad y de preocupación por la ubicación física de los datos.

La mejora en las comunicaciones y el aumento de usuarios de la red mencionados trae consigo que cada vez sea mayor la cantidad de datos que viajan por la misma y surge la necesidad de crear entornos de computación capaces de almacenarlos y procesarlos. En este proyecto se va a tratar de utilizar un sistema Cloud Computing para integrar en él un entorno de computación distribuida capaz de procesar grandes cantidades de datos alcanzando un rendimiento eficiente.

Recientemente se ha creado un entorno de computación distribuida de alto rendimiento que tiene la capacidad de procesar grandes volúmenes de datos. Ha sido desarrollado y es mantenido por la empresa Apache y su nombre es Hadoop. Este entorno de computación permite combinar en un mismo clúster servidores con distinto hardware para que trabajen de manera distribuida configurando en cada nodo dos partes bien diferenciadas, una dedicada al almacenamiento y otra al procesamiento de los datos. El procesamiento de los datos en este marco de trabajo está orientado al uso de programas escritos en el lenguaje de programación MapReduce. Es un lenguaje basado en Java y cuya principal característica es la de procesar importantes conjuntos de datos de entrada dividiendo el trabajo global en tareas que son realizadas de manera distribuida dentro del clúster Apache Hadoop.

El objetivo principal del proyecto es unir y verificar las ventajas que proporcionan ambos entornos, Cloud Computing y computación distribuida de grandes volúmenes de datos con Apache Hadoop y MapReduce. Para ello es necesario desplegar una nube que permita aprovechar al máximo los recursos físicos disponibles mediante la instanciación de máquinas virtuales, creando dentro de ella un entorno de procesamiento distribuido Apache Hadoop MapReduce. Estas instancias de máquinas virtuales desplegadas en el entorno Cloud son las que formarán un clúster Hadoop, con tantas máquinas como los recursos permitan. Este clúster sirve de base para la realización de pruebas con aplicaciones que trabajen sobre grandes volúmenes de datos para demostrar los beneficios derivados de la integración. Todo el software que se va a emplear será de libre distribución, bajo licencia GPL (General Public License). Una vez puesto en marcha el clúster de programación MapReduce, se va a proceder a comprobar la potencia del sistema con varios ejemplos a desarrollar donde se tratará con diferentes tipos de datos como pueden ser texto, imágenes, etc. La meta final es conocer el entorno de programación Apache Hadoop MapReduce y comprobar su rendimiento para el procesamiento de grandes volúmenes de datos integrado en un entorno Cloud Computing.


Archivo:ico_pdf.gif   Descarga
Documentación
Archivo:ico_pdf.gif   Descarga
Presentación