Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERA
ESCUELA DE SISTEMAS Y COMPUTACIN
TEMA
GUA METODOLGICA PARA EL PROCESO ENSEANZA- APRENDIZAJE DE
BIG DATA.
AUTORES
ANDREA CAROLINA RAMOS RAMN
JONATHAN FABRICIO LPEZ DVILA
QUITO, 2016
GUA METODOLGICA PARA EL PROCESO ENSEANZA- APRENDIZAJE DE BIG DATA
AGRADECIMIENTO
Ha sido un largo camino por recorrer, pero ahora al finalizar mi etapa como universitaria
puedo decir que esta gran experiencia llena de altos y bajos, de buenos y malos momentos,
de desafos, aventuras y grandes aprendizajes, fue posible gracias al apoyo de personas
muy valiosas que han estado a mi lado a lo largo de este tiempo.
Quiero agradecer principalmente a Dios por darme salud y vida, as como tambin
agradecerle por brindarme la fortaleza y sabidura necesarias para poder enfrentar tanto los
retos como problemas que pudieron haberse presentado en el transcurso de este periodo
universitario.
Agradezco a mis padres Mery y Jos por ser mis guas en cada paso que he dado, por
sacrificarse a diario por brindarme la mejor educacin y los recursos necesarios para que yo
haya podido culminar con mis estudios, por sus grandes y sabios consejos que han sido mi
pilar a lo largo de mi vida y sobretodo, por ser los mejores padres que Dios pudo haberme
dado el gusto de tener. Al mismo tiempo, agradezco a mi familia por ser un apoyo
emocional en cada momento.
Tambin le doy las gracias a una persona muy especial para m, a Jonathan, por haber
compartido conmigo experiencias, emociones, alegras, desafos, dificultades y momentos
importantes e inolvidables. Gracias por tus consejos, paciencia, apoyo y entereza, ya que
con estas virtudes juntos logramos realizar y finalizar productivamente este trabajo de
disertacin. Adems, gracias por haberme enseando muchas cosas y por estar junto a m
en este largo camino.
Finalmente, quiero agradecer a mis mejores amigas Gabriela y Andrea por su amistad
incondicional, apoyo, cario y por estar junto a m en los buenos y malos momentos. Y a
mis maestros Suyana, Alfredo y Damin, ya que sin ustedes la culminacin de este trabajo
no hubiera sido posible.
Carolina Ramos R.
DEDICATORIA
Quiero dedicar este trabajo de disertacin a mis padres Mery y Jos por ser quienes con su
sacrificio me han permitido llegar hasta este punto, por ensearme a perseguir mis metas,
adems de ser mis guas, mi fuente de inspiracin y de amor.
Carolina Ramos R.
AGRADECIMIENTO
A todas las personas que da a da me brindaron su apoyo incondicional en estos aos de
preparacin, a mis padres, hermana, Carolina, a mis profesores que me brindaron su apoyo
en la realizacin del presente trabajo de disertacin.
En especial a Ing. Alfredo Caldern quien me brind su apoyo y su amistad en el trascurso
de estos aos.
Jonathan Lpez
DEDICATORIA
Dedico este trabajo a mi familia, quienes me han apoyo a lo largo de mi vida brindndome
su apoyo y ensendome que la fortaleza, dedicacin y perseverancia son los pilares
fundamentales en la vida.
Jonathan Lpez
Tabla de contenido
Prefacio ............................................................................................................................................ 13
Antecedentes o Marco Referencial ............................................................................................ 15
JUSTIFICACIN .............................................................................................................................. 15
PROBLEMA ..................................................................................................................................... 16
Planteamiento del Problema ................................................................................................... 16
OBJETIVOS ..................................................................................................................................... 16
General ......................................................................................................................................... 16
CAPTULO I: QE ES BIG DATA? ........................................................................................... 17
1.1. Definicin ......................................................................................................................... 17
1.1.1. Las 4 Vs de Big Data............................................................................................. 18
1.2. Historia/Evolucin .......................................................................................................... 19
1.3. Importancia ...................................................................................................................... 21
1.3.1. Prediccin de eventos con Big Data ................................................................. 23
1.4. Conceptos Generales del Captulo ............................................................................ 23
1.4.1. Tabla de equivalencias de Informtica.............................................................. 23
1.4.2. Datos estructurados, no estructurados y semi estructurados ................... 24
1.4.3. Base de datos.......................................................................................................... 25
1.4.4. Business Intelligence (Inteligencia de Negocio, BI) ...................................... 25
CAPITULO II: Generalidades de Big Data ................................................................................ 26
2.1. reas de Big Data .......................................................................................................... 26
2.1.1. Recoleccin ............................................................................................................. 26
2.1.2. Almacenamiento ..................................................................................................... 27
2.1.3. Anlisis ..................................................................................................................... 29
2.1.4. Visualizacin ........................................................................................................... 32
2.2. Paradigmas de Big Data ............................................................................................... 32
2.2.1. MapReduce .............................................................................................................. 33
2.2.2. Procesamiento Masivo en Paralelo (Massively Parallel Processing MPP)
46
2.3. Conceptos Generales del Captulo ............................................................................ 46
2.3.1. Sistema de ficheros distribuidos. ...................................................................... 46
2.3.2. Clster ....................................................................................................................... 46
2.3.3. Cloud Computing ................................................................................................... 47
2.3.4. Bases de Datos ....................................................................................................... 47
CAPITULO III: Herramientas y tecnologas de Big Data ....................................................... 50
ndice de Figuras.
Figura 1.1: Las 4 Vs de Big Data .................................................................................................. 19
Figura 1.2: Historia/Evolucin Big Data. ....................................................................................... 21
Figura 1.3: Crecimiento de los datos a nivel mundial Fuente: (Shakuntala Gupta &
Sabharwal, 2015) ............................................................................................................................. 21
Figura 2.1: Archivo de texto con datos estructurados acerca de los aeropuertos. ................. 27
Figura 2.2: Visualizacin de datos en R. ...................................................................................... 30
Figura 2.3: Visualizacin de Atacames en ArcGis....................................................................... 31
Figura 2.4: Visualizacin de los puntos recogidos. ..................................................................... 31
Figura 2.5: Visualizacin de las reas identificadas. .................................................................. 32
Figura 2.6: Esquema de un clculo MapReduce. Fuente: (Leskovec, Rajaraman , & Ullman,
2014) .................................................................................................................................................. 34
Figura 2.7: Esquemtica de un clculo MapReduce. Fuente: (Leskovec R. a.) .................... 37
Figura 2.8: Visualizacin de Matriz M y Vector v ......................................................................... 38
Figura 2.9: Matriz Dispersa............................................................................................................. 40
Figura 2.10: Resultado Matriz C. ................................................................................................... 41
Figura 2.11: Representacin de la Matriz como una lista de elementos no nulos. ................. 41
Figura 2.12: Tarea Map de la multiplicacin de la matriz. ....................................................... 42
Figura 2.13: Tarea Reduce de la Multiplicacin de la matriz. ................................................. 43
Figura 2.14: Tarea Map de la multiplicacin de la matriz. ....................................................... 44
Figura 2.15: Resultado Final de la multiplicacin de matrices. .................................................. 45
Figura 2.16: Ejemplo de cubo de datos. Fuente: (Trujillo, Diseo y explotacin de
almacenes de datos: conceptos bsicos de modelado multidimensional., 2013) ................... 48
Figura 2.17: Ejemplo de tabla multidimensional. Fuente: (Trujillo, Diseo y explotacin de
almacenes de datos: conceptos bsicos de modelado multidimensional., 2013) ................... 49
Figura 3.1: Oracle Big Data Appliance Fuente: (Oracle, 2016) ................................................. 54
Figura 4.107: Comprobacin de los componentes que se estn ejecutando. ....................... 116
Figura 4.108: Vista en el explorador de los resultados del proceso ejecutado en Hadoop. 117
Figura 4.109: Vista en el explorador de los resultados del proceso ejecutado en Hadoop. 118
Figura 4.110: Vista en el explorador de la informacin de Hadoop. ....................................... 119
Figura 4.111: Vista en el explorador de la informacin de Hadoop. ....................................... 120
Figura 4.112: Rendimiento de la mquina antes de la ejecucin de Hadoop. ...................... 121
Figura 4.113: Rendimiento de la mquina al inicio de la ejecucin de Hadoop. ................... 122
Figura 4.114: Rendimiento de la mquina durante la ejecucin de Hadoop. ........................ 123
Figura 4.115: Eclipse, pgina web............................................................................................... 124
Figura 4.116: Copiar eclipse, a la direccin de usuario. ........................................................... 125
Figura 4.117: Verificar el archivo copiado. ................................................................................. 125
Figura 4.118: Descomprimir el archivo. ...................................................................................... 125
Figura 4.119: Enlace a directorio /bin.......................................................................................... 125
Figura 4.120: Editar lanzador de Gnome. ................................................................................... 126
Figura 4.121: Editar lanzador de Gnome con gestor vi. ........................................................... 127
Figura 4.122: Resultado del lanzador. ........................................................................................ 127
Figura 4.123: Directorio de Eclipse. ............................................................................................ 128
Figura 4.124: Seleccin de Java Project. ................................................................................... 129
Figura 4.125: Nombre de la aplicacin. ...................................................................................... 129
Figura 4.126: Creacin de la clase. ............................................................................................. 130
Figura 4.127: Importar libreras. ................................................................................................... 131
Figura 4.128: Importar libreras jar externas. ............................................................................. 132
Figura 4.129: Destino de Exportacin JAR file. ......................................................................... 134
Figura 4.130: Guardar .jar en la direccin establecida. ............................................................ 135
Figura 4.131: Archivo de texto. .................................................................................................... 135
Figura 4.132: Verificar el almacenamiento de los archivos. ..................................................... 136
Figura 4.133: Acceder a la carpeta que contiene archivos ...................................................... 136
Figura 4.134: Copiar archivo a sistema hdfs. ............................................................................. 136
Figura 4.135: Consulta del fichero con permisos -rw-r--r--. ...................................................... 137
Figura 4.136: Ejecucin en Hadoop con archivos de texto. ..................................................... 137
Figura 4.137: Resultado de operacin. ....................................................................................... 138
Figura 4.138: Resultado de operacin 2. .................................................................................... 138
Figura 4.139: Resultado final Word Count. ................................................................................ 139
Figura 4.140: Estructura de Tweets. ........................................................................................... 140
Figura 4.141: Diagrama de flujo del proceso de recoleccin de Tweets. ............................... 142
Figura 4.142: Instalacin repositorio actual de CouchDB. ....................................................... 143
Figura 4.143: Actualizacin de los paquetes.............................................................................. 143
Figura 4.144: Eliminar binarios de CouchDB. ............................................................................ 144
Figura 4.145: Instalar CouchDB ................................................................................................... 144
Figura 4.146: Para CouchDB ....................................................................................................... 144
Figura 4.147: Arrancar servicio de CouchDB. ............................................................................ 145
Figura 4.148: Verificar si se encuentra encendido CouchDB. ................................................. 145
Figura 4.149: Acceso a CouchDB y a sus funciones. ............................................................... 146
Figura 4.150: Instalar tweepy. ...................................................................................................... 147
Figura 4.151: Descargar librera CouchDB-09. .......................................................................... 147
Figura 4.152: Descomprimir librera. ........................................................................................... 148
ndice de Tablas
Tabla 1.1: Tabla De Unidades Bsicas De Informacin Y Tratamiento De Datos. Fuente:
(Jimnez, Big Data. Un nuevo paradigma, 2014) Elaboracin: Lpez / Ramos .................... 24
Tabla 2.1: Tipos de datos en el paradigma Big data. Fuente: (Jimnez, 2014) ..................... 34
Tabla 3.1: Costos de infraestructura y servicio Premier Support. Fuente: (Jean-Pierre
Dijcks-Oracle, 2014) ........................................................................................................................ 52
Tabla 3.2: Elementos de una implementacin de grandes volmenes de datos Mediana
Empresa de costo / beneficio. Fuente: (Nik Rouda, Senior Analyst and Adam DeMattia,
Research Analyst, 2015) ................................................................................................................. 53
Tabla 3.3: Tabla comparativa Apache Spark, Apache Hadoop, Oracle Big Data Appliance. 57
Prefacio
Durante el transcurso de esta carrera se pudo conocer la importancia que genera el poder
procesar y analizar correctamente los datos, as como las desventajas que acarrean el no
hacerlo. Se sabe que con las nuevas herramientas tecnolgicas los datos cada vez son ms
voluminosos y se transmiten ms rpidamente por lo cual ahondar en este tema es algo
atractivo. De esta manera, se ha vuelto un reto estudiar todo lo concerniente a Big Data con
el fin de obtener la mayor informacin posible que permita la elaboracin de una Gua
Metodolgica acerca del presente tema.
La idea de elaborar esta Gua Metodolgica para el Proceso Enseanza de Big Data, surgi
por la importancia que est teniendo este tema en el mundo de hoy. Todas las empresas,
compaas, organizaciones, etc. quisieran optimizar y procesar la gran cantidad de datos que
reciben diariamente para poder obtener informacin que genere valor y tomar correctamente
sus decisiones. Adems, que la mayora de informacin que se encuentra en los libros est
en otro idioma y muchas veces dicha informacin est estructurada de una manera tcnica
lo cual dificulta el fcil entendimiento y estudio de Big Data.
Por otro lado, hoy en da con el auge y la importancia que estn teniendo las redes sociales
tales como Facebook, Twitter, Linkedin, etc., representan una de las fuentes ms
significativas para obtener datos masivos, lo cual da lugar a una lnea de investigacin
importante, ya que gracias a los datos recogidos a travs de estos medios de comunicacin,
muchas empresas pueden verse beneficiadas al permitirles tener una observacin inmediata
del comportamiento de sus consumidores sin que stos se sientan observados, por ejemplo
Netflix al utilizar Big Data puede predecir lo que ms le gustar a su audiencia y
recomendarles contenido, que por cierto, su herramienta de recomendacin es una de las
cosas que ms gusta a sus usuarios. Esto es hacer Big Data, el poder integrar toda esa
informacin y obtener datos operativos.
Al mismo tiempo, Big Data est presente en los diferentes campos de las ciencias como por
ejemplo en la medicina que es donde se generan una gran cantidad de datos, muchos de
Es entonces que por estas razones se eligi elaborar esta gua en donde se hablar todo lo
referente a Big Data y a la vez, se demostrar con casos prcticos lo que es hacer Big Data
en nuestros tiempos.
JUSTIFICACIN
PROBLEMA
Planteamiento del Problema
Con el transcurso del tiempo se generan volmenes masivos de datos, lo que se conoce
como Big Data. Estos datos pueden ser irrelevantes para las personas e incluso pueden llegar
a ocupar grandes cantidades de almacenamiento, debido a que Big Data es la herramienta
que se encarga de la optimizacin de recursos y del manejo de datos; adems, la falta de
existencia de libros relacionados a este tema, informacin en ingls, costos elevados, resulta
muy difcil tanto para las empresas, profesores, estudiantes acceder y aprovechar este
conocimiento. Por lo que es necesario establecer una gua metodolgica que facilite el
aprendizaje incluyendo casos prcticos, tales como; instalacin y configuracin de un servidor
para Big data (Hadoop), ejercicios prcticos que vinculen la teora a casos funcionales.
OBJETIVOS
General
Elaborar una gua metodolgica para el proceso enseanza- aprendizaje de Big Data que
beneficie a los docentes, adems realizar la instalacin y configuracin de una plataforma
tecnolgica de Big Data.
Especficos
El objetivo de este captulo es exponer la funcin de Big data desde su historia/ evolucin, su
importancia con su respectiva relevancia actual. Con la finalidad que ms adelante sea mucho
ms fcil comprender los trminos realizados en esta gua.
1.1. Definicin
A simple vista el trmino Big Data se lo puede entender como algo que es grande y est lleno
de informacin, pero esta definicin no proporciona algo claro, ni describe lo que Big Data es
en realidad. Entonces, Qu es exactamente Big Data?, Big Data es un trmino muy conocido
en el medio actual y es a menudo descrito como conjuntos de datos que son extremadamente
grandes, es decir, que han crecido ms all de la capacidad para poder ser gestionados y
analizados con herramientas tradicionales de procesamiento de datos. En otras palabras, los
datos han crecido de manera gigante, lo cual hace dificultoso su manejo y an ms difcil el
poder extraer valor de ellos al presentarse ciertas dificultades como la adquisicin, el
almacenamiento, la bsqueda y el intercambio.
Conforme un estudio realizado por Cisco, entre el 2015 y el 2020 el trfico de datos mviles
que habr en el 2020 ser de 5,5 millones de usuarios mviles en el mundo, frente a los 4,8
mil millones en 2015. Adems, En 2020, habr 11,6 millones de dispositivos y conexiones
mviles listos, casi 4 mil millones ms que en 2015.
Asimismo, en el ao 2020, la velocidad de conexin mvil media aumentar 3,2 veces,
pasando de 2,0 Mbps en 2015 a 6,5 Mbps para el ao 2020. Del mismo modo, el trfico IP
mvil global alcanzar una tasa anual de 367 exabytes en 2020, frente a los 44 exabytes en
2015. (Cisco, s.f.)
Para poder entender mejor este concepto de Big Data se encontraron otras definiciones
formales que pueden ser de gran ayuda para esclarecerlo, como por ejemplo las que estn
planteadas a continuacin.
Big data es un trmino usado para describir los datos que tienen volumen masivo, vienen en
una variedad de estructuras, y se generan a alta velocidad. Este tipo de datos plantean
desafos a los sistemas tradicionales de bases de datos que se utilizan para almacenarlos y
procesarlos. Los Grandes Datos estn abriendo camino para nuevos enfoques de
procesamiento y almacenamiento de datos. (Shakuntala Gupta & Sabharwal, 2015).
En cuanto a la extraccin de valor, Big Data tiene distintivos importantes que permiten la
revelacin de la informacin, estos distintivos consienten maximizar el valor respecto al
negocio o cualquier aplicacin que sea desarrollada. Como lder en el sector, los analistas de
datos de IBM clasifican a los datos en cuatro dimensiones: volumen, velocidad, variedad y
veracidad.
Volumen: Trata acerca del gran tamao de los datos. Las empresas estn inundadas de
datos, acumulando fcilmente terabytes e incluso petabytes de informacin. Hoy en da, los
datos no solo se generan dentro de una empresa si no tambin se generan en base a
transacciones, la cantidad de trfico de datos mviles crecer de manera inmensurable.
Variedad: Big Data se extiende ms all de los datos estructurados para incluir datos no
estructurados de todas las variedades, estos datos son generados a partir de diversos
dispositivos mviles y fuentes que no siguen una estructura fija tal como: archivos de texto,
videos, fotos, PDF, audio y otros formatos no estructurados.
1
Revisar el Subcaptulo 1.5.2. : Datos estructurados, no estructurados y semi estructurados
Velocidad: Es el acceso y el flujo de grandes datos, necesarios para ser analizados. Estos
datos son susceptibles en el tiempo. Si los datos no pueden ser procesados a la velocidad
requerida, pierden su significado.
1.2. Historia/Evolucin
Fue entonces que en el ao de 1880 se present el primer desafo de Big Data con el censo
de Estados Unidos, el cual arroj una montaa de datos de aproximadamente 50 millones de
personas, y solo la tecnologa limitada estaba disponible para hacer algn tipo de anlisis.
As fue como este problema de Big Data (de los grandes datos) no pudo ser resuelto durante
este ao, por lo que se necesitaron siete aos para tabular y presentar informacin de los
datos recogidos de manera manual.
de tabulacin de Hollerith, que trabajaba utilizando tarjetas perforadas y poda contener cerca
de 80 variables. Este sistema, revolucion el valor de los datos del censo y su anlisis tard
seis semanas, en lugar de siete aos.
Conforme pasaron los aos la tecnologa fue induciendo cambios impactantes, es as como
Amazon y Ebay aparecieron en el ao de 1995, comenzando de esta manera la
personalizacin de la experiencia online. Seguidamente, en 1998 Google aplica algoritmos
a las bsquedas web, para maximizar la relevancia de los resultados. (FICO, 2013)
Finalmente ya entrando a nuestra era, es decir, desde el ao 2000 hasta el presente, este
concepto de Big Data se reafirma con el surgimiento de redes sociales, telfonos inteligentes,
dispositivos electrnicos, la nube, etc., ante lo cual los analistas mencionan que hoy en da
se generan 2,5 trillones de bytes relacionados con el trmino de Big Data.
2
Alan Turing: (Alan Mathison Turing; Londres, 1912-Wilmslow, Reino Unido, 1954) Matemtico britnico. En la
Segunda Guerra Mundial ofreci un marco de aplicacin prctica de sus teoras, consista en descifrar los
mensajes codificados que la Marina alemana empleaba para enviar instrucciones a los submarinos que
hostigaban las filas de ayuda material enviados desde Estados Unidos. (Biografas y vidas, 2004)
Good: (Irving Ioannes Good; 9 de Diciembre de 1916, 5 de abril de 2009). Matemtico britnico. Particip como
criptgrafo en descifrar los mensajes en la segunda Guerra Mundial. (Los Angeles Times, 2009)
3
SAS: Es una empresa de software de capital privado ms grande del mundo lder en Business Analytics, fundada
en Estados Unidos. Ofrece un verdadero poder analtico a empresas que manejan altos volmenes de datos y
destilan la informacin esencial, para facilitar el proceso de toma de decisiones utilizando modelos predictivos
y descriptivos, pronsticos, simulacin y optimizacin. (SAS Mxico, 2014)
1.3. Importancia
Big Data, junto con la nube, redes sociales, anlisis y movilidad, son palabras de moda hoy
en da en el mundo de la informtica. La disponibilidad de Internet y dispositivos electrnicos
para las masas est aumentando cada da. Especficamente, smartphones, redes sociales y
otros dispositivos como tablets y sensores estn creando una explosin de datos. Los datos
se generan a partir de diversas fuentes en diversos formatos como el vdeo, texto, voz,
archivos de registro, y las imgenes. Un solo segundo de video de alta definicin (HD) genera
2.000 veces ms bytes que la de una sola pgina de texto.
Figura 1.3: Crecimiento de los datos a nivel mundial Fuente: (Shakuntala Gupta & Sabharwal, 2015)
Como se puede observar con la Figura 1.3, la informacin crece de manera veraz, por lo
cual, estos datos en gran cantidad cambian la ejecucin de procesos de negocio y las
organizaciones se favorecen al indagar en el crecimiento de los datos. Puesto que el tener
tcnicas de recopilacin y anlisis de datos, beneficia al sector de los negocios para que
puedan tener una visin ms clara de las preferencias y gustos de sus clientes. Entonces, se
puede decir que, el anlisis de datos en las organizaciones promueve productividad,
crecimiento y beneficios tanto al productor como al consumidor.
Las organizaciones estn invirtiendo recursos en nuevas tecnologas orientndose cada vez
a la acumulacin de datos y anlisis.
A continuacin se explican unos ejemplos que evidencian casos claros acerca de Big Data:
Cuando empresas como Amazon recomiendan qu libro leer, lo que hay detrs del proceso
es Big Data. Las compaas aplican algoritmos cuando combinan datos como los gustos de
un usuario al que conoce por adquisiciones anteriores u otros que lo identifican como sus
visitas a determinadas pginas web.
De acuerdo con (Marr, 2015), algunas empresas aprovechan los datos en grandes
cantidades para impulsar el rendimiento del negocio. Entre estas empresas se encuentran,
Google, Amazon, Facebook, General Electric y Microsoft. Entre las primeras empresas se
encuentra Google, la cual procesa 3.5 millones de solicitudes por da, y cada solicitud consulta
a una base datos de 20 millones de pginas web., por otro lado Google es uno de los
negocios ms rentables en el mundo, cuenta con gran cantidad de informacin y adems
utiliza PageRank que es un conjunto de algoritmos indexados por un motor de bsqueda. Su
funcin es avanzar ms lejos en las bsquedas basadas en palabras claves, hacia bsquedas
semnticas. Esto implica analizar no slo las palabras en la consulta si no tambin la conexin
entre ellas, para determinar la mayor importancia que una pgina web tiene en Internet. Por
ejemplo, Google se hace la idea de que cuando una pgina coloca un enlace (link) a otra, es
de hecho un voto para esta ltima.
Cuantos ms votos tenga una pgina, ser considerada ms importante por Google. Adems,
la importancia de la pgina que emite su voto tambin determina el peso de este voto. De
esta manera, Google calcula la importancia de una pgina gracias a todos los votos que
reciba, teniendo en cuenta tambin la importancia de cada pgina que emite el voto.
(Mipagerank, 2003)
Sin embargo, despus de todo, las bsquedas son gratis, Entonces, Cmo Google ha
logrado ser un negocio rentable en el planeta? Google acumula grandes cantidades de datos
sobre las personas que lo usan, mientas las empresas pagan generosamente a Google, para
que los anuncios aparezcan en los ordenadores de sus clientes.
Con gran variedad de datos actuales e histricos, se puede realizar predicciones sobre futuros
eventos. Las predicciones no suelen ser afirmaciones absolutas, llegan a una cierta
probabilidad de que algo suceda.
Otra aplicacin que resulta muy til es, la deteccin de epidemias de gripe a partir del motor
de bsqueda. Google asegura que puede rastrear enfermedades similares a la influenza en
una poblacin, este mtodo consiste en determinar la frecuencia de consultas altamente
correlacionadas con el porcentaje de visitas al mdico que un paciente presenta con sntomas
similares a la gripe, Google afirma que se puede estimar con precisin el nivel de actividad
de la influenza semanalmente en cada regin de los Estados unidos.
Como se puede observar en los ejemplos ya mencionados con anterioridad, Big Data en los
ltimos aos, ha logrado posesionarse tanto en el mundo de los negocios como en muchos
aspectos de la vida cotidiana, al convertirse en una herramienta indefectible para las ventajas
competitivas de grandes y medianas empresas, al permitir transformar los datos en grandes
resultados a travs del anlisis de los mismos. Al mismo tiempo, se esperan grandes avances
en el futuro en todo lo que concierne a Big Data.
Dato
Como se puede observar se habla mucho acerca de los datos, entonces Qu es un dato?
Un dato es el componente fundamental de las bases de datos, estn relacionados entre s
formando un conjunto con mnimas redundancias. Los datos por s mismos no aportan
conocimiento hay que procesarlos y transformarlos para obtener informacin. (Cobo, 2009)
El objetivo de este captulo es profundizar temas relevantes acerca de Big Data, es decir,
conceptos que son muy utilizados hoy en da y que son de gran importancia para entender
cmo funciona y en qu consiste hacer Big Data.
2.1.1. Recoleccin
Cuando se habla de recoleccin de datos se habla de una de las disciplinas que ha variado
con mayor rapidez y en la menor cantidad de tiempo, debido a que los datos se generan en
cifras millonarias y provienen de una gran variedad de dispositivos existentes en todo el
mundo que emiten, procesan y recogen datos de diferentes actividades como la informacin
existente en redes sociales, en la nube, variables de geolocalizacin, entre otros.
Este ejemplo pretende ilustrar el concepto mencionado, para ello se utilizar como referencia
una herramienta llamada OpenFlights (http://openflights.org/data.html), que permite
determinar vuelos en todo el mundo, buscar y filtrar todo tipo de informacin, el uso de esta
pgina web es gratuita. Adems cuenta con variedad de mdulos, donde presenta
informacin de aeropuertos, informacin de aerolneas y las informaciones de rutas. Para
este ejemplo, se ha tomado informacin correspondiente a los distintos aeropuertos en el
mundo.
Segn OpenFlights, el mundo hasta el 2009 contaba con 6977 aeropuertos. Por lo tanto, se
tomar esta informacin y se la utilizar en las siguientes reas de Big Data.
Figura 2.1: Archivo de texto con datos estructurados acerca de los aeropuertos.
El archivo contiene 9541 registros, con campos estructurados donde se detalla aeropuerto
ID, nombre de la ciudad, Pas, Asignacin al pas sea dentro o fuera del pas, cdigo OACI,
latitud, longitud, altitud, zona horaria.
2.1.2. Almacenamiento
De acuerdo con (Tablet Army, 2012), las empresas actualmente tienen archivados sus datos,
pero no saben cmo procesarlos. Ante la gran cantidad de datos que se generan diariamente,
se debe llevar a cabo un almacenamiento escalable, es decir, un sistema que pueda variar
su tamao de almacenamiento (ya sea aumentndolo o disminuyndolo) segn las
necesidades, y que esto no afecte al rendimiento general de todo el sistema.
4
Revisar el Subcaptulo 2.3.1: Sistema de ficheros distribuidos.
Por otro lado, el almacenamiento se est trabajando tambin en la nube, est ayudando a
la consolidacin del nuevo mundo del Big Data. La multinacional norteamericana EMC, por
ejemplo, sugiere optar por infraestructuras orientadas directamente a Big Data, a travs de
un almacenamiento que incluya tecnologa Cloud6. (Tablet Army, 2012). Resulta oportuno
mencionar, que se puede contar con un repositorio de ms de 10 petabytes en la nube, en
lugar de islas de datos, que por lo general, suelen requerir una administracin manual y
adems, estn soportadas en sistemas dispares.
De acuerdo con los razonamientos que se han venido realizando es oportuno preguntar,
Qu tipo de datos almacena Big data? Big Data permite el almacenamiento de datos
estructurados y no estructurados y semi estructurados. Por esta razn, las bases de datos
relacionales7, que estn basadas en lenguaje SQL (Structured Query Language), no pueden
manejar datos no estructurados y semi estructurados. Adems, son bases de datos poco
flexibles ya que cuando se crea su estructura es bastante conflictivo realizar cambios en sta
(como aadir nuevas columnas a una tabla o cambiar el tipo de una columna).
Debido a esta complejidad existen las llamadas bases de datos NoSQL8 (Not only SQL): las
empresas que basan su actividad en Internet y las redes sociales tales como Google,
Facebook, Amazon, Twitter. Son empresas que no siguen el modelo de base de datos
relacionales, y aportan ms flexibilidad al no requerir estructuras fijas como tablas. Algunos
ejemplos de sistemas NoSQL son MongoDB, Hadoop. Los sistemas NoSQL acostumbran a
ser en este sentido ms adaptables a los sistemas distribuidos, permiten una mayor
flexibilidad en la configuracin de las maquinas con hardware ms modesto. (Morros, 2013)
Continuando con el ejemplo mencionado, el almacenamiento debe ser en las bases de datos
que manejen gran volumen de datos. En vista de que es un ejemplo sencillo no tcnico, se
almacenarn los datos en la memoria de un computador.
5
Revisar el Subcaptulo 2.3.2: Cluster
6
Revisar el Subcaptulo 2.3.3: Cloud
7
Revisar el Subcaptulo 2.3.4: Bases de datos relacionales
8
Revisar el Subcaptulo 2.3.5: Bases de datos NoSQL
2.1.3. Anlisis
El anlisis es una de las reas ms importantes de Big Data, ya que se puede extraer
informacin de valor que podra parecer oculta en el almacenamiento de datos. Pero la clave
para obtener datos de valor es procesar la informacin de manera eficaz y en un tiempo
razonable, de tal manera, que se puedan obtener resultados ptimos. No obstante, la mayora
de herramientas que existen trabajan nicamente con datos estructurados y otras suelen ser
predefinidas y lentas al encontrarse con datos de gran volumen. Ante esto, los expertos
recomiendan utilizar aplicaciones diseadas especficamente para Big Data, para poder
aprovechar al mximo esa capacidad gil y proactiva para el anlisis de datos.
Algunas de esas herramientas son, Apache Hadoop, un framework de cdigo abierto para el
procesamiento, el almacenamiento y el anlisis de grandes volmenes de datos de diversas
fuentes. (Tablet Army, 2012)
Esta rea de Big data se encarga de extraer informacin relevante hacia el usuario. En este
ejemplo se utiliza el programa R, que permite extraer informacin del archivo obtenido de
OpenFlights. Para la demostracin del siguiente ejemplo resulta relevante extraer informacin
como latitud, y longitud de los aeropuertos en el mundo.
> attach(x)
>x
Otro ejemplo consiste en utilizar un programa llamado ArGis que representa la informacin
geogrfica como una coleccin de capas y otros elementos en un mapa. Es as, que se ha
recurrido a una imagen obtenida de google Earth localizada en Atacames-Ecuador.
Como se puede observar en la imagen, al lado izquierdo se muestran los cdigos descritos
anteriormente (1,2,3,4,5) mismos que estn representados con distintos colores.
2.1.4. Visualizacin
Los grficos, mapas interactivos son la herramienta ms utilizada para mostrar el anlisis de
los datos, permite difundir el anlisis previo de manera precisa y consistente, para que
posteriormente sea visualizada con las partes interesadas, por otro lado la visualizacin de
datos ayuda a elaborar mejores cuadros de mando, y en general a comunicar el significado
de los datos de la manera ms adecuada para cada interlocutor.
Ahora es importante mencionar el ejemplo, para ello es necesario recordar los puntos
recogidos en el rea anterior. Los puntos permitirn identificar completamente las reas
clasificadas en la seccin anterior. En esta seccin se visualizarn todas las reas verdes,
todas las piscinas, todas las carreteras, etc. Como resultado se obtienen las reas ya
identificadas. Es as, que a continuacin se muestra la imagen resultante que identifica ya
todas las reas.
Con la aparicin de Big Data han surgido nuevos paradigmas de programacin para facilitar
el proceso y manejo de datos propiciando un acercamiento a una solucin para Big Data. Los
dos paradigmas que centran en el desarrollo de aplicaciones, as como en la gestin de los
2.2.1. MapReduce
Figura 2.6: Esquema de un clculo MapReduce. Fuente: (Leskovec, Rajaraman , & Ullman, 2014)
Se considera que los archivos de entrada para una tarea Map, pueden ser un conjunto de
elementos de cualquier tipo:
Tabla 2.1: Tipos de datos en el paradigma Big data. Fuente: (Jimnez, Big data. Un nuevo
paradigma, 2014)
La funcin Map recibe como parmetros un par de (clave, valor) y devuelve una lista de pares.
Esta funcin se encarga del mapeo y se aplica a cada elemento de la entrada de datos.
Despus se agrupan todos los pares con la misma clave de todas las listas, creando un grupo
por cada una de las diferentes claves generadas. No hay requisito de que el tipo de datos
para la entrada coincida con la salida y no es necesario que las claves de salida sean nicas.
Tan pronto como las tareas Map se han completado con xito, los pares de clave/valor se
agrupan por clave y los valores asociados a cada clave estn formando una lista de valores.
La agrupacin se realiza por el sistema, independientemente Map y Reduce trabajan en
las tareas. El controlador Master del proceso sabe cundo aplicar Reduce a las tareas,
pueden ser r tareas. El usuario normalmente indica al sistema MapReduce, que desea tener.
A continuacin, el controlador maestro escoge una funcin hash9 que se aplica a las claves
y produce una serie de nmeros de 0 a r-1. Cada clave que se emite por una tarea de Map
es ordenada y su par clave/valor se pone en uno de los r archivos locales. Cada expediente
se destina a una de las tareas Reduce.
9
Funcin Hash: Una funcin criptogrfica hash- usualmente conocida como hash- es un algoritmo
matemtico que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una
longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendr siempre
la misma longitud. De manera opcional, los usuarios pueden especificar su propia funcin hash u otro mtodo
de asignacin de claves para reducir las tareas. Sin embargo, cualquiera que sea el algoritmo se utiliza, cada
clave est asignada a una y slo una tarea Reduce. (Brian Donohue, 2014)
El argumento de la funcin Reduce es un par formado por una clave y una lista de valores
asociados. La salida de la funcin Reduce es una secuencia de cero o ms pares de clave
y valor. Estos pares de clave/valor pueden ser de un tipo diferente a los enviados en un
principio por las tareas Map y Reduce, pero a menudo son del mismo tipo. Nos referiremos
a la aplicacin de la funcin Reduce a una nica clave y una lista asociada de valores
reductora. Una tarea Reduce recibe una o ms claves y sus listas de valores asociados. Es
decir, una tarea Reduce ejecuta uno o ms reductores. Los resultados de todas las tareas
Reduce se fusionan en un solo archivo. Los Reductores pueden ser divididos entre un
nmero ms pequeo de tareas Reduce, las claves se asocian a cada tarea Reduce con
una serie de funciones hash.
=
=1
Funcin Map: La funcin Map se escribe para aplicar a un elemento de . Sin embargo,
si la lectura no est ya en la memoria principal en el nodo de cmputo ejecutando una tarea
Map, entonces es la primera lectura, en su totalidad, y posteriormente est disponible para
todas las aplicaciones de la funcin Map realizado en esta tarea Map. Cada tarea Map
operar en un pedazo de la matriz . De cada elemento de la matriz que produce el par
Funcin Reduce: La funcin Reduce simplifica las sumas de todos los valores asociados
con una clave dada . El resultado ser un par (, ).
=
Se requiere que el nmero de columnas de sea igual al nmero de filas de , por lo que la
suma sobre tiene sentido. Se puede pensar en una matriz como una relacin con tres
atributos: el nmero de fila, el nmero de columna, y el valor de esa fila y columna. Por lo
tanto, se podra ver la matriz como una relacin (, , ), con tuplas (, , ), y que se
podra ver la matriz como una relacin (, , ), con tuplas ( , , ).
La funcin MAP: Esta funcin es slo la identidad. Es decir, para cada elemento de
entrada con la clave (, ) y el valor de , se produce exactamente este par clave-valor.
Funcin Reduce: Para cada clave (, ), se produe la suma de la lista de los valores
asociados con esta clave. El resultado es un par ((, ), ), donde es el valor del elemento
de la fila y la columna de la matriz = .
Para poder entender con claridad cmo funciona la multiplicacin de matrices con
MapReduce se piensa que es necesario utilizar un ejemplo demostrativo que explique lo
descrito anteriormente.
Objetivos:
Para poder realizar la multiplicacin de matrices se debe tomar en cuenta que el nmero de
columnas de la matriz A debe ser igual al nmero de filas de la matriz B. Entonces para la
multiplicacin se toman los valores de la primera fila de la matriz A y se los multiplica con la
primera columna de la matriz B y as sucesivamente con todos los valores. Como se da en
la siguiente demostracin:
Representar a la matriz como una lista de elementos no nulos (fila, columna, el valor,
matriz ID)
Las bases de datos MPP utilizan procesadores de mltiples ncleos, mltiples procesadores,
servidores y dispositivos de almacenamiento, equipados para el procesamiento en paralelo.
Esa combinacin permite leer muchas piezas de datos a travs de muchas unidades de
procesamiento, mejorando al mismo tiempo la velocidad.
2.3.2. Clster
Es un conjunto de ordenadores conectados entre s y con un software especfico que les
permite trabajar simultneamente proporcionando una mayor capacidad de cmputo.
(Heredero, 2004)
Sin embargo, los sistemas OLTP no estn preparados para el anlisis de los datos
registrados. Un analista que quiera acceder a los datos histricos de una organizacin para
poder tomar decisiones necesita de sistemas con otro tipo de requisitos diferentes a los de
OLTP. Estos sistemas se denominan OLAP (On-Line Analytical Processing,
Figura 2.16: Ejemplo de cubo de datos. Fuente: (Trujillo, Diseo y explotacin de almacenes de
datos: conceptos bsicos de modelado multidimensional., 2013)
Figura 2.17: Ejemplo de tabla multidimensional. Fuente: (Trujillo, Diseo y explotacin de almacenes
de datos: conceptos bsicos de modelado multidimensional., 2013)
El objetivo de este captulo es conocer las plataformas que permiten establecer ambientes
estables de Big Data, as como sus respectivas herramientas.
Por el contrario, Google, Yahoo! y Facebook no pudieron acoplarse y trabajar con esta
tecnologa, es as, que se desarroll una nueva generacin de recursos para la administracin
y el anlisis de datos, siendo algunos de ellos proyectos de cdigo abierto, para que los
desarrolladores de estas grandes compaas innovadoras pudieran actualizar y mejorar las
capacidades de estas herramientas de administracin y anlisis mucho antes que cualquier
otro proveedor. De este modo, estas empresas se vieron en la necesidad de adquirir
plataformas que les ayuden en el manejo y anlisis de varios tipos de datos y grandes
volmenes.
En la siguiente seccin se hablar de las principales plataformas que hacen Big Data.
ancho de banda agregado en todo el cluster. Tanto MapReduce como HDFS estn diseados
de modo que el entorno de trabajo gestiona automticamente los fallos de nodo. Hace posible
que las aplicaciones funciones con miles de ordenadores que trabajan de modo
independiente y con petabytes de datos. Actualmente se considera que la plataforma
completa de Apache Hadoop consiste en el kernel10 de Hadoop, MapReduce, HDFS y varios
relaciones, en los que se incluyen Apache Hive, y Apache HBase. (Schmarzo, Apache
Hadoop, 2013)
10
Kernel ncleo, es un software que constituye una parte fundamental del sistema operativo. Es el
principal responsable de facilitar a los distintos programas acceso seguro al hardware de la
computadora l es el encargado de gestionar recursos, a travs de servicios de llamada al sistema,
tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante
cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser
realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del
hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al
hardware subyacente, lo que facilita su uso al programador. (EcuRed, 2016)
El producto incluye una distribucin de cdigo abierto de Apache Hadoop, cuenta con la base
de datos Oracle NoSQL, Oracle Data integrador con adaptador Solicitud de Hadoop. Es
preinstalado y pre configurado con Cloudera CDH11. Adems de eso, el precio del hardware
(US $ 525.000 para un sistema de rack completo, incluye el costo de Cloudera CDH y sus
opciones de Cloudera Manager.
Big Data Appliance Hardware (viene con la solicitud de servicio automtico a fallos de
los componentes)
Cloudera CDH y Cloudera Administrador
Todas las opciones de Cloudera, as como Accumulo y Spark (CDH) 5.0
Oracle Linux y Oracle JDK
Distribucin de Oracle R
Base de datos de Oracle NoSQL Community Edition
Oracle Big Data Appliance Enterprise Manager plug-in
Ao 1 ao 2 ao 3 Costo
total
Costo BDA $
525,000
Costo Anual de $ 63.000 $ $
Apoyo 63.000 63.000
Instalar en el lugar $ 14.000
(aproximadamente)
Total $ $ $ $
602,000 63.000 63.000 728,150
11
CDH es la distribucin de la plataforma de cdigo abierto 100% de Cloudera, incluyendo Apache Hadoop y
construido especficamente para satisfacer las demandas de la empresa. CDH ofrece todo lo necesario para el
uso empresarial sacarlo de la caja. Mediante la integracin de Hadoop con ms de una docena de otros
proyectos de cdigo abierto crticos, Cloudera ha creado un sistema funcionalmente avanzado que lo ayuda a
hacer de extremo a extremo de los flujos de trabajo de grandes datos. (Cloudera, 2015)
Por ese precio usted recibir un estante pre integrado con las siguientes especificaciones.
3.2.1.3. Pig
Pig es un entorno de trabajo y un lenguaje de programacin de alto nivel que trabaja con
tareas en paralelo pensado para crear programas para MapReduce. Pig abstrae el lenguaje
de programacin de MapReduce en construcciones de ms alto nivel, de un modo similar a
lo que ocurre con SQL y los sistemas de gestin de bases de datos relacionales. Pig se puede
ampliar utilizando funciones definidas por el usuario, que el desarrollador puede escribir en
Existen una serie de herramientas adicionales que forman parte del ecosistema de Spark y
le proporcionan caractersticas adicionales en la analtica de Big Data.
Tabla 3.3: Tabla comparativa Apache Spark, Apache Hadoop, Oracle Big Data Appliance.
Para el desarrollo de este captulo la principal herramienta que se utilizar para la creacin
de un ambiente de Big Data es Hadoop, que como ya se detall en el Captulo 3, Hadoop es
una herramienta de software libre que permite el procesamiento distribuido de grandes
volmenes de datos mediante un clster. Adems, se escogi Hadoop en lugar de Oracle Big
Data Apliance o Spark, debido a que Hadoop es mucho ms intuitivo por lo tanto, resulta ms
fcil el manejo de esta herramienta.
Modo No Distribuido:
El modo no distribuido tambin es conocido como modo de un solo nodo (single node), el cual
se ejecuta como un solo proceso de JAVA y es ms utilizado para depuracin.
Modo Pseudo-distribuido:
GNU / Linux es til como plataforma de desarrollo y produccin. Existen pruebas que
Hadoop ha sido demostrado en los clsteres de GNU / Linux con 2000 nodos. (The
Apache Software Foundation, 2016)
Windows, tambin es una plataforma compatible aunque no es muy utilizada para la
instalacin de esta herramienta.
Software Necesario
JDK de JAVA.
PASO 1:
$su
#cd
#pwd
Una vez descargado el JDK de Java, es necesario copiar el paquete descargado del
JDK en el directorio root, debido a que todas las descargas realizadas se ubican en el
directorio Descargas.
Para copiar el paquete del JDK ubicado en el directorio Descargas al directorio root:
#ls
#nano /etc/profile
#. /etc/profile
#$JAVA_HOME
Una vez instalo JAVA, se procede a editar tanto en el Nodo Master como en los Nodos
Esclavo el archivo /hosts para guardar la correspondencia entre dominios y las
direcciones IP.
Digitar lo siguiente:
#nano /etc/hosts
En seguida, se realiza un ping para comprobar que los nodos se estn comunicando
entre ellos.
PASO 2:
Instalacin De Hadoop
Tal como se hizo con el paquete del JDK, se copia el archivo .tar de Hadoop que est
ubicado en el directorio Descargas al directorio root.
#ls
acceder de manera remota a cada una de ellas. El manejo de ssh puede ser tanto con
contrasea como sin ella, para esta prctica se utilizar ssh con una configuracin sin
contrasea, lo cual permitir acceder desde la mquina del nodo master a las mquinas
correspondientes a los nodos eslavo para poder iniciar y ejecutar ms fcilmente los
demonios y servicios de Hadoop.
Para poder entender este funcionamiento es necesario conocer tanto lo que es el fichero
.bashrc y cmo trabaja ssh (Secure Shell intrprete de rdenes seguro) en un clster.
SSH: Secure Shell o intprete de rdenes seguro tambin conocido por sus siglas SSH, es
un protocolo que facilita la comunicacin entre dos o ms sistemas, es decir, permite la
conexin entre diferentes mquinas a un host de manera remota.
Entonces, es necesario configurar el archivo .bashrc, en cada uno de los nodos del clster,
para posteriormente establecer la configuracin de ssh.
Digitar los siguientes comandos en el fichero .bashrc para establecer las variables
de entorno de Hadoop.
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
#ssh-keygen t rsa
Establecer la direccin en donde se va a guardar esta configuracin. Esta
configuracin debe ser realizada exclusivamente en la mquina que se
conectar a los nodos esclavos.
Posteriormente, se presentar en pantalla un mensaje que solicite el ingreso
de una contrasea. No se debe ingresar ninguna clave, y solo presionar la
tecla Enter.
Finalmente se presenta un mensaje de confirmacin de contrasea, se debe
presionar Enter y as, la configuracin ssh sin contrasea estar disponible.
En esta seccin se debe ejecutar el siguiente comando en cada uno de los nodos
esclavos, para que la carpeta tenga la configuracin ssh.
#mkdir ~/.ssh
#ssh root@nodos_esclavos
Con estas configuraciones se pueden omitir pasos que contienen el encendido de los
servicios y demonios de Hadoop en todos los nodos de manera manual, ya que con solo
ejecutar el comando start-all.sh en la mquina del nodo master, se encienden
automticamente los servicios de este nodo y de los nodos esclavos.
PASO 3:
Para crear los usuarios que van a formar parte del grupo hadoop:
PASO 4:
env-variable
#!/bin/bash
directories_master
#!/bin/bash
#cp /home/principal/Descargas/install_hadoop_cluster/directories_master
/root/
#ls
De ser as, ejecutar cada uno de los Scripts y crear los directorios que se muestran:
#. env-variable
#./directories_master
env-variable
#!/bin/bash
directories_slaves
#!/bin/bash
#cp /home/principal/Descargas/install_hadoop_cluster/directories_slaves
/root/
#ls
De ser as, ejecutar los Scripts y crear los directorios que se muestran:
#. env-variable
#./directories_slaves
Antes de continuar con los pasos subsiguientes es necesario explicar algunos conceptos que
son necesarios para comprender como se debe realizar la configuracin de Hadoop.
En la arquitectura de Hadoop existen una serie de bloques o demonios que son importantes
para gestionar las actividades y replicaciones de los archivos HDFS (Hadoop Distributed File
System Sistema de Archivos Distribuidos de Hadoop), dentro de un clster de hadoop.
Dependiendo de la distribucin de Hadoop que se desee ejecutar existen diferentes
demonios, pero en la presente configuracin los demonios que se ejecutarn son los
siguientes: Name Node, Data Node, Secondary Name Node, Job History Server, Resource
Manager y Node Manager.
En este caso, el Name Node, el Secondary Name Node, Job History Server, y Resource
Manager sern ejecutados en una sola mquina correspondiente al Nodo Master, pero en
grupos de produccin que cuentan con ms de 20 nodos aproximadamente, estos demonios
pueden ser ejecutados en nodos separados. Mientras que los demonios Data Node y Node
Manager sern ejecutados en las mquinas correspondientes a los Nodos Esclavo.
Name Node: El Name Node en Hadoop es el nodo donde Hadoop almacena toda la
informacin de la ubicacin de los archivos HDFS. En otras palabras, mantiene los metadatos
de HDFS. Es un punto nico de fallo para el clster Hadoop. Sin este servicio, no hay manera
de acceder a los archivos HDFS. El Name Node no almacena los datos reales, los propios
datos se almacenan en los Data Nodes.
Data Node: El Data Node se encarga de almacenar los datos reales en HDFS. Gestiona los
bloques de archivos dentro del nodo. Se enva informacin al Name Node acerca de los
archivos y los bloques almacenados en ese nodo y responde al Name Node para todas las
operaciones del sistema de archivos, es decir, el Name Node y el o los Data Nodes estn en
constante comunicacin entre ellos.
Job History Server: El Job History Server puede ser ejecutado de manera autnoma en un
nodo dentro del clster de Hadoop o dentro del Nodo Master, pero se recomienda ser
ejecutado en el mismo nodo en cual se corra el Resource Manager. Su principal funcin es
la de almacenar y mantener un historial de los trabajos de MapReduce que se ejecuten en el
clster. En versiones inferiores de Hadoop (Hadoop-2.0.0), el Job History Server funcionaba
como Job Tracker, pero ste en versiones nuevas como la que se est utilizando para la
presente configuracin (Hadoop-2.7.2) ya no existe debido a los errores que presentaba en
el manejo de los historiales de MapReduce.
Resource Manager: El Resource Manager es el componente central del YARN y regula todos
los recursos de procesamiento de datos dentro del clster Hadoop, es decir, el Resource
Manager es un planificador dedicado que asigna recursos a las aplicaciones que se solicitan.
Sus tareas son slo para mantener una visin global de todos los recursos del clster, el
manejo de las solicitudes de recursos, la programacin de la solicitud, y luego la asignacin
de recursos a la aplicacin solicitante. El Resource Manager es un componente crtico en un
clster Hadoop, debe ejecutarse en un nodo maestro dedicado.
Node Manager: Cada nodo esclavo tiene un demonio Node Manager, que acta como un
esclavo para el Resource Manager. Cada nodo esclavo tiene un servicio que lo ata al servicio
de procesamiento (Node Manager) y al servicio de almacenamiento (DataNode) que permiten
a Hadoop ser un sistema distribuido. Cada Node Manager registra los recursos de
procesamiento de datos disponibles en el nodo esclavo y enva informes peridicos al
Resource Manager.
Por otro lado, existen archivos de configuracin de los componentes de Hadoop que son
importantes para su correcto funcionamiento, estos son: el core-site.xml, hdfs-site.xml,
mapred-site.xml y yarn-site.xml.
El archivo core-site.xml, contiene opciones de configuracin que son comunes para todos los
servidores de la agrupacin, es decir, en este archivo se establecen el nombre del sistema
de archivos y el puerto a travs del cual se recibirn las peticiones del cliente, se recomienda
colocar el puerto 9000, para que se carguen correctamente las configuraciones de hadoop
en el servidor web.
YARN debido a que es el encargado de ejecutar los procesos de las aplicaciones que estn
desarrolladas en MapReduce.
Finalmente, es preciso comprender lo que significa el YARN dentro de hadooop debido que
esta configuracin ser realizada en base a este framework.
En seguida, se continan con los pasos de instalacin necesarios para ejecutar Hadoop.
PASO 5:
#nano /opt/hadoop/etc/hadoop/core-site.xml
core-site.xml
1. <configuration>
2. <property>
3. <name>fs.defaultFS</name>
4. <value>hdfs://master-node.centos:9000</value>
5. </property>
6. <property>
7. <name>hadoop.http.staticuser.user</name>
8. <value>hdfs</value>
9. </property>
10. </configuration>
Como se puede observar en el cdigo escrito en la parte superior, la lnea 4 est marcada
con un color celeste: <value>hdfs://master-node.centos:8020</value>, esto es
necesario para resaltar que en esta lnea de cdigo se debe colocar el nombre de la mquina
en la que est trabajando el Nodo Master, es decir, master-node, seguido del nombre del
dominio que en este caso es centos, de esta manera la identificacin completa de la mquina
en la cual se est ejecutando el Nodo Master es: master-node.centos. Se establece
adems, el nmero del puerto del Name Node que hace referencia al Nodo Master y
corresponde al puerto 9000.
#nano /opt/hadoop/etc/hadoop/core-site.xml
core-site.xml
1. <configuration>
2. <property>
3. <name>fs.defaultFS</name>
4. <value>hdfs://master-node.centos:9000</value>
5. </property>
6. <property>
7. <name>hadoop.http.staticuser.user</name>
8. <value>hdfs</value>
9. </property>
10. </configuration>
Como se puede observar en la parte superior la lnea 4 est marcada de color celeste de esta
manera: <value>hdfs://master-node.centos:9000</value>, en este caso se deben
realizar las mismas configuraciones que se efectuaron en el archivo core-site.xml del Nodo
Master, es decir, se debe colocar la identificacin completa de la mquina en la cual est
corriendo el Nodo Master, master-node.centos, y el puerto del Name Node que es el 9000.
PASO 6:
#cp /opt/hadoop/etc/hadoop/mapred-site.xml.template
/opt/hadoop/etc/hadoop/mapred-site.xml
#nano /opt/hadoop/etc/hadoop/mapred-site.xml
Se define el nombre del framework que se utilizar para ejecutar MapReduce, que
en este caso es YARN.
mapred-site.xml
1. <configuration>
2. <property>
3. <name>mapreduce.framework.name</name>
4. <value>yarn</value>
5. </property>
6. </configuration>
#cp /opt/hadoop/etc/hadoop/mapred-site.xml.template
/opt/hadoop/etc/hadoop/mapred-site.xml
Figura 4.49: Copiar el template del archivo mapred-site.xml al directorio donde se encuentra Hadoop.
#nano /opt/hadoop/etc/hadoop/mapred-site.xml
Se copian en todos los Nodos Esclavo las mismas lneas de cdigo que fueron
utilizadas en la configuracin del archivo mapred-site.xml del Nodo Master, puesto
que el framework sigue siendo el mismo, es decir, YARN.
Figura 4.53: Agregacin de lneas de cdigo en el archivo mapred-site.xml en los Nodos Esclavos.
PASO 7:
#nano /opt/hadoop/etc/hadoop/hdfs-site.xml
hdfs-site.xml
1. <configuration>
2. <property>
3. <name>dfs.replication</name>
4. <value>3</value>
5. </property>
6. <property>
7. <name>dfs.namenode.name.dir</name>
8. <value>file:/var/data/hadoop/hdfs/nn</value>
9. </property>
10. <property>
11. <name>dfs.namenode.checkpoint.dir</name>
12. <value>file:/var/data/hadoop/hdfs/snn</value>
13. </property>
14. </configuration>
Como se puede visualizar en la parte superior existen tres lneas de cdigo que se encuentran
marcadas de color celeste: <value>3</value>, en esta lnea de cdigo se define el nmero
de replicacin de los nodos, es decir, el nmero de Nodos Esclavo que van a formar parte del
clster de Hadoop, en este caso se utilizarn tres Nodos Esclavo, ejecutados cada uno por
separado en tres mquinas; <value>file:/var/data/hadoop/hdfs/nn</value>, en esta
lnea de cdigo se establece el directorio correspondiente al Name Node y en esta lnea de
cdigo, <value>file:/var/data/hadoop/hdfs/snn</value>, se establece el directorio
correspondiente al Secondary Name Node.
#nano /opt/hadoop/etc/hadoop/hdfs-site.xml
Se definen las principales propiedades de este archivo que varan en cuanto a las
propiedades del hdfs-site.xml del Nodo Master:
hdfs-site.xml
1. <configuration>
2. <property>
3. <name>dfs.replication</name>
4. <value>3</value>
5. </property>
6. <property>
7. <name>dfs.datanode.data.dir</name>
8. <value>file:/var/data/hadoop/hdfs/dn</value>
9. </property>
10. </configuration>
Como se puede observar en la parte superior, existen dos lneas de cdigo que se encuentran
marcadas de color celeste para hacer referencia a las principales propiedades de este
archivo: <value>3</value>, esta lnea de cdigo define el nmero de replicacin de los
nodos que al igual que en el archivo hdfs-site.xml del Nodo Master, el nmero de replicacin
sigue siendo 3 debido a que en este caso se trabajar con tres Nodos Esclavo y,
<value>file:/var/data/hadoop/hdfs/dn</value>, esta lnea define la ubicacin del
directorio correspondiente al Data Node.
Paso 8:
#nano /opt/hadoop/etc/hadoop/yarn-site.xml
Se definen las propiedades del archivo copiando las siguientes lneas de cdigo:
yarn-site.xml
1. <configuration>
2. <property>
3. <name>yarn.resourcemanager.hostname</name>
4. <value>master-node.centos</value>
5. </property>
6. </configuration>
Como se puede visualizar en la parte superior, la lnea de cdigo nmero 4 est marcada de
color celeste: <value>master-node.centos</value>, sta define el nodo en el cual se est
ejecutando el Resource Manager. Como ya se mencion en un apartado anterior en la
presente configuracin tanto el Name Node, el Secondary Name Node, el Job History Server
y el Resource Manager sern ejecutados en una sola mquina que trabajar como Nodo
Master. En este caso la identificacin completa de la mquina que ejecuta el Nodo Master
(hostname) es: master-node.centos.
#nano /opt/hadoop/etc/hadoop/yarn-site.xml
Se definen las propiedades del archivo copiando las siguientes lneas de cdigo,
debido a que el archivo yarn-site.xml de los Nodos Esclavo es diferente al
correspondiente archivo del Nodo Master.
yarn-site.xml
1. <configuration>
2. <property>
3. <name>yarn.nodemanager.aux-services</name>
4. <value>mapreduce_shuffle</value>
5. </property>
6. <property>
7. <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
8. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
9. </property>
10. <property>
11. <name>yarn.nodemanager.log-dirs</name>
12. <value>file:/var/hadoop/yarn/logs</value>
13. </property>
14. <property>
15. <name>yarn.nodemanager.local-dirs</name>
16. <value>file:/var/hadoop/yarn/local</value>
17. </property>
18. <property>
19. <name>yarn.resourcemanager.hostname</name>
20. <value>master-node.centos</value>
21. </property>
22. </configuration>
Como se puede visualizar las siguientes lneas de cdigo se encuentran marcadas de color
celeste:
12.<value>file:/var/hadoop/yarn/logs</value>
16.<value>file:/var/hadoop/yarn/local</value>
stas definen la ubicacin de los directorios que van a ser utilizados por el Node Manager.
PASO 9:
#nano /opt/hadoop/etc/hadoop/slaves
Figura 4.67: Abrir fichero slaves para agregar los Nodos Esclavo.
slave1-node.centos
slave2-node.centos
slave3-node.centos
En este fichero se deben agregar las identificaciones completas de las mquinas (hostnames)
en las cuales se estn ejecutando los Nodos Eclavo, este caso se tienen tres mquinas que
funcionan como Nodos Esclavo y sus identificaciones con sus correspondientes dominios
son: slave1-node.centos, slave2-node.centos y slave3-node.centos.
PASO 10:
Figura 4.69: Detener el funcionamiento del Firewall del sistema en el Nodo Master.
Este paso es importante realizarlo ya que si el firewall se encuentra encendido podran ocurrir
problemas tanto en la comunicacin como en el intercambio de informacin entre los
diferentes Nodos que conforman el clster de Hadoop.
#nano /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Es importante realizar esta configuracin debido a que Hadoop no es compatible con IPv6.
Figura 4.72: Detener el funcionamiento del Firewall del sistema en los Nodos Esclavo.
#nano /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
PASO 11:
PASO 12:
$cd /opt/hadoop/sbin/
PASO 13:
#su hdfs
$cd /opt/hadoop/sbin
PASO 14:
$exit
#su yarn
$cd /opt/hadoop/sbin/
Salir del directorio sbin del usuario hdfs e iniciar sesin con el usuario Yarn:
Para salir del directorio sbin del usuario hdfs:
$exit
#su yarn
$cd /opt/hadoop/sbin/
Figura 4.89: Directorio /sbin del usuario yarn en los Nodos Esclavo.
$exit
Ejecutar el comando jps para comprobar que se estn ejecutando los componentes
Data Node y Node Manager:
#jps
Como se puede observar los componentes Node Manager y Data Node se estn ejecutando
correctamente en los Nodos Esclavo, si estos competentes no se visualizan como lo muestra
la imagen anterior, es probable que la configuracin haya fallado en algn punto.
PASO 15:
$exit
#su hdfs
$cd /opt/hadoop/bin/
La advertencia que se muestra en la imagen anterior aparece cuando no se utiliza el java que
viene por defecto en los sistemas operativos LINUX, sino cuando se utiliza el java instalado
desde la pgina oficial tal como se realiz en el primer paso de esta prctica.
PASO 16:
$exit
#su mapred
$cd /opt/hadoop/sbin/
PASO 18:
$cd /opt/hadoop/bin/
Se eligi la ejecucin del pi, para demostrar que Hadoop es til para diferentes casos,
como por ejemplo, para el clculo de problemas matemticos. Puede parecer irrelevante
el calcular el nmero pi, pero debido a que este es un nmero infinito, resulta interesante
ver como los sistemas informticos pueden calcular pequeos trozos de este nmero casi
en poco tiempo, lo que demuestra que se puede utilizar esta herramienta en combinacin
con algoritmos para clculos criptogrficos, estadsticos, minera de datos, fsica, etc. A
continuacin se calcula pi 10 10, lo que quiere decir que se usan 10 asignaciones con
10 ejemplo de cada una para calcular su valor.
Figura 4.103: Ejecucin del ejemplo pi que viene por defecto en Hadoop.
Como se puede observar la ejecucin de este ejemplo tuvo una duracin de 31.589 segundos
y se ejecut correctamente en los tres nodos esclavo. Si se trabajara con un solo nodo esclavo
el tiempo sera ms extenso y si se trabajara con ms de tres nodos esclavo el tiempo ira
disminuyendo conforme existan ms nodos de replicacin.
Ahora, verificar que los componentes del Nodo Master estn funcionando
correctamente.
$ exit
# jps
Como se puede observar en la captura anterior, todos los componentes correspondientes al Nodo
Master estn encendidos.
Para poder observar los resultados de todos los Nodos en conjunto en el explorador, es
necesario colocar en la barra de direcciones el nombre que se utiliz para identificar a la
mquina correspondiente al Nodo Master, mismo que fue situado en el archivo core-
site.xml del Nodo Master, para este caso la identificacin de la mquina es master-
node.centos, entonces se debe digitar en la barra de direcciones del explorador ese
nombre seguido del puerto que tiene Hadoop por defecto que es el 8088, este puerto
permite obtener la informacin sobre el clster y todas la aplicaciones que se estn
ejecutando, de esta manera se observarn los resultados de todos los Nodos y procesos
que se estn ejecutando en Hadoop, tal como se muestra en las siguientes imgenes.
Figura 4.108: Vista en el explorador de los resultados del proceso ejecutado en Hadoop.
Figura 4.109: Vista en el explorador de los resultados del proceso ejecutado en Hadoop.
Ahora para acceder a los resultados de Hadoop se debe digitar el siguiente URL en la
barra de direcciones: http://master-node.centos:50070. El puerto 50070, es el puerto
predeterminado para acceder a Hadoop y como ya se ha aclarado anteriormente el
nombre que est ubicado antes del puerto es la identificacin que se coloc en el archivo
core-site.xml para acceder a los servicios de Hadoop, en otros casos se puede colocar
por defecto localhost, todo depende del nombre que se haya colocado en dicho archivo
de configuracin. De esta manera, se muestran las siguientes imgenes:
La imagen anterior muestra que los valores de memoria e intercambio como los valores
de monitoreo de la red se colocan en cero al momento de iniciar Hadoop, esto es debido
a que Hadoop consume rpidamente los recursos de la mquina.
La figura anterior muestra que los valores de rendimiento del CPU, Memoria y Red de la
mquina cambian considerablemente durante la ejecucin de los procesos de Hadoop.
El caso prctico escogido consiste en contar palabras de un texto, este ejemplo es una clara
representacin de MapReduce. Debido a que se realizan tareas Map, en las cuales se
identifican las palabras que contiene el archivo de texto, posteriormente se realizan tareas
Reduce en las cuales se identifican las palabras que estn repetidas y de esta manera se
tiene como resultado el nmero de palabras totales que se encuentran en el archivo de texto
analizado.
$su
#cp /home/principal/Descargas/eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz
/root/
[Desktop Entry]
Encoding = UTF-8
Name = 4.4.1 Eclipse
Comentario = Eclipse de Luna
Exec = / usr / bin / eclipse
Icono = / opt / eclipse / icon.xpm
Categoras = Aplicacin; Desarrollo; Java IDE;
Version = 1,0
Type = Aplicacin
Terminal = 0
Abrir Eclipse:
Al desarrollar aplicaciones para Hadoop se debe tener en cuenta ciertos pasos, los mismos
que deben ser comprendidos para el desarrollo de cualquier aplicacin.
Posteriormente se establece el mtodo Main, que contiene todas las llamadas a los Jobs,
para que se ejecuten sincronizadamente.
Finalmente, se debe importar las libreras de Hadoop, existen varias libreras con diferentes
funciones, para este caso particular se deben agregar las libreras de la carpeta common y
mapreduce.
hadoop-common-2.7.2-tests.jar
hadoop-common-2.7.2.jar
hadoop-mapreduce-client-app-2.7.2.jar
hadoop-mapreduce-client-common-2.7.2.jar
hadoop-mapreduce-client-core-2.7.2.jar
hadoop-mapreduce-client-hs-2.7.2.jar
hadoop-mapreduce-client-hs-plugins-2.7.2.jar
hadoop-mapreduce-client-jobclient-2.7.2-tests.jar
hadoop-mapreduce-client-jobclient-2.7.2.jar
hadoop-mapreduce-client-suffle-2.7.2.jar
hadoop-mapreduce-examples-2.7.2.jar
hadoop-nfs-2.7.2.jar
Al agregar las libreras automticamente se eliminan los errores, pero al ejecutar el programa
se muestran ciertas alertas, estas alertas muestran informacin superficial que no indican de
manera clara si el programa se realiz con xito, para comparar que la aplicacin ha sido
desarrollada con xito es necesario correr el archivo .jar en Hadoop.
Como resultado final se obtiene lo siguiente:
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
# cd /home/principal/workspace
Antes de continuar con los pasos subsiguientes es necesario explicar qu es y cmo funciona
la instruccin HDFS.
Por lo general, los ficheros que van a ser almacenados y ubicados en este tipo de ficheros de
Hadoop, siguen el mismo patrn Write once read many (escribe una vez y lee muchas
veces). Pero estos permisos pueden variar de acuerdo a la necesidad del usuario, es as que
en algunos casos se utiliza el comando chmod.
Finalmente, los ficheros sern divididos en bloques del mismo tamao y distribuidos entre los
nodos que conforman el clster.
Como se haba mencionado en captulos anteriores existen varios tipos de demonios con los
que cuenta Hadoop, HDFS trabaja exclusivamente con dos demonios los cuales son:
Namenode y Datanode.
Se debe comprobar que el archivo de texto forma parte del fichero hdfs de Hadoop,
para ello se ejecuta el siguiente comando:
Finalmente, Hadoop muestra que proceso fue desarrollado con xito. Pero para ver el
resultado y nmero de palabras contadas es necesario el siguiente comando.
Actualmente existen varias tipos de redes sociales como Twitter, Facebook, Instagram,
Google+, etc. En los ltimos aos las redes sociales se han convertido en los sitios web ms
visitados en internet, donde las personas opinan, comparten ideas y se conectan por diversin
y tambin con fines educativos. Las redes sociales diariamente manejan grandes volmenes
de datos e informacin. Para este caso prctico se utilizar Twitter y se recolectar Tweets
de una determinada zona geogrfica y se almacenar en una base de datos NoSQL.
Antes de realizar esta prctica es importante mencionar algunos conceptos, que sern de
gran ayuda al momento de realizar este caso prctico.
Twitter es una red de informacin conformada por mensajes de 140 caracteres llamados
Tweets. Es una forma fcil de descubrir las ltimas novedades relacionadas con los temas
que te interesan. (Twitter, 2016)
Por otro lado, los Tweets estn conformados por texto, hashtags o etiquetas para categorizar,
@nombre_de_usuario y en algunos casos pueden adjuntar una direccin URL, tal como se
ilustra en la siguiente figura.
La estructura es la siguiente:
Texto o mensaje que se quiere compartir con esta red de informacin, puede estar
compuesto por 140 caracteres y su publicacin es inmediata.
Hashtag o etiquetas para categorizar, es un smbolo # seguido de un texto que permite
aumentar audiencia de un Tweet, son utilizados para mencionar ciertas acciones,
eventos, sentimientos, etc. Estas etiquetas pueden ser utilizadas en el anlisis de
datos.
Direccin URL abreviada, estos enlaces son opcionales y son utilizados para montar
cierto contenido externo.
@ Nombre de usuario. Es una identificacin obligatoria usada para reconocer a los
usuarios.
Diariamente se generan gran cantidad de Tweets que son compartidos por los usuarios y
contienen datos que si son analizados podran generar informacin, es as que Twitter ofrece
APIs, que permiten a los desarrolladores adaptarse a diferentes necesidades. Por ejemplo,
existe el Streaming API mismo que permite el acceso en tiempo real a los Tweets que han
sido publicados, es decir, se crea una conexin permanente a travs del usuario con los
servidores de Twitter recibindose un flujo constante de Tweets en formato Json12; el Rest
12
JSON (JavaScript Object Notation - Notacin de Objetos de JavaScript) es un formato ligero de
intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las mquinas es
simple interpretarlo y generarlo. Est basado en un subconjunto del Lenguaje de Programacin
JavaScript, Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es
completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos
por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl,
API permite que los desarrolladores puedan acceder al ncleo central donde se encuentran
los datos de Twitter y, por ltimo, se encuentra el Search API el cual ofrece una informacin
mucho ms limitada de los Tweets, permitiendo solo el acceso a los datos del autor como el
id, el nombre del usuario con el que aparece en Twitter, tanto el Streaming API como el REST
API permiten acceder al perfil completo del autor.
Para poder utilizar Twitter en un ambiente de desarrollo es necesario tener una cuenta de
Twitter previamente creada.
A continuacin se muestran los pasos que se deben seguir para llevar a cabo esta prctica:
Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio
de datos.Fuente especificada no vlida.
Instalar CouchDB.
http://127.0.0.1:5984/_utils/
Instalar tweepy, el cual permitir acceder a las llaves generadas por Twitter y as se
podrn recolectar los Tweets, hecho que ser explicado en pasos posteriores. Para
esto es necesario acceder con privilegios de root.
$wget https://pypi.python.org/packages/source/C/CouchDB/CouchDB-0.9.tar.gz
$cd /home/bigdata/CouchDB-0.9/
Figura 4.154: Instalacin de libreras para que puedan ser reconocidas por python.
Python
$import tweepy
Para acceder a Twitter como desarrollador es necesario contar con una cuenta de Twitter
creada previamente, como ya se haba mencionado antes. Una vez que se cuente con este
requisito, se podr acceder a las claves que Twitter genera para proceder al desarrollo del
programa en Python.
Al acceder a esta plataforma se debe dar Click en la opcin Create New App, lo que
significa que se va a crear una nueva aplicacin. Desplegndose as lo siguiente:
Estas claves son necesarias al momento de escribir el cdigo que permitir la recoleccin de
tweets.
http://127.0.0.1:5984/_utils/
Las claves que fueron analizadas en pasos anteriores deben ser pegadas en cada
una de las secciones, como Consumer Key API, Consumer Secret API, Access Token,
Access Token Secret.
Se recomienda recolectar las coordenadas con la estructura siguiente, latitud sur, latitud
norte, latitud oeste, latitud este. Existen varios pginas web que permiten la identificacin de
coordenadas, para este caso prctico se utiliz Boundingbox. A continuacin se muestra el
funcionamiento del mismo.
Delimitar la seccin a analizar, de esta manera se genera las latitudes en cada uno
de los puntos, finalmente estas latitudes deben ser copiadas en el cdigo.
Este cdigo debe ser guardado en cualquier carpeta del sistema, en este caso se almacen
en Documentos, con el nombre tweets.py.
$cd /home/bigdata/Documentos/
$ls
#python tweets.py
Para este caso prctico, la recoleccin de Tweets fue alrededor de dos das, con esto se
puedo obtener alrededor de 112.4 MB de informacin y 15421 Tweets en el ciudad de Quito.
La estructura que maneja CouchDB se puede visualizar en la figura . , en sta aparecen
el nombre de usuario, la fecha en la que realiz el Tweet y, adems una gran variedad de
contenido como el texto, Hashtag, latitud y longitud de donde se realiz esta transaccin.
En este caso muy particular la persona que realiz esta transaccin, comparti el siguiente
mensaje Ya no me acuerdo como es, verte as, muy feliz, una vez.. y no comparti ningn
hashtag, Url, o smbolos en particular.
Adems se puede visualizar el pas e incluso mostrar coordenadas, donde la persona realiz
el Tweet.
Descripcin de la Materia:
Los grandes volmenes de datos, junto al anlisis de los mismos son el tronco sobre el cual
se desarrollan nuevas estrategias de extraccin de valiosa informacin, as, esta materia
pretende explicar y dar a conocer conceptos basados en el procesamiento de grandes
cantidades de datos que vienen en distintos formatos y a gran velocidad, haciendo nfasis en
las herramientas y tecnologas que facilitan el manejo de datos para el proceso de anlisis y
extraccin de informacin, lo que es en s hacer Big Data. De esta manera, se da a conocer
a los alumnos las posibles herramientas que pueden ser utilizadas al momento de desarrollar
casos prcticos de Big Data, con lo cual se busca que los alumnos sean capaces de usar
este conocimiento para el desarrollo de nuevos casos, problemas, investigaciones, etc., que
sean tiles en su formacin personal y profesional.
Explicar a los estudiantes los conocimientos necesarios sobre Big Data partiendo de
conceptos relevantes, herramientas y tecnologas que expongan su utilidad.
13
Matrices de planificacin didctica tomadas de: (Alomoto Talavera, 2012)
1. DATOS INFORMATIVOS
Duracin: Una semana
2. OBJETIVO: Proporcionar a los estudiantes conceptos iniciales acerca de Big Data para que se familiaricen con esta tendencia y sea ms fcil el
aprendizaje de nuevos conceptos durante el desarrollo y continuacin de la Ctedra de Big Data.
3. TTULO DEL CAPTULO O UNIDAD: Qu es Big Data?
1. DATOS INFORMATIVOS
Duracin: Dos semanas
2. OBJETIVO: Proporcionar a los estudiantes conceptos ms objetivos y propios de Big Data.
3. TTULO DEL CAPTULO O UNIDAD: Generalidades de Big Data.
5.3. Matriz de planificacin didctica acera de la enseanza de las tecnologas y herramientas de Big
Data.
PONTIFICIA UNIVERSIDAD CATLICA DEL ECUADOR
FACULTAD DE INGENIERA
ESCUELA DE SISTEMAS
UNIDAD DIDCTICA N 3
1. DATOS INFORMATIVOS
Duracin: Una semana
2. OBJETIVO: Lograr que los estudiantes conozcan cules son las principales tecnologas de Big Data y qu plataformas y herramientas permiten
trabajar con Big Data.
3. TTULO DEL CAPTULO O UNIDAD: Herramientas y Tecnologas de Big Data.
1. DATOS INFORMATIVOS
Duracin: Dos semanas
2. OBJETIVO: Lograr que los estudiantes puedan instalar un ambiente de Big Data y que consigan ejecutar ciertos casos prcticos para conocer cmo
funciona el hacer Big Data.
3. TTULO DEL CAPTULO O UNIDAD: Instalacin de un ambiente de Big Data y Casos Prcticos.
6.1. Conclusiones
6.2. Recomendaciones
Bibliografa
Alberto Lafuente. (3 de Junio de 2007). Universidad del Pas Vasco. Obtenido de
http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
Alomoto Talavera, N. M. (2012). Repositorio Digital, Pontificia Universidad Catlica del Ecuador.
Obtenido de http://repositorio.puce.edu.ec/handle/22000/9559
Angel Rios. (Febrero de 2009). Oracle Data Integrator. Recuperado el 19 de Abril de 2016, de
http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/317498_esa.p
df
Garcia, R. (29 de Noviembre de 2009). Apache CouchDB: una base de datos NoSQL (Relax). Obtenido
de http://www.rgnu.com.ar/tag/couchdb/
Leskovec, J., Rajaraman , A., & Ullman, J. (2014). Datasets, Mining of Massive. (A. Ramos Ramn, & J.
Lpez Dvila, Trads.) Palo Alto, California, Estados Unidos de Amrica. Recuperado el 12 de
Febrero de 2016, de http://infolab.stanford.edu/~ullman/mmds/book.pdf
Leskovec, R. a. (s.f.). Mining Massive Datasets. Obtenido de The MapReduce Computational Model
(22:04):
https://d396qusza40orc.cloudfront.net/mmds/lecture_slides/MapReduce2_TheMapReduce
ComputationalModel.pdf
Los Angeles Times. (13 de Abril de 2009). Iving John Good Statistician helped crack Nazi code.
Obtenido de http://www.latimes.com/local/obituaries/la-me-passings13-2009apr13-
story.html
Matei Zaharia, V. S. (11 de Febrero de 2014). Databricks. (C. Ramos , & J. Lpez, Productores)
Recuperado el 31 de Marzo de 2016, de https://databricks.com/spark/about
Nik Rouda, Senior Analyst and Adam DeMattia, Research Analyst. (Diciembre de 2015). Oracle.
Recuperado el 19 de Abril de 2016, de http://www.oracle.com/us/technologies/big-
data/eng-systems-for-big-data-esg-wp-2852701.pdf
Ohlhorst, F. J. (2012). Big Data Analytics: Turning Big Data into Big Money. New Jersey: John Wiley &
Sons.
Ohlhorst, F. J. (2012). Big Data Analytics: Turning Big Data into Big Money. North Carolina: John
Wiley & Sons. Obtenido de
https://books.google.com.ec/books?id=09JagAXxSYgC&printsec=frontcover&dq=big+data+a
nalytics&hl=es&sa=X&sqi=2&redir_esc=y#v=onepage&q=big%20data%20analytics&f=false
O'Ryan, R. E. (3 de Diciembre de 2014). Dice. (C. Ramos, & J. Lpez, Productores) Recuperado el 31
de Marzo de 2016, de http://insights.dice.com/2014/03/12/apache-spark-next-big-thing-
big-data/
Ricardo Barranco Fragoso, IT Specialist for information Management, IBM Software Group . (18 de
Junio de 2012). IBM developerWorks. Obtenido de
https://www.ibm.com/developerworks/ssa/local/im/que-es-big-data/
Ricardo Barranco Fragoso, IT Specialist for Information Management, IBM Software Group Mxico.
(18 de 06 de 2012). /www.ibm.com. Obtenido de
https://www.ibm.com/developerworks/ssa/local/im/que-es-big-data/
SAS. (5 de Enero de 2016). Statistical Analysis System. Obtenido de Sistema de Anlisis Estadstico:
http://www.sas.com/es_mx/company-information.html
Schmarzo, B. (2013). Apache Hadoop. En B. Schmarzo, Big Data: Undersatanding How Data Powers
Big Business. (Big Data, El poder de los datos) (V. Gonzles Len, Trad., pg. 212). Madrid,
Espaa: ANAYA. Recuperado el 30 de Marzo de 2016
Schmarzo, B. (2013). Big Data: Understanding How Data Powers Big Business (Big Data, El poder de
los datos). (L. Vicente Gonzlez, Trad.) Madrid, Espaa: ANAYA.
Shakuntala Gupta, E., & Sabharwal, N. (2015). Pactical MongoDB: Architecting, Developing, and
Administering MongoDB. Nueva York: Apress.
Sullivan, D. (8 de Abril de 2014). Tom's IT PRO. Obtenido de Getting Started with Hadoop 2.0.
Tablet Army. (2012). Manual Bsico. Qu es el Big Data. En Manual Bsico. Qu es el Big Data (pg.
6). Madrid: Prodigioso Volcn.
ANEXOS
El clster de Hadoop consta de cuatro mquinas las cuales estn etiquetadas o nombradas
de la siguiente manera:
Mquina 1:
Nombre: principal
Contrasea: carojona
IP: 192.168.1.100
Hostname y Dominio: master-node.centos
Mquina 2:
Nombre: secundario1
Contrasea: carojona
IP: 192.168.1.101
Mquina 3:
Nombre: secundario2
Contrasea: carojona
IP: 192.168.1.102
Mquina 4:
Nombre: secundario3
Contrasea: carojona
IP: 192.168.1.103
Una vez que se haya ingresado al sistema, dirigirse a la terminal e ingresar con privilegios de
root, en vista que la instalacin y configuracin fue realizada en este usuario.
Una vez ingresado como root, se procede a encender los servicios de Hadoop de la siguiente
manera:
Para ingresar con privilegios de root digitar el siguiente comando:
$su
Digitar la contrasea: carojona
Para encender los servicios de Hadoop, es decir, los demonios del Nodo Master y
Nodos Esclavos desde la mquina correspondiente al Nodo Master (principal), digitar
el siguiente comando:
#start-all.sh
As se puede observar como los servicios datanode se encendieron en cada uno de los Nodos
Esclavo. De igual manera, en la imagen superior se muestra que es necesario ingresar una
contrasea, sta es la misma que en el paso anterior, es decir: carojona. Una vez ingresada
la contrasea, se encienden los dems servicios como el nodemanager y resourcemanager
tal como se evidencia en la siguiente imagen:
Realizados los pasos anteriores, quedaran inicializados todos los servicios de Hadoop en el
Nodo Master y Nodos Esclavos.
De igual manera, si se desea apagar los servicios de Hadoop desde la mquina del Nodo
Master, se puede digitar el siguiente comando:
#stop-all.sh
Hadoop cuenta con algunos ejemplos, tal como se explic en el Captulo IV en la Instalacin
y Configuracin de Hadoop. Los ejemplos con los que cuenta esta herramienta se pueden
Para la recoleccin de tweets, se utiliz una mquina con sistema operativo Ubuntu 16.04,
en la cual se encuentran configuradas las libreras que utiliza Python para la recoleccin de
tweets.
Mquina:
Nombre: bigdata
Contrasea: ltic2016
Una vez dentro del sistema, acceder a la terminal y en este caso no es necesario ingresar
con privilegios de root. En seguida, digitar dentro de la terminal la direccin que contiene el
programa desarrollado en lenguaje Python, mismo que servir para la recoleccin de los
tweets: cd /home/bigdata/Documentos/, si se desea comprobar que el archivo se encuentra
en esta direccin se puede digitar el comando ls.
Como se muestra en la figura anterior, los tweets han sido guardados en la base de datos
quito, para poder acceder a ellos basta con dar un click en el nombre de la base.