Big Data Jordi Sabater Picañol 16/12/2013 Directores: Manuel Pando Mones José Roldán Rosón Empresa: Everis Ponente: Ruth Raventós Pages Grado en ingeniería informática Ingeniería del software Facultat d'Informàtica de Barcelona (FIB) Universitat Politècnica de Catalunya (UPC) - BarcelonaTech ABSTRACT Español El concepto Big Data está cobrando actualmente un gran interés creciente por parte de las empresas, que ven en ello una gran ventaja competitiva. Este proyecto busca justificar este interés creciente partiendo de los conceptos más básicos de Big Data. Para alcanzar este objetivo, se ha dividido el proyecto en varias partes. En primer lugar se introduce al lector en el mundo Big Data, explicando con detalle el significado de este concepto y a qué tipo de problemas está dirigido. A continuación se estudia el estado actual del mercado Big Data, analizando la arquitectura de los sistemas Big Data y comparando las soluciones existentes. El estudio se ha centrado sobre todo en el framework más utilizado actualmente para la el desarrollo de soluciones Big Data: Hadoop. No obstante también se contemplan otro tipo de soluciones también importantes en el mundo Big Data, como las bases de datos NoSQL y las soluciones altamente escalables en Cloud. Las últimas partes del proyecto están enfocadas al ámbito práctico, haciendo uso de la solución Hadoop open source actualmente más extendida: Cloudera CDH. Sobre esta solución se han realizado un conjunto de pruebas, con el objetivo de ganar conocimiento técnico sobre las diferentes herramientas que componen el ecosistema Hadoop. Y se ha implementado un caso de uso real de Big Data. El caso de uso implementado consiste en capturar todas las menciones que se hacen en las redes sociales como Twitter, Facebook o Linkedin, sobre un producto o empresa determinado. Con los datos capturados y mediante las herramientas incluidas en la solución Cloudera CDH, se buscan los patrones más repetidos en los comentarios con la finalidad de conocer las opiniones de la gente acerca del producto o empresa buscados. Català El concepte Big Data està cobrant actualment un gran interès creixent per part de les empreses, que ven en ell un gran avantatge competitiu. Aquest projecte busca justificar aquest interès creixent partint dels conceptes més bàsics de Big Data. Per assolir aquest objectiu, s'ha dividir el projecte en diverses parts. En primer lloc s'introdueix al lector en el món Big Data, explicant amb detall el significar d'aquest concepte i a quin tipus de problemes està dirigit. A continuació s'estudia l'estat actual del mercat Big Data, analitzant la arquitectura dels sistemes Big Data i comparant les solucions existents. L'estudi s'ha centrat sobre tot en el framework més utilitzat actualment per al desenvolupament de soluciones Big Data: Hadoop. No obstant, també es contemplen altres tipus de solucions no menys importants en el món Big Data, com les bases de dades NoSQL i les solucions altament escalables en Cloud. Les últimes parts del projecte estan enfocades al àmbit pràctic, fent ús de la solució Hadoop open source actualment més estesa: Cloudera CDH. Sobre aquesta solució s'han realitzat un conjunt de proves, amb l'objectiu de guanyar coneixement tècnic sobre les diferents eines que composes l'ecosistema Hadoop. I s'ha implementat un cas d'ús real de Big Data. El cas d'ús implementat consisteix en capturar totes les mencions que es fan en las xarxes socials com Twitter, Facebook o Linkedin, sobre un producte o empresa determinat. Amb les dades capturades i mitjançant les eines incloses en la solució Cloudera CDH, es cerquen els patrons més repetits en els comentaris amb la finalitat de conèixer les opinions de la gent sobre el producte o empresa cercats. English The Big Data concept is nowadays gaining a big growing interest by companies which see this as a competitive advantage. This project seeks to justify the growing interest starting from the most basic concepts of Big Data. To achieve this goal, the project has been divided into several parts. In the first place the reader is introduced to the world of Big Data, explaining in detail the meaning of this concept and what kind of problems it is addressed. Then the current state of the Big Data market is studied by analyzing the architecture of Big Data systems and comparing the existing solutions. The study has been focused primarily on most currently used framework for developing Big Data solutions: Hadoop. However other important solutions in the Big Data world are also contemplated, such as NoSQL databases and the highly scalable solutions in Cloud. The last parts of the project are focused on the practical level, making use of the currently most widespread Hadoop open source solution: Cloudera CDH. Over this solution has been made a set of tests in order to gain technical knowledge about the different tools that compose the Hadoop ecosystem. And an actual Big Data use case has been implemented. The implemented use case consists of capturing all the mentions made in social networks like Twitter, Facebook or Linkedin, on a particular product or company. With the captured data and using the tools included in the Cloudera CDH solution, the most repeated patterns in the comments are sought in order to know the views of people about the product or company being searched. Todo el código generado durante el desarrollo de este proyecto está disponible en el repositorio GitHub BecaBigData: https://github.com/LinJuuichi/BecaBigData CONTENIDO Parte I: GESTIÓN DEL PROYECTO ............................................................................................. 1 1. Contextualización ................................................................................................................... 2 2. Planificación ........................................................................................................................... 4 2.1. Planificación inicial ........................................................................................................ 4 2.2. Planificación Final .......................................................................................................... 8 3. Presupuesto ......................................................................................................................... 12 4. División del trabajo .............................................................................................................. 14 5. Competencias técnicas ........................................................................................................ 18 Parte II: BIG DATA .................................................................................................................... 21 1. Introducción ......................................................................................................................... 22 2. ¿Qué es Big Data? ................................................................................................................ 23 3. Casos de uso ......................................................................................................................... 25 4. Arquitectura ......................................................................................................................... 29 4.1. Recolección ................................................................................................................. 29 4.2. Almacenamiento ......................................................................................................... 30 4.2.1 Bases de Datos NoSQL ............................................................................................. 30 4.3. Procesamiento y Análisis / Bussiness Intelligence ...................................................... 34 4.4. Visualización ................................................................................................................ 34 4.5. Administración ............................................................................................................ 35 5. Paradigmas ........................................................................................................................... 36 5.1. Map-Reduce ................................................................................................................ 36 5.2. Bases de datos relacionales MPP ................................................................................ 38 Comparación ............................................................................................................................ 38 6. Tipos de soluciones .............................................................................................................. 42 6.1. Software ...................................................................................................................... 42 6.2. Appliance ..................................................................................................................... 43 6.3. Cloud ........................................................................................................................... 44 Comparación ............................................................................................................................ 44 Parte III: HADOOP .................................................................................................................... 47 1. Hadoop ................................................................................................................................. 48 1.1. HDFS ............................................................................................................................ 50 1.2. MapReduce ................................................................................................................. 59 1.3. YARN ............................................................................................................................ 65 2. Herramientas del ecosistema Hadoop ................................................................................. 68 2.1. Ambari ......................................................................................................................... 68 2.2. Cascading ..................................................................................................................... 70 2.3. Flume ........................................................................................................................... 71 2.4. HBase ........................................................................................................................... 73 2.5. HCatalog ...................................................................................................................... 75 2.6. Hive .............................................................................................................................. 75 2.7. Hue .............................................................................................................................. 76 2.8. Mahout ........................................................................................................................ 77 2.9. Oozie............................................................................................................................ 78 2.10. Sqoop........................................................................................................................... 79 2.11. Whirr ........................................................................................................................... 80 Parte IV: ANÁLISIS DE SOLUCIONES BIG DATA .................................................................... 81 1. Distribuciones Hadoop (Software) ....................................................................................... 82 1.1. Cloudera ...................................................................................................................... 83 1.2. Hortonworks Data Platform ........................................................................................ 88 1.3. IBM InfoSphere BigInsights ......................................................................................... 93 1.4. MapR ......................................................................................................................... 103 Tabla comparativa ................................................................................................................. 108 2. Hadoop as a service (Cloud) ............................................................................................... 115 2.1. Amazon EMR (Elastic MapReduce) ........................................................................... 115 2.2. Microsoft Windows Azure HDInsight ........................................................................ 118 Parte V: ESTUDIO TÉCNICO DE UNA SOLUCIÓN BIG DATA EXISTENTE. CLOUDERA CDH4 ................................................................................................................................................... 120 1. Cloudera CDH4 ................................................................................................................... 121 2. Entorno de trabajo ............................................................................................................. 123 3. Plan de pruebas ................................................................................................................. 126 4. Pruebas .............................................................................................................................. 128 4.1. Administración .......................................................................................................... 128 4.2. Mahout ...................................................................................................................... 138 4.3. Bases de Datos .......................................................................................................... 140 4.4. Data Warehouse (Hive) ............................................................................................. 141 4.5. MPP (Impala) ............................................................................................................. 149 Parte VI: CASO DE USO. ANÁLISIS DE LA IMAGEN DE UN PRODUCTO A TRAVÉS DE LAS REDES SOCIALES ...................................................................................................................... 157 1. Introducción ....................................................................................................................... 158 2. Análisis de la imagen de un producto a través d e las redes sociales................................ 160 2.1. Pre procesamiento del texto ..................................................................................... 163 2.2. Búsqueda de patrones .............................................................................................. 166 2.3. Automatización del workflow ................................................................................... 168 3. Resultados obtenidos......................................................................................................... 173 Parte VII: CASO DE USO. ANÁLISIS DE FICHEROS LOG ...................................................... 174 1. Introducción ....................................................................................................................... 175 2. Análisis de ficheros log ....................................................................................................... 176 3. Comparación entre soluciones .......................................................................................... 180 Conclusión ................................................................................................................................. 181 Glosario ..................................................................................................................................... 185 Bibliografía ................................................................................................................................ 189 Anexos ....................................................................................................................................... 197 A1. Especificaciones de hardware y software ....................................................................... 197 A2. Instalación del clúster ...................................................................................................... 199 Parte I: GESTIÓN DEL PROYECTO 1. CONTEXTUALIZACIÓN El proyecto Big Data se ha desarrollado en la empresa Everis y ha sido el resultado de la colaboración con otro estudiante de la Facultad de Informática de Barcelona, Robert Serrat Morros. A pesar de que Big Data es un término que ya se utiliza desde hace tiempo, no ha sido hasta hace poco que ha cobrado un gran interés por parte de las empresas. Debido a este auge actualmente Big Data se ha convertido en un concepto muy extenso, abarcando un gran abanico de conocimientos como bases de datos NoSQL, servicios en cloud, y nuevos modelos de programación. Definir el alcance del proyecto para poder ajustarlo al tiempo disponible, es por lo tanto, muy importante para no quedar a la deriva ante tantos nuevos conceptos y conocimientos. No obstante, antes de poder determinar el alcance del proyecto es necesario especificar unos objetivos. Los objetivos de este proyecto son cuatro: • Entender con un gran nivel de detalle el significado del concepto Big Data. • Comprender y analizar el estado actual del mercado entorno a Big Data. • Realizar un estudio práctico sobre una solución Big Data existente. • Implementar un caso de uso Big Data real en la solución escogida en el objetivo anterior. Teniendo en cuenta los objetivos anteriores, el proyecto se ha dividido en tres fases. Cada una desglosada en varios puntos. 1. Estudio teórico de la situación actual de Big Data. • Definición del concepto de Big Data y análisis de por qué ha surgido. • Identificación de los casos de uso en los que es necesario o aconsejable utilizar una herramienta o solución Big Data. • Estudio y comparación de los diferentes paradigmas Big Data. • Estudio de la arquitectura Big Data general. • Estudio y comparación de las diferentes herramientas y soluciones Big Data. 2. Estudio técnico de una solución Big Data existente. • Diseño y planificación de las pruebas a realizar sobre la solución Big Data escogida. Pruebas de rendimiento, tolerancia a errores, usabilidad, etc. • Instalación y configuración de un clúster con la solución escogida. • Realización de las pruebas diseñadas en el primer apartado de la segunda fase y anotación de resultados. • Análisis de los resultados obtenidos y documentación de las conclusiones. 3. Implementación de un caso de uso real con la solución Big Data estudiada en la segunda fase. • Diseño del caso de uso y selección de las herramientas a utilizar. • Implementación del caso de uso. Gestión del proyecto | Contextualización 2
Description: