Click here to load reader

Procesamientomasivodedatosvía Hadoop · PDF fileProcesamientomasivodedatosvía Hadoop Autor: Daniel García Llorente Director: Carles Rius Cruz Institución del Director: Universitat

  • View
    224

  • Download
    1

Embed Size (px)

Text of Procesamientomasivodedatosvía Hadoop · PDF fileProcesamientomasivodedatosvía...

  • Procesamiento masivo de datos vaHadoop

    Autor:Daniel Garca Llorente

    Director:Carles Rius CruzInstitucin del Director:Universitat Internacional de Catalunya (UIC)

    Ponente/Secretario:Fatos XhafaDepartamento del ponente:Departament de Llenguatges i Sistemes Informtics (LSI)

    Centro/institucin/empresa donde se ha realizado el PFC:Universitat Internacional de Catalunya (UIC)

    Titulacin:Ingeniera en Informtica

    Centro:Facultat dInformtica de Barcelona (FIB)

    Universidad:Universitat Politcnica de Catalunya (UPC)

    18 de junio de 2014

  • Agradecimientos

    Me gustara agradecer a cuantos, de algn modo, han contribuido a este proyecto ya las personas que me han ayudado durante este largo camino. Con mencin especialpara:

    Fatos Xhafa, por su apoyo, paciencia y ayuda durante estos meses.

    Gabriel Verdejo e Ivan Couto, por su trabajo y dedicacin en el clster del RDlaby su rpida y eficiente actuacin ante los problemas surgidos.

    Al personal de la UIC con los que he compartido estos meses y me han ayudadoy dado soporte cuando ha sido necesario, en especial, a Carles Rius, director delproyecto, por su ayuda en el desarrollo.

    A Vicente y Jordi Xavier, directores del Departament dInnovaci Tecnolgic (DIT),por darme la oportunidad y confiar en m para realizacin del proyecto.

    A Daniel Ramrez, mi compaero del proyecto, por haber sido de soporte en lasdificultades y ofrecer siempre otro punto de vista.

    A mi novia, Evelyn, por estar siempre ah, creer en m y darme apoyo durante lacarrera y todos esos fines de semana de proyecto.

    A mi familia, en especial a mis padres, por estar siempre a mi lado y sobretodo pordarme la oportunidad de estudiar y poder estar escribiendo hoy estas lneas.

    Finalmente, agradecer a todos los profesores y amigos que durante todos estos aosme han ayudado a estar aqu hoy.

    1

  • ndice general

    1. Introduccin 91.1. Cmo naci el proyecto . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. mbito del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3. Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5. Planificacin del proyecto . . . . . . . . . . . . . . . . . . . . . . . 121.6. Organizacin de la memoria . . . . . . . . . . . . . . . . . . . . . . 14

    2. Anlisis 152.1. Problemtica asociada . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.1.1. Qu es un log . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.2. Cules son los diferentes tipos de logs . . . . . . . . . . . . . 15

    2.1.2.1. Logs de sistema . . . . . . . . . . . . . . . . . . . . 162.1.2.2. Logs de servidor . . . . . . . . . . . . . . . . . . . 172.1.2.3. Logs de base de datos . . . . . . . . . . . . . . . . 182.1.2.4. Logs de aplicaciones . . . . . . . . . . . . . . . . . 182.1.2.5. Logs de comunicacin . . . . . . . . . . . . . . . . 18

    2.1.3. Estructura y propiedades de los logs . . . . . . . . . . . . . 192.1.3.1. Logs Apache . . . . . . . . . . . . . . . . . . . . . 202.1.3.2. Logs Squid . . . . . . . . . . . . . . . . . . . . . . 21

    2.1.4. Porqu debemos utilizar Hadoop? . . . . . . . . . . . . . . 222.2. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    2.2.1. Prioridad de los requisitos . . . . . . . . . . . . . . . . . . . 242.2.2. Descripcin de los requisitos . . . . . . . . . . . . . . . . . . 25

    2.2.2.1. Crear un nuevo procesamiento de log . . . . . . . . 252.2.2.2. Seleccionar un archivo de log . . . . . . . . . . . . 252.2.2.3. Parametrizacin del procesamiento de un log . . . . 262.2.2.4. Seleccin del formato de salida de un procesamiento

    de log . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.2.5. Iniciar proceso log . . . . . . . . . . . . . . . . . . 272.2.2.6. Monitorizacin de Hadoop . . . . . . . . . . . . . . 282.2.2.7. Anular el procesamiento de un log . . . . . . . . . 292.2.2.8. Obtencin de resultados . . . . . . . . . . . . . . . 292.2.2.9. Exportacin del fichero resultado en formato base

    de datos . . . . . . . . . . . . . . . . . . . . . . . . 30

    2

  • Procesamiento masivo de datos va Hadoop

    3. Tecnologas 313.1. Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.1.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.2. Funcionamiento de Hadoop . . . . . . . . . . . . . . . . . . 35

    3.1.2.1. HDFS: Hadoop Distributed File System . . . . . . 353.1.2.2. MapReduce . . . . . . . . . . . . . . . . . . . . . . 383.1.2.3. Hadoop1 (MapReduce) . . . . . . . . . . . . . . . . 413.1.2.4. Hadoop2 (YARN) . . . . . . . . . . . . . . . . . . 46

    3.1.3. Algunos ejemplos de empresas que usan Hadoop . . . . . . . 503.2. Bases de datos Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . 51

    3.2.1. HBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2.1.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . 523.2.1.2. RegionServer . . . . . . . . . . . . . . . . . . . . . 55

    3.2.2. Otras Bases de datos . . . . . . . . . . . . . . . . . . . . . . 573.2.2.1. Cassandra . . . . . . . . . . . . . . . . . . . . . . . 573.2.2.2. MongoDB . . . . . . . . . . . . . . . . . . . . . . . 583.2.2.3. Hive . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    3.3. Frameworks sobre Hadoop . . . . . . . . . . . . . . . . . . . . . . . 593.3.1. Ambari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3.2. HUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3.3. Cloudera Distribution Incuding Apache Hadoop (CDH) . . . 63

    3.4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    4. Especificacin y diseo 664.1. Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    4.1.1. Crear Procesamiento de log . . . . . . . . . . . . . . . . . . 674.1.1.1. Parametrizar el procesamiento del log . . . . . . . 694.1.1.2. Iniciar el procesamiento del log . . . . . . . . . . . 70

    4.1.2. Listar los procesamientos de log . . . . . . . . . . . . . . . . 714.1.2.1. Obtener los resultados de un procesamiento de log 724.1.2.2. Detener una tarea de procesamiento de log . . . . . 744.1.2.3. Exportar el resultado de un proceasamiento de log 75

    4.1.3. Monitorizar Hadoop . . . . . . . . . . . . . . . . . . . . . . 774.2. Modelo conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.3. Desacoplamiento de las clases . . . . . . . . . . . . . . . . . . . . . 794.4. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    5. Implementacin 835.1. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . 83

    5.1.1. Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.1.2. Herramientas de desarrollo . . . . . . . . . . . . . . . . . . . 84

    5.1.2.1. NetBeans . . . . . . . . . . . . . . . . . . . . . . . 845.1.2.2. Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.1.2.3. Sublime Text 3 . . . . . . . . . . . . . . . . . . . . 85

    5.1.3. Soporte Online . . . . . . . . . . . . . . . . . . . . . . . . . 865.1.4. Otro software . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    3

  • Procesamiento masivo de datos va Hadoop

    5.2. Implementacin de la aplicacin . . . . . . . . . . . . . . . . . . . . 875.2.1. Ordenacin y claves . . . . . . . . . . . . . . . . . . . . . . . 875.2.2. Mappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    5.2.2.1. LogMapper . . . . . . . . . . . . . . . . . . . . . . 895.2.2.2. LogMapperHBase . . . . . . . . . . . . . . . . . . . 90

    5.2.3. Reducers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.2.3.1. LogReducer . . . . . . . . . . . . . . . . . . . . . . 925.2.3.2. LogReducerHBase . . . . . . . . . . . . . . . . . . 925.2.3.3. CombinerClass . . . . . . . . . . . . . . . . . . . . 94

    5.2.4. Configuracin de la aplicacin . . . . . . . . . . . . . . . . . 955.3. Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    6. Experimentacin 996.1. Planificacin de la experimentacin . . . . . . . . . . . . . . . . . . 100

    6.1.1. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.2. Obtencin de los resultados . . . . . . . . . . . . . . . . . . . . . . 1016.3. Experimento 1: Potencial de Hadoop . . . . . . . . . . . . . . . . . 102

    6.3.1. Resultados del Experimento 1 . . . . . . . . . . . . . . . . . 1036.4. Experimento 2: Persistencia de logs . . . . . . . . . . . . . . . . . . 111

    6.4.1. Resultados del Experimento 2 . . . . . . . . . . . . . . . . . 1126.4.2. Reduccin obtenida de los logs . . . . . . . . . . . . . . . . . 115

    6.5. Experimento 3: Preparacin minera de datos . . . . . . . . . . . . 1166.5.1. Resultados del Experimento 3 . . . . . . . . . . . . . . . . . 117

    7. Estudio econmico del proyecto 1197.1. Costes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    7.1.1. Costes de Software . . . . . . . . . . . . . . . . . . . . . . . 1207.1.2. Costes de Hardware . . . . . . . . . . . . . . . . . . . . . . . 121

    7.1.2.1. Infraestructura real . . . . . . . . . . . . . . . . . . 1237.1.3. Costes de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 1237.1.4. Coste total del proyecto . . . . . . . . . . . . . . . . . . . . 125

    8. Recomendaciones para la UIC 126

    9. Conclusiones 1289.1. Resultados y objetivos . . . . . . . . . . . . . . . . . . . . . . . . . 1289.2. Valoracin personal . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299.3. Mejoras y lneas de trabajo futuro . . . . . . . . . . . . . . . . . . . 129

    Anexos 130

    A. Entorno de desarrollo Hadoop 131

    B. Estructura del cdigo

Search related