//img.uscri.be/pth/25a7e19eb7d9d7ab9be1054f95e03bf11eb59b57
Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

Evaluación de la herramienta de código libre Apache Hadoop

De
153 pages

La capacidad de los discos duros ha aumentado en gran medida a lo largo de los años. Las aplicaciones modernas manejan grandes volúmenes de datos y en ocasiones, los usuarios se encuentran con ficheros de varios gigabytes e incluso mayores. Los sistemas de ficheros tradicionales alcanzan pronto sus límites con esta clase de datos y rendimiento. Además, al análisis de estos grandes volúmenes de información resulta complejo, sino irrealizable, en una única computadora o servidor. Como una de las posibles soluciones a este problema se encuentra MapReduce, un modelo de programación diseñado por Google. En concreto en este trabajo se utilizan una implementación código libre de MapReduce llamada Hadoop. Este proyecto trata de hacer un estudio de esta herramienta, Hadoop, en la que se analiza el rendimiento de una aplicación MapReduce escrita en Java. El estudio se realizará sobre varios clusters de máquinas, aprovechando la capacidad de procesamiento de estos y la fiabilidad y tolerancia a fallos que facilita el modelo MapReduce. ___________________________________________________________________________________________________________________________
The capacity of hard drives has increased greatly over the years. Modern applications handle large volumes of data, at times, users are faced with multi-gigabyte files and even higher. The traditional file systems soon reach their limits with this kind of data and performance. In addition, the analysis of these large volumes of information is complex and sometimes impossible, on a single computer or server. MapReduce could be considered as a possible solutions to this problema. It is a programming model designed by Google. Specifically, an open source implementation of MapReduce, called Hadoop, is used in this paper. The aim of this project is to study this tool, Hadoop, analising the performance of a Java based MapReduce application. This study will be carried out by using several computer clusters taking advantage of their processing capability, reliability and failover, which make the MapReduce model easier.
Ingeniería Técnica en Telemática
Voir plus Voir moins






Evaluación de la
herramienta de código
libre Apache Hadoop
Universidad Carlos III de Madrid
Escuela Politécnica Superior


Proyecto Fin de Carrera


INGENIERÍA TÉCNICA DE TELECOMUNICACIÓN:
TELEMÁTICA


Autora:
MªCarmen Palacios Díaz-Zorita
Tutor:
Norberto Fernández García
Leganés, Noviembre de 2011Evaluación de la herramienta de código libre Apache Hadoop


Resumen
La capacidad de los discos duros ha aumentado en gran medida a lo largo de
los años. Las aplicaciones modernas manejan grandes volúmenes de datos y
en ocasiones, los usuarios se encuentran con ficheros de varios gigabytes e
incluso mayores. Los sistemas de ficheros tradicionales alcanzan pronto sus
límites con esta clase de datos y rendimiento. Además, al análisis de estos
grandes volúmenes de información resulta complejo, sino irrealizable, en una
única computadora o servidor.
Como una de las posibles soluciones a este problema se encuentra
MapReduce, un modelo de programación diseñado por Google. En concreto
en este trabajo se utilizan una implementación código libre de MapReduce
llamada Hadoop.
Este proyecto trata de hacer un estudio de esta herramienta, Hadoop, en la
que se analiza el rendimiento de una aplicación MapReduce escrita en Java.
El estudio se realizará sobre varios clusters de máquinas, aprovechando la
capacidad de procesamiento de estos y la fiabilidad y tolerancia a fallos que
facilita el modelo MapReduce.

iii Evaluación de la herramienta de código libre Apache Hadoop

Abstract
The capacity of hard drives has increased greatly over the years. Modern
applications handle large volumes of data, at times, users are faced with
multi-gigabyte files and even higher. The traditional file systems soon reach
their limits with this kind of data and performance. In addition, the analysis
of these large volumes of information is complex and sometimes impossible,
on a single computer or server.
MapReduce could be considered as a possible solutions to this problema. It is
a programming model designed by Google. Specifically, an open source
implementation of MapReduce, called Hadoop, is used in this paper.
The aim of this project is to study this tool, Hadoop, analising the
performance of a Java based MapReduce application. This study will be
carried out by using several computer clusters taking advantage of their
processing capability, reliability and failover, which make the MapReduce
model easier.

v Evaluación de la herramienta de código libre Apache Hadoop
ÍNDICE DE CONTENIDOS
Resumen ..................................................................................................................... iii
Abstract........................ v
ÍNDICE DE CONTENIDOS ................................................................................... vii
ÍNDICE DE FIGURAS .............................. xi
ÍNDICE DE TABLAS ................................................................ xvi
1. INTRODUCCIÓN .............................. 1
1.1. Motivación del Proyecto ............................................................................. 1
1.2. Objetivos ....................................... 4
1.3. Estructura de la memoria ........................................................................... 4
2. ESTADO DEL ARTE.......................................................................................... 7
2.1. MapReduce................................... 7
2.1.1. Introducción .......................................................................................... 7
2.1.2. Funcionamiento .................. 10
2.1.3. Flujo de Datos ..................................................................................... 12
2.1.4. Implementación .................. 14
2.1.5. Fiabilidad y tolerancia a fallos ......................................................... 17
2.1.6. Implementaciones .............................................. 19
2.1.7. Ejemplos de uso .................................................. 20
2.2. Google File System .................................................... 21
2.2.1. Introducción ........................................................ 21

vii Evaluación de la herramienta de código libre Apache Hadoop
2.2.2. Diseño .................................................................................................. 22
2.2.3. Arquitectura ........................ 22
2.2.4. Máster (Maestro) ................................................................................ 25
2.2.5. Tamaño de los trozos ......... 25
2.2.6. Metadatos ............................................................................................ 25
2.3. Hadoop ....................................... 26
2.3.1. Introducción ........................................................................................ 26
2.3.2. Arquitectura 28
2.3.3. Modos de ejecución ........................................................................... 29
2.3.4. Ejemplos de uso .................. 29
2.4. HDFS: Hadoop Distributed File System ................................................ 30
2.4.1. Arquitectura ........................................................ 31
2.4.2. Características ..................................................... 32
3. DISEÑO E IMPLEMENTACIÓN .................................. 35
3.1. Instalación y Configuración de Hadoop ................................................ 35
3.1.1. Java ....................................................................... 35
3.1.2. Configuración ssh .............................................. 36
3.1.3. Instalación de Hadoop ...................................... 37
3.1.4. Configuración de Hadoop ................................ 38
3.1.5. Ejecución de Hadoop ......................................... 42
3.2. Entorno de pruebas ................................................... 43
3.2.1. Máquinas ............................................................. 43
3.2.2. Datos .................................................................... 44
3.3. Pruebas ........................................ 46
3.3.1. Prueba 1 ............................................................... 50
3.3.2. Prueba 2 ................................ 51

viii Evaluación de la herramienta de código libre Apache Hadoop
3.3.3. Prueba 3 ............................................................................................... 52
3.3.4. Prueba 4 53
3.3.5. Prueba 5 ............................................................................................... 54
4. VALIDACIÓN .................................. 55
4.1. Scripts .......................................................................... 55
4.2. Escenarios ................................... 59
4.2.1. Un Nodo .............................................................................................. 61
4.2.2. Dos Nodos ........................... 69
4.2.3. Tres Nodos .......................................................................................... 77
4.2.4. Cuatro Nodos ..................... 85
4.3. Interpretación de los Resultados ............................................................. 93
4.4. Resultados .................................................................. 95
4.4.1. Prueba 1 ............................................................... 95
4.4.2. Prueba 2 ................................ 97
4.4.3. Prueba 3 ............................................................... 99
4.4.4. Prueba 4 ............................................................. 101
4.4.5. Prueba 5 ................................ 103
4.5. Conclusiones de los resultados ............................. 105
5. CONCLUSIONES Y LÍNEAS FUTURAS ................................................... 107
5.1. Conclusiones ............................................................ 107
5.2. Líneas futuras ........................................................... 108
ANEXO A: PRESUPUESTO ................................................. 111
A.1. Costes de Personal ............................................... 111
A.2. Costes de Materiales ............................................ 112
A.3. Presupuesto Total ................................................ 113

ix Evaluación de la herramienta de código libre Apache Hadoop
ANEXO B: INSTALACIÓN Y CONFIGURACIÓN DE HADOOP EN
UN SOLO NODO................................................................................................... 115
B.1. Instalación ............................. 115
B.3. Configuración ....................................................................................... 116
B.3.1. Hadoop .......................... 116
B.3.2. Configuración de SSH ................................................................. 117
B.4. Puesta en marcha ................................................................................. 118
B.5. Ejecución de un trabajo MapReduce ................. 118
B.6. Uso ......................................................................................................... 120
ANEXO C: DESARROLLO CON ECLIPSE ....................................................... 123
C.1. Plugin de Hadoop para ECLIPSE ...................... 123
C.2. Configuración del entorno de desarrollo ......................................... 124
C.3. Crear una nueva aplicación ................................ 125
Bibliografía .............................................................................................................. 133



x