Arquitectura del Big Data
Arquitectura del Big Data
Arquitectura del Big Data
net/publication/317356197
CITATION READS
1 468
1 author:
SEE PROFILE
All content following this page was uploaded by Pedro Alfonso Paiva Muñoz on 06 June 2017.
Octubre, 2016
i
AGRADECIMIENTOS
A Dios y La Virgen.
A mi tutor, Prof. Pedro Bonillo, por haberme dado su mejor disposición en cada
una de las consultas. Gracias Prof. Pedro, por su paciencia y dedicación.
ii
RESUMEN
Para lograr éste objetivo fue necesario analizar, estudiar y comparar distintas
herramientas de Big Data preferiblemente open source, con el fin de identificar
los componentes que conformaron el diseño de la arquitectura, los cuales fueron
probados y desarrollados sobre un Sistema de Registro Mercantil, para luego
obtener las conclusiones y las recomendaciones respectivas.
iii
ABSTRACT
Due to the large volume of data that manage many organizations in Venezuela,
they require different technological solutions to the relational model, which is not
designed to manage a high volume of data optimally, for that reason these
companies require Big Data solutions. Among these organizations are SAREN,
which handle a large amount of transactional data daily. The main goal of this
work is analyze and implement a Big Data architecture for storing, querying and
visualize a big amount of data in a commercial register system, in which relational
model is not possible to make consult operations properly due to the large amount
of data that handle. In this work, the Attribute Driven Design was implemented for
architectural design and then their components were implemented. Between the
software tools that were used in the architecture, we found: Apache Cassandra
as the transactional data base, Apache Hadoop as the staging area, Apache Hive
as the query engine, Apache Solr as the BI tool, HUE as the Data Governance
Manager and visualization tool.
To achieve this goal, it was necessary to analyze study and compare open source
tools that would help us to implement the necessary architecture to manage a
significant amount of data to process, store and visualize.
iv
INDICE
v
4.1.1 Tipo de investigación ................................................................................................. 60
4.1.2 Población y Muestra .................................................................................................. 62
4.1.3 Técnicas e Instrumentos de Recolección de Datos .................................................. 62
4.2 Metodología de Desarrollo ................................................................................................ 63
Capítulo 5: Marco Aplicativo ........................................................................................................ 64
5.1 Entrada del ADD ............................................................................................................... 64
5.1.1 Requerimientos funcionales ...................................................................................... 64
5.1.2 Restricciones de diseño ............................................................................................ 65
5.1.3 Requerimientos de calidad ........................................................................................ 65
5.2 Primera iteración de la metodología ADD ........................................................................ 69
5.2.1 Paso 1: Confirmar que haya suficiente información de los requerimientos .............. 69
5.2.2 Paso 2: Escoger un elemento del sistema a descomponer ...................................... 70
5.2.3 Paso 3: Identificar los drivers de la arquitectura ....................................................... 70
5.2.4 Paso 4: Escoger un patrón que satisfaga los drivers de la arquitectura ................... 71
5.2.5 Paso 5: Instanciar los elementos de la arquitectura y asignar responsabilidades. ... 81
5.2.6 Paso 6: Definir las interfaces de los elementos instanciados. .................................. 83
5.2.7 Paso 7: Verificar y refinar los requerimientos para hacer restricciones en los elementos
instanciados ........................................................................................................................ 88
5.3 Implementación de la Arquitectura ................................................................................... 98
Conclusiones y Recomendaciones ........................................................................................... 102
Bibliografía................................................................................................................................. 105
ANEXO 1: Pentaho vs Palo....................................................................................................... 108
ANEXO 2: Hadoop vs Otros ...................................................................................................... 109
ANEXO 3: Cassandra vs Hbase ............................................................................................... 110
ANEXO 4: Solr vs Elasticsearch ............................................................................................... 111
ANEXO 5: HUE vs Banano ....................................................................................................... 112
ANEXO 6: Diseño NoSQL SAREN ........................................................................................... 113
ANEXO 7: Diseño de los mecanisoms ETL .............................................................................. 125
ANEXO 8: Documento Pruebas de carga volumen y estrés .................................................... 137
ANEXO 9: Casos de uso Nivel 1 ............................................................................................... 159
ANEXO 10: Cronología Big Data .............................................................................................. 163
ANEXO 11: Instalación y configuración de Herramientas ........................................................ 178
ANEXO 12: Juicio de Experto ................................................................................................... 222
INDICE DE TABLAS
vi
TABLA 2 ACID VS BASE (BREWER, 2000) ............................................................................... 38
TABLA 3 SEGURIDAD ................................................................................................................ 65
TABLA 4 ESCALABILIDAD ......................................................................................................... 66
TABLA 5 CAPACIDAD DE PRUEBAS ........................................................................................ 67
TABLA 6 TOLERANCIA A FALLOS ............................................................................................ 67
TABLA 7 VISUALIZACIÓN DE DATOS ...................................................................................... 68
TABLA 8 ANÁLISIS DE DATOS ................................................................................................. 69
TABLA 9 DRIVERS DE LA ARQUITECTURA ............................................................................ 70
TABLA 10 PATRONES VS DRIVERS ........................................................................................ 73
TABLA 11 ACTORES - CASOS DE USO NIVEL 0 .................................................................... 94
TABLA 12 FUNCIONALIDADES CASOS DE USO NIVEL 0 ...................................................... 95
TABLA 13 CONTROL DE REVISIONES Y CAMBIOS ............................................................. 137
TABLA 14 PRUEBA 1 ............................................................................................................... 145
TABLA 15 COMANDOS IOSTAT .............................................................................................. 145
TABLA 16 PRUEBA 2 ............................................................................................................... 148
TABLA 17 COMANDOS HDPARM ........................................................................................... 149
TABLA 18 PRUEBA 4 ............................................................................................................... 152
TABLA 19 ESTADÍSTICAS CASSANDRA STRESS ................................................................ 154
TABLA 20 COMANDOS CASSANDRA STRESS ..................................................................... 156
TABLA 21 FUNCIONALIDADES CASOS DE USO NIVEL 1 .................................................... 159
INDICE DE FIGURAS
vii
FIGURA 11 OPERACIONES DE INDEXACIÓN CON LUCENE ................................................ 40
FIGURA 12 ARQUITECTURA SOLR ......................................................................................... 42
FIGURA 13 DIAGRAMA DE VENN CIENCIA DE DATOS ......................................................... 44
FIGURA 14 ESTRUCTURAS DE SOFTWARE .......................................................................... 49
FIGURA 15 CICLO DE VIDA DE ENTREGA EVOLUTIVA ........................................................ 54
FIGURA 16 DIAGRAMA DE COMPONENTES .......................................................................... 92
FIGURA 17 CASO DE USO NIVEL 0; FUENTE: ELABORACIÓN PROPIA .............................. 93
FIGURA 18 INSTALACIÓN JAVA ............................................................................................... 98
FIGURA 19 CLUSTER CASSANDRA 3 NODOS ....................................................................... 98
FIGURA 20 PROCESOS HADOOP NODO MAESTRO ............................................................. 99
FIGURA 21 EVIDENCIA EJECUCIÓN HIVE .............................................................................. 99
FIGURA 22 EJECUCIÓN SOLR ............................................................................................... 100
FIGURA 23 DISEÑO ETL SAREN ............................................................................................ 125
FIGURA 24 TRANSFORMACIÓN CARGA INICIAL ................................................................. 126
FIGURA 25 PASO DE CONEXIÓN BASE DE DATOS ORACLE ............................................ 127
FIGURA 26 PASO DE CONSULTA SQL SOBRE ORACLE .................................................... 128
FIGURA 27 PASO SELECCIÓN DE VALORES ....................................................................... 129
FIGURA 28 SELECCIONAR LOS CAMPOS DE LA CONSULTA ............................................ 129
FIGURA 29 PASO DE LIMPIEZA DE CAMPOS ....................................................................... 130
FIGURA 30 CREACIÓN DE CAMPOS NUEVOS ..................................................................... 131
FIGURA 31 PASO DE SCRIPT DE JAVA ................................................................................ 132
FIGURA 32 PASO PARA CREAR LOS CAMPOS DEL MAP .................................................. 133
FIGURA 33 PASO JAVA SCRIPT PARA INSERCIÓN DE IMÁGENES .................................. 134
FIGURA 34 VARIABLE BYTE BUFFER ................................................................................... 134
FIGURA 35 CAMPOS A INSERTAR EN CASSANDRA ........................................................... 135
FIGURA 36 CÓDIGO FUNCIÓN GUARDARIMAGEN() ........................................................... 136
FIGURA 37 INSTALACIÓN DE IOSTAT ................................................................................... 143
FIGURA 38 INSTALACIÓN DE HDPARM ................................................................................ 144
FIGURA 39 COMANDO IOSTAT .............................................................................................. 146
FIGURA 40 COMANDO IOSTAT -C ......................................................................................... 146
FIGURA 41 COMANDO IOSTAT -D ......................................................................................... 147
FIGURA 42 COMANDO IOSTAT -P SDA ................................................................................. 147
FIGURA 43 COMANDO IOSTAT -N ......................................................................................... 148
FIGURA 44 COMANDO HDPARM -T /DEV/SDA ..................................................................... 149
FIGURA 45 COMANDO HDPARM -T --DIRECT /DEV/SDA .................................................... 150
FIGURA 46 COMANDO IOSTAT .............................................................................................. 151
viii
FIGURA 47 COMANDO IOSTAT -C ......................................................................................... 151
FIGURA 48 COMANDO IOSTAT -D ......................................................................................... 151
FIGURA 49 COMANDO IOSTAT -P SDA ................................................................................. 151
FIGURA 50 COMANDO IOSTAT -N ......................................................................................... 152
FIGURA 51 COMANDO HDPARM -T --DIRECT /DEV/SDA .................................................... 153
FIGURA 52 ESTADÍSTICAS DEL COLUMNFAMILY SAREN.COMUN EN CLÚSTER
PRODUCCIÓN ................................................................................................................. 155
FIGURA 53 ESTADÍSTICAS DEL COLUMNFAMILY SAREN.MERCANTIL, CLUSTER
PRODUCCIÓN ................................................................................................................. 156
FIGURA 54 SALIDA.OUT ......................................................................................................... 158
FIGURA 55 RESULTADOS FINALES DE LA PRUEBA ........................................................... 158
FIGURA 56 CASOS DE USO NIVEL 1 ..................................................................................... 159
ix
INTRODUCCIÓN
En los últimos años se ha observado un aumento exponencial en la generación
de datos por las empresas, esto quizás por el auge del internet como herramienta
de globalización a la hora de expandirse, lo cual trae como resultado una
cantidad masiva de datos generados, ya sea por las transacciones de la empresa
o por los datos que generan los usuarios en las redes sociales. (Wall, 2014)
Todos éstos datos históricos pueden ser utilizados por las empresas u
organizaciones para tomar mejores decisiones en su respectivo modelo de
negocio, bien sea para saber cuándo enviar más productos a los almacenes,
cuándo producir más de un producto, saber el momento ideal para lanzar un
descuento o incluso aumentar las ventas ubicando los productos en sitios
estratégicos (como el caso de Walmart) (The Register, 2006)
Estas empresas u organizaciones que utilizan sus datos como una fuente de
información valiosa para el negocio vienen a conocerse como organizaciones
“Data Driven”, las cuales han tenido muchos casos de éxito y nos enseñan que
los datos son “el nuevo petróleo” para indicar su importancia dentro de las
mismas. (Morgan, 2015)
Para cumplir con el objetivo del proyecto, se procedió a analizar cada una de las
herramientas utilizadas en una arquitectura Big Data mediante el uso de patrones
de diseño Big Data y se encontraron que aquellas que siendo de Software Libre
lograron cumplir las expectativas y los objetivos de la organización, utilizando
1
como alcance la base de datos relacional desarrollada bajo Oracle en los
Registros Mercantiles del Servicio Autónomo de Registros y Notarías (SAREN)
de la República Bolivariana de Venezuela.
2
Capítulo 1: Identificación de la Empresa
3
impuesto respectivo. Después de 1830 en que se separó Venezuela de la Gran
Colombia, se mantuvieron las instituciones de las escribanías y de anotación de
hipotecas y registros.
En 1836 se crea el primer Código de Procedimiento Judicial de Venezuela, se
ordenaba que con excepción del otorgamiento de poderes y de registros, los
escribanos y jueces donde no los había, continuarían otorgando los documentos
hasta que se establecieran La Oficinas de Registros a los cuales pasarían las
funciones de los escribanos. El 24 de mayo de 1836, se ordenó organizar en
cada provincia una Oficina Principal de Registro.
El Gobierno Nacional creó el Ministerio de Justicia mediante Decreto No 40
contenido en la Gaceta Oficial No 23.418 del 30/12/1950, confiriéndole una serie
de funciones de conformidad con la Ley Orgánica de la Administración Central,
promulgada en Gaceta Oficial No 1932 Extraordinaria, de fecha 28/12/76, y
donde su artículo 34 establecía “…corresponde al Ministerio de Justicia la
planificación y la realización de las actividades del Ejecutivo Nacional en el sector
de Justicia y de Defensa Social, que comprende las relaciones con el Poder
Judicial, la Legislación y la Seguridad Jurídica, la Prevención y la Represión del
Delito y las Relaciones con los Cultos establecidos en el país; y en particular las
actividades siguientes:
• El Registro Público
• Las Notarías y los Registros Mercantiles
• El Archivo General de la Nación …”
Funcionó como Dirección General Sectorial de Registros y Notarías en el año de
1.994, y como Dirección General de Registros y Notarías a principios del año de
1.996.
Luego en ese mismo año mediante Decreto 3.148 publicado en Gaceta Oficial
36.615 de fecha 06/01/99 se crea de derecho la Superintendencia de Registros
y Notarías, sin embargo, ella no ejerció las actividades administrativas
correspondientes, manteniéndose como la Dirección General de Registros y de
Notarías.
4
En fecha 13 de noviembre de 2001, mediante Decreto No 1.554, se promulga la
Ley del Registro Público y del Notariado, la cual en su artículo 14 establece la
creación de la Dirección Nacional de Registros y del Notariado.
1.2 Misión
1.3 Visión
• Centralizar y controlar los ingresos, así como los gastos operativos, con
la finalidad de lograr la sustentabilidad del SAREN y reinvertir parte de
ellos para mejorar la efectividad de los servicios en todas las áreas que lo
requieran y en función del desarrollo organizacional de la institución.
1.5 Organigrama
6
Figura 1 Organigrama SAREN
Fuente: (SAREN, Organigrama, 2016)
7
Capítulo 2: Problema de Investigación
2.1 Contexto
El presente trabajo está enfocado en diseñar una arquitectura Big Data para
Registros Mercantiles por lo cual se explicará el contexto de la organización o
institución que maneja dichos registros.
8
transacciones, las cuales se almacenan dependiendo del tipo de transacción en
una de sus 913 tablas en Oracle.
9
2.4 Objetivos
Como una solución al problema antes planteado, se tuvo previsto llevar a cabo
el objetivo general y los objetivos específicos:
El objetivo general del presente trabajo es Desarrollar una Arquitectura Big Data
para Registros Mercantiles.
2.5 Justificación
10
• La licencia de Oracle que utiliza SAREN está llegando a su fin, por lo que
se necesitó pensar en una solución de Software Libre, además de que el
presupuesto de SAREN no abarca el pago a empresas que cobren en
dólares.
• Las consultas realizadas en sus bases de datos consumen bastante
tiempo en responder, debido a la enorme cantidad de registros que
manejan a nivel nacional.
• Al disponer de tantos registros en sus bases de datos el sistema
relacional comienza a tener bajas de rendimiento, como el caso de las
consultas. Esto debido a que los sistemas de bases de datos relacionales
no fueron diseñados para almacenar y procesar enormes cantidades de
registros y el uso de joins consume muchos recursos del computador.
• La desnormalización de los datos ayuda a disminuir los tiempos de
lectura y escritura, por lo que una solución utilizando una base de datos
NoSQL junto con un paradigma Map Reduce es lo más indicado en este
caso.
• En la ley de infogobierno de la República Bolivariana de Venezuela
destaca en su artículo 34 que todo proyecto de tecnología de la
Administración Pública debe hacerse utilizando Software Libre, para
garantizar al Poder Público el control sobre las tecnologías de
información empleadas y el acceso de las personas a los servicios
empleados. SAREN al ser un órgano adscrito al Ministerio del Poder
Público se rige por esta misma ley.
• El desarrollo de una arquitectura de Big Data en SAREN implica una
solución innovadora a nivel nacional, debido a que la utilización de este
tipo de soluciones de software no se ha implementado anteriormente en
el país.
2.6 Alcance
11
El desarrollo de la arquitectura se realizó en base a los datos en Oracle del
sistema actual, que abarca un total de 50 oficinas a nivel nacional encargadas
de los registros mercantiles en SAREN.
2.7 Limitaciones
12
Capítulo 3: Marco Conceptual
1.2.1 Introducción
14
Figura 2 Big Data en las empresas
Fuente: Herramientas para Big Data:
Entono Hadoop (Sanchez,2014)
Actualmente para considerar una solución Big Data, se toma en cuenta que los
datos presenten cuatro características principalmente, los cuales son:
Variedad, Velocidad, Volumen y Veracidad (también se hablan de otras V’s
como la visualización, sin embargo, las cuatro mencionadas anteriormente son
las principales). La variedad indica que la data puede estar en diferentes
formatos, puede ser estructurada o no estructurada y venir de distintas fuentes,
la velocidad indica la rapidez con la que se generan los datos, el volumen
indica la cantidad que se genera y la veracidad indica la certeza de los datos.
(IBM, 2015)
15
• Facebook almacena aproximadamente 10 mil millones de fotografías
• Ancestry.com almacena aproximadamente 2,5 petabytes de datos.
• New York Stock Exchange genera alrededor de 1 terabyte al día.
• El colisionador de hadrones de Suiza produce alrededor de 15 petabytes
de datos al año.
• Los usuarios de YouTube suben 100 horas de video en 1 minuto
• Se producen 300.000 tweets en un minuto.
• 2.000.000 de consultas a Google en sólo un minuto.
Además del gran volumen de información que se genera diariamente, ésta existe
en una gran variedad de datos que pueden ser representados de diversas
maneras en todo el mundo, por ejemplo, de dispositivos móviles, audio, video,
sistemas GPS, incontables sensores digitales en equipos industriales,
automóviles, entre otros. Las aplicaciones que analizan éstos datos requieren
que la velocidad de respuesta sea lo demasiado rápida para lograr obtener la
información correcta en el momento preciso.
16
Figura 3 Tipos de datos en Big Data
Fuente: (Soares, 2012)
17
están disponibles en formatos tanto semiestructurados como no
estructurados.
• Biometrics: Información biométrica en la que se incluye huellas digitales,
escaneo de retina, reconocimiento facial, genética, etc. En el área de
seguridad e inteligencia, los datos biométricos han sido información
importante para las agencias de investigación.
• Human Generated: Las personas generamos diversas cantidades de
datos como la información que guarda un call center al establecer una
llamada telefónica, notas de voz, correos electrónicos, documentos
electrónicos, estudios médicos, etc.
Desde que surgieron las primeras formas de escritura hasta los centros de datos
modernos, la raza humana no ha dejado de recopilar información. El crecimiento
del sector tecnológico ha provocado el aumento desmesurado del volumen de
datos, por lo que son necesarios sistemas de almacenamiento de datos más
sofisticados. Se expondrá brevemente los hitos más importantes en el
surgimiento del Big Data:
(winshuttle, 2016)
• El término Big Data es un concepto que hace referencia al
almacenamiento de grandes volúmenes de datos y a los procesos
necesarios para encontrar patrones repetitivos dentro de ésos datos.
• Comienzo de sobrecarga de información (1880): El Censo de los Estados
Unidos del año 1880 tardó ocho años en tabularse, y se calcula que el
censo de 1890 hubiera necesitado más de 10 años para procesarse con
los métodos disponibles en la época. Si no se hubieran realizado avances
en la metodología, la tabulación no habría finalizado antes de que tuviera
que realizarse el censo de 1900.
• La máquina tabuladora de Hollerith (1881): La influencia de los datos del
censo derivó en la invención de la máquina tabuladora de Hollerith
(tarjetas perforadas), que fue capaz de domar esta ingente cantidad de
18
información y permitir realizar el trabajo aproximadamente en un año. Hizo
que Hollerith se convirtiera en emprendedor, y su empresa pasó a formar
parte de lo que hoy en día conocemos como IBM.
• El boom del crecimiento demográfico (1932): La sobrecarga de
información prosiguió con el aumento desmesurado de la población en los
Estados Unidos, la emisión de los números de la seguridad social y el
crecimiento general del conocimiento (y la investigación), aspectos que
exigían un registro de la información más preciso y organizado.
Vea el resto de la cronología en ANEXO 10: Cronología Big Data
19
de alta escalabilidad. Este proyecto es administrado por Apache Software
Foundation.
1.2.3.1.1 Historia
20
(NDFS). En ese mismo año Google publicó otro artículo en el que se presentaba
MapReduce al mundo. A principios de 2005 los desarrolladores de Nutch ya
tenían su propia implementación de MapReduce funcionando para el NDFS
(Figura 4 Procesamiento paralelo en MapReduce del artículo de Google).
En 2006 las implementaciones del NDFS y MapReduce de Nutch se quedan
grandes para el proyecto al que pertenecen, por lo que se extraen para crear un
subproyecto de Lucene con el nombre de Hadoop, ya que eran aplicables más
allá de los ámbitos de la búsqueda en que se estaban utilizando. En ese mismo
año Doug Cutting se unió a Yahoo!, lo que le proporcionó un equipo y recursos
dedicados para desarrollar su proyecto.
21
importancia. Por esta época, Hadoop ya era utilizado por otras compañías tales
como Last.fm, Facebook y el New York Times.
En abril de 2008, Hadoop rompía un récord mundial convirtiéndose en el sistema
más rápido en ordenar 1 Terabyte de datos. Ejecutándose en un clúster de 910
nodos 8 lo consiguió en 209 segundos. En noviembre de ese mismo año, Google
anunció que su implementación de MapReduce, podía ordenar ese volumen de
datos en tan solo 68 segundos. Y en mayo del año siguiente, un equipo de
Yahoo! ya lo consiguió en 62 segundos.
Desde entonces Hadoop y su ecosistema es un referente en muchos aspectos y
sus roles como plataforma de análisis y almacenamiento para grandes datos han
sido reconocidos por la industria del sector. Hay distribuciones Hadoop tanto en
las grandes empresas incluyendo IBM, Microsoft y Oracle, así como compañías
especialistas en Hadoop tales como Cloudera, Hortonworks y MapR. (White,
2012)
1.2.3.1.2 Funcionamiento
22
importancia a la lectura de grandes bloques de datos consecutivos antes que a
la realización de la primera escritura.
23
De la misma forma en caso de pérdida de un datanode, éste se encarga de
mantener la replicación en otro datanode y por lo tanto modifica esta información.
Por otro lado, tenemos los datanodes, éstos son los encargados de almacenar y
obtener la información cuando se les solicita, ya sea por el cliente o por el
namenode. Con tal de mantener un correcto funcionamiento del sistema,
periódicamente se envía la información de los bloques que se están
almacenando en ese datanode al namenode. (Figura 5 Arquitectura básica de
Hadoop)
1.2.3.1.2.2 MapReduce
24
crear un framework adaptado a la computación paralela que permitiera procesar
y generar grandes colecciones de datos sobre máquinas genéricas, sin la
necesidad de utilizar supercomputadores o servidores dedicados, y que fuera
fácilmente escalable.
En esencia, el modelo que propone MapReduce es bastante sencillo. El
programador debe encargarse de implementar dos funciones, map y reduce, que
serán aplicadas a todos los datos de entrada. Tareas como hacer particiones de
los datos de entrada, despliegue de maestro y trabajadores, esquema de
asignación de trabajos a los trabajadores, comunicación y sincronización entre
procesos, tratamiento de caídas de procesos, quedan a cargo del entorno de
ejecución, liberando de esa manera al programador. (White, Hadoop: The
definitive guide, 2012)
El funcionamiento de este paradigma está dividido en dos pasos (para
abstracción del programador):
• Map: donde se realiza la ingestión y la transformación de los datos de
entrada, en la cual los registros de entrada pueden ser procesados en
paralelo. El nodo master obtiene la entrada, la divide en sub-problemas
más pequeños y la distribuye a otros workers. Dicho worker procesa ese
problema más pequeño y produce una lista de pares {clave, valor} y pasa
la respuesta a su nodo master. Después de esto el framework de
MapReduce junta los pares con la misma clave y los agrupa creando un
grupo por cada clave generada.
• Reduce: fase de agregación o resumen, donde todos los registros
asociados entre sí deben ser procesados juntos por una misma entidad.
El nodo master coge cada uno de estos grupos y los envía a un nodo
para ejecutar la tarea de Reduce, por lo que cada sub-tarea reduce
trabaja sobre una clave. El reducer trata estos datos y devuelve un output
resultado de ello.
25
Figura 6 Conteo de palabras con MapReduce
Fuente: (Lowell, 2013)
Uno de los problemas fundamentales que presenta Hadoop 1.0 es que solo
admite un paradigma de programación: MapReduce. A pesar de que este modelo
de programación es apropiado para el análisis de grandes conjuntos de datos,
en ocasiones es necesario realizar otro tipo de análisis o sería más propicio
utilizar otro tipo de software para analizar datos, pero aprovechándonos de la
ventaja que proporciona un clúster Hadoop. Para intentar solventar este
inconveniente surge un nuevo componente fundamental dentro de Hadoop:
YARN.
Apache Hadoop YARN es un subproyecto de Hadoop en la Apache Software
Foundation introducido en la versión Hadoop 2.0 que separa la gestión de
recursos de los componentes de procesamiento. YARN surge para corregir el
inconveniente principal de Hadoop y permitir una gama más amplia de modelos
de programación para analizar los datos almacenados en el HDFS más allá de
MapReduce. La arquitectura de Hadoop 2.0 basada en YARN provee una
plataforma de procesamiento más general y no restringida a MapReduce.
En Hadoop 2.0, YARN toma las capacidades de gestión de los recursos que
residían en MapReduce y las empaqueta para que puedan ser utilizados por los
nuevos motores de procesado. Esto también simplifica la tarea de MapReduce
26
en únicamente hacer lo que mejor sabe hacer, tratar datos. Con YARN, se
permite ejecutar varias aplicaciones en Hadoop, todos compartiendo una gestión
común de los recursos. MapReduce se convierte ahora en una librería Hadoop
es decir una aplicación que reside en Hadoop y deja la gestión de recursos del
clúster para el componente YARN. (Figura 7 Evolución de Hadoop 1.0 a Hadoop
2.0).
La aparición de YARN provoca el desarrollo de nuevas herramientas que cubren
múltiples necesidades que únicamente con MapReduce no se podían completar.
(Figura 8 Nuevas aplicaciones YARN)
27
1.2.3.1.2.4 Arquitectura de Hadoop 2.0
28
y de los progresos de ejecución. Desde la perspectiva del sistema, el propio
ApplicationMaster se ejecuta como un container normal. (Figura 9 Arquitectura
Hadoop 2.0 YARN)
A pesar de que los componentes evolucionen, una de las virtudes de YARN, es
que mantiene el esquema de gestión de recursos utilizado con MapReduce lo
que genera que Hadoop 2.0 esté totalmente integrado en este paradigma de
programación.
29
empresas privadas como Cloudera o Hortonworks trabajan desarrollando todo
este tipo de plataformas.
30
• Hive: facilita la consulta y gestión de grandes conjuntos de datos que
residen en almacenamiento distribuidos. Hive proporciona un mecanismo
para la ver la estructura de los datos utilizando un lenguaje similar a SQL
llamado HiveQL.
• Mahout: se trata de un software libre centrado en la implementación de
algoritmos de machine learning distribuidos.
• Pig: Apache Pig es una plataforma para el análisis de grandes conjuntos
de datos que se caracteriza por un lenguaje de alto nivel para la creación
de los programas de análisis de datos, junto con la infraestructura
necesaria para la evaluación de estos programas. La propiedad más
importante de los programas Pig es que su estructura es susceptible de
una paralelización sustancial, lo que a su vez permite manejar grandes
conjuntos de datos.
• Spark: proporciona un motor de cálculo rápido y general para datos
Hadoop. Spark proporciona un modelo de programación sencillo y
expresivo que soporta una amplia gama de aplicaciones, incluyendo ETL,
machine learning, procesamiento de flujo, y computación gráfica.
• ZooKeeper: es un servicio centralizado construido para mantener la
información de configuración, proporcionar sincronización distribuida y la
prestación de servicios de grupo. Todos estos tipos de servicios se utilizan
de una forma u otra por las aplicaciones distribuidas.
31
Figura 10 Ecosistema Hadoop
Fuente: (Blog, 2016)
1.2.3.2.1 Introducción
32
variedad de alternativas en bases de datos. Las cuales no siguen el modelo
relacional propuesto por Frank Codd ya que poseen un esquema flexible y cada
una surge para solventar una clase de problema en específico. Este movimiento
es lo que se conoce como NoSQL (Not only SQL).
El término NoSQL fue usado por primera vez en 1998 para una base de datos
relacional que omitía el uso de SQL (Strozzi, 2010). El término fue utilizado de
nuevo en el año 2009 para una conferencia realizada en San Francisco acerca
de bases de datos que no seguían el modelo relacional, tales como Last.fm
desarrollada por Jon Oskarsson quien fue el encargado de organizar el evento.
(Evans, 2009)
33
con join o no poder confiar en el modelo de consistencia read-after-
write
• Modelos de datos sin esquema podría ser una mala decisión
de diseño: Los modelos de datos sin esquema son flexibles desde
el punto de vista del diseñador, pero son difíciles para consultar sus
datos.
Desde la visión de los adeptos a las bases de datos NoSQL podemos mencionar
las siguientes razones para desarrollar y utilizar ésta tecnología:
34
De acuerdo a la manera en que las bases de datos NoSQL almacenan sus datos
es posible clasificarlas de la siguiente manera:
• Almacenamiento clave-valor
• Bases de datos orientadas a columnas
• Base de datos documentales
• Base de datos orientada a grafos
35
Tabla 1 Alternativas en Teorema de CAP
Fuente: (Antiñanco, 2013)
36
Los proveedores de bases de datos se percataron de la necesidad de particionar,
por lo que introdujeron el protocolo de commit a 2 fases para seguir manteniendo
las propiedades ACID en las instancias de las bases de datos. El cual consiste
en:
• Primera fase: el coordinador de la transacción solicita a cada base de
datos involucrada que indiquen si es posible que realicen commit. Si es
posible se procede a continuar con la segunda fase.
• Segunda fase: El coordinador de la transacción solicita a cada base de
datos que realice el commit.
37
y evitar una falla total del sistema. Así, por ejemplo, si la información de usuarios
estuviera particionada a través de 5 servidores de bases de datos, un diseño
utilizando BASE alentaría una estrategia tal que una falla en uno de los
servidores impacte sólo en el 20% de los usuarios de ese host.
Los motores de búsqueda son programas que permiten hacer búsquedas por
palabras claves y retornan una lista de documentos en donde se encontraron las
palabras claves. Funcionan mediante la creación de índices con los cuales luego
se realizan las búsquedas y a diferencia de las bases de datos, permiten integrar
búsquedas de diversas fuentes de datos, permiten la escalabilidad, ranking por
relevancia y hacer búsquedas por facetas. (Wikipedia, Motores de busqueda,
2015)
Estas herramientas son necesarias para facilitar las búsquedas a los usuarios,
ya que al hablar de grandes volúmenes de datos como es el caso de la web es
muy probable que el usuario final encuentre información que no le sea de utilidad,
por lo cual estas herramientas se manejan con análisis de contenido como es el
38
caso del algoritmo de Google, Page Rank, en el cual se hace un ranking de las
páginas más importantes dependiendo de la búsqueda realizada.
1.2.3.3.1 Lucene
Puede indexar cualquier formato de texto, como MS Word, HTML, XML, PDF y
OpenDocument, siempre y cuando la información textual pueda ser extraída, lo
que quiere decir que no puede indexar imágenes.
Algunas características:
39
• Un documento es visto como una lista de campos, donde un campo tiene
un nombre y un valor.
• La unidad de indexación en Lucene es un término, el cual puede ser a
menudo una palabra. Los índices rastrean las frecuencias de los términos
• Lucene utiliza índices inversos que permiten localizar rápidamente los
documentos asociados a la condición entrante de búsqueda.
Algunas ventajas:
• Rápido indexamiento
• Búsqueda rápida
40
Algunas desventajas:
1.2.3.3.2 SolR
41
• Es posible construir índices escalables a través del paradigma Map
Reduce
42
La importancia de la visualización de los datos radica en que permite al analista
de datos, bien sea un gerente o un científico de datos, facilitarles la comprensión
de los datos, de modo que puedan realizar sus funciones con mayor facilidad y
puedan a su vez transmitir la información que encontraron en los datos.
Entre las herramientas de análisis más conocidas en el mundo del Big Data se
encuentran:
• RStudio que es más conocida en el ámbito científico por su manejo de
lenguaje de análisis R, el cual es muy utilizado por científicos de datos.
• Podemos mencionar Apache Mahout, el cual me permite utilizar
algoritmos en su librería para hacer máquinas de aprendizaje
• Apache Spark el cual se integra con Hadoop y posee un módulo llamado
Spark MILIB en el cual también se utiliza para hacer machine learning,
además de poseer módulos para hacer consultas en SQL y análisis de
grafos, con la peculiaridad de que Spark utiliza la memoria RAM de la
máquina, lo que lo hace una herramienta más rápida que utilizar solo
Hadoop.
43
mejorar servicios o incluso prever eventos mediante el uso de modelos
predictivos.
Los científicos de datos son uno de los mayores beneficiados por el uso del Big
Data, ya que de ésta manera disponen de mayor cantidad de datos a analizar y
de las herramientas necesarias para sus respectivos análisis.
Entre las funciones que realizan los científicos de datos, podemos resumirlas en
3 principalmente: (Sánchez, 2014)
44
• Captura de los datos: Captura y almacenamiento de la información. Es
el procedimiento manual de convertir “raw data” (información en bruto) en
información con formato para que pueda ser analizada.
• Análisis de los datos: Obtención de valor a partir de la información. Para
lograrlo es necesario realizar procesos de minería de datos como limpieza
o transformaciones, luego aplicar funciones estadísticas, experimentar
con modelos predictivos y mediante el cálculo de errores observar cuál es
el que se adapta mejor al problema a resolver.
• Visualización de los datos: Visualización de los resultados obtenidos
anteriormente. En muchos casos el científico de datos debe dirigirse con
un lenguaje más accesible para explicar los resultados obtenidos, por lo
que requiere de habilidad para expresar sus investigaciones de manera
clara y entendible apoyándose en el uso de gráficos que puedan ayudarle
a comunicar los resultados obtenidos.
Todos los sistemas tienen una arquitectura, es decir, una estructura de alto nivel
que define todo el sistema. En la arquitectura de software se observa como todas
las piezas que componen el sistema encajan para aportar una solución al
problema que se desea resolver el cliente.
45
1.4.1 Importancia de la Arquitectura de Software
46
• Instrucciones de los subsistemas y componentes: Explica como los
componentes del sistema son desplegados en plataformas
computacionales y como se deben combinar para su correcto
funcionamiento.
• Subsistemas críticos y capas: La arquitectura describe las diferentes
vistas y partes del sistema y como se relacionan. También explica en
detalle sus subsistemas más críticos.
• Interfaces criticas del sistema
• Escenarios claves que describen el comportamiento del sistema
48
Figura 14 Estructuras de software
Fuente: (Bass, Clements, & Kazman, 2003)
1.4.3.1.1 Módulos
49
• Capas. Cuando las relaciones de usos en esta estructura son controladas
de forma particular, un sistema de capas emerge, en el cual una capa es
un conjunto de funcionalidades relacionadas.
• Clases, o generalización. Las unidades de módulo de estas estructuras,
son llamadas clases. La relación es “hereda de” o “es una instancia de”.
Esta vista permite el razonamiento de colecciones con el mismo
comportamiento o capacidad y parametrizar diferencias que son
capturadas por subclases.
• Procesos. Las unidades aquí son procesos o hilos que están conectados
entre sí por la comunicación, sincronización, y/o exclusión de
operaciones. Las estructuras de procesos ayudan a diseñar en los
sistemas el rendimiento de ejecución y disponibilidad.
• Concurrencia. Estas estructuras ayudan a los arquitectos a determinar
oportunidades de paralelismo y la locación donde la contención de
recursos pueda ocurrir. Las unidades son componentes y los conectores
son “hilos lógicos”
• Datos compartidos o repositorios. Esta estructura incluye
componentes y conectores que crean, almacenan y acceden a data
persistente. Muestra como la data es producida y consumida por
elementos de software en tiempo de ejecución y puede ser usado para
asegurar un buen rendimiento e integridad de la data.
• Cliente-Servidor. Los componentes son clientes-servidores y lo
conectores son los protocolos que comparten para el pase de mensajes.
Si el sistema está construido como un grupo de clientes y servidores que
cooperan entre sí, esta es una buena estructura de componentes y
servidores a ser utilizada.
50
1.4.3.1.3 Asignación
51
• Lógica. Asigna el sistema en clases y componentes, se enfoca en las
partes del sistema que proveen una funcionalidad y que los usuarios verán
cuando interactúen con el sistema.
• Procesos. Explica como las partes del sistema trabajan en conjunto y
como se mantienen en sincronización. También explica como el sistema
asigna las unidades computacionales, como son los procesos e hilos.
• Desarrollo. Explica cómo se gestionará el software durante el desarrollo
• Física. Explica como el software que implementa el sistema es asignado
en las plataformas computacionales.
52
1.5 Diseño de una Arquitectura de Software
Cualquier organización que adopte una arquitectura como fundamento para sus
procesos de desarrollo de software, necesita entender su lugar en el ciclo vital.
Existen muchos modelos de ciclo vital, pero uno que pone la arquitectura como
tema central es el modelo de Entrega Evolutiva o Evolutionary Delivery Life Cycle
(ver Figura 15 Ciclo de Vida de entrega evolutiva). El objetivo de este modelo es
involucrar al usuario y clientes en el desarrollo, obteniendo retroalimentación de
ellos e iterar entre varios lanzamientos hasta generar un lanzamiento final del
producto.
53
Figura 15 Ciclo de Vida de entrega evolutiva
Fuente: (Bass, Clements, & Kazman, 2003)
54
ADD es una aproximación para definir una arquitectura de softwate que basa su
proceso de descomposición en los atributos de calidad que el software debe
satisfacer. Este proceso de descomposición es recursivo y es un método top-
down, donde en cada etapa se escogen tácticas y patrones de arquitectura para
satisfacer un conjunto de escenarios de calidad.
La diferencia entre una arquitectura que resulta de aplicar ADD y una lista para
su implementación está en las decisiones de diseño más detalladas que se
deben hacer.
Como escenarios de calidad para una puerta de garaje podríamos incluir los
siguientes:
55
• Los dispositivos y controles para abrir y cerrar la puerta son diferentes por
la variedad de productos en la línea de productos.
• El procesador utilizado en diferentes productos diferirá. La arquitectura del
producto para cada procesador en específico debe ser directamente
derivado de la arquitectura de la línea de productos.
• Si un obstáculo (persona u objeto) es detectado por la puerta del garaje
durante su cierre, debe detenerse y reabrirse en 0.1 segundos.
• La puerta del garaje debe ser accesible para recibir diagnósticos y
administración de un sistema de información del hogar, usando un
protocolo de diagnóstico para productos.
56
o Escoger los drivers de la arquitectura del conjunto de escenarios
de calidad y requerimientos funcionales. Este paso determina que
es lo más importante para la descomposición.
o Escoger un patrón arquitectural que satisfaga los drivers de la
arquitectura. Crea (o selecciona) el patrón basado en las tácticas
que pueden ser usadas para lograr los drivers arquitecturales.
Identificar los módulos secundarios necesarios para poner en
práctica las tácticas.
o Instanciar los módulos y asignar la funcionalidad de los casos de
usos representándolos usando múltiples puntos de vista.
o Definir las interfaces de los módulos secundarios. La
descomposición proporciona módulos y restricciones en los tipos
de interacción de los módulos. Documenta esta información en la
interfaz de documentación para cada módulo.
o Verificar y refinar los casos de uso y los escenarios de calidad y
convertirlos en restricciones para los módulos secundarios. En este
paso se verifica que nada importante fue olvidado y prepara los
módulos secundarios para su futura descomposición o
implementación.
• Repetir los pasos anteriores para cada módulo que necesite ser
descompuesto.
57
cada equipo debe establecer sus enlaces de comunicación y coordinación con
otros grupos.
58
Una vez que se han elegido los elementos que proporcionan el siguiente
incremento de la funcionalidad, se puede emplear las estructuras de usos que
digan cual software adicional debe estar funcionando correctamente en el
sistema para apoyar esa funcionalidad.
59
Capítulo 4: Marco Metodológico
60
El proyecto factible conforma un proceso de planificación en el cual la
investigación es una etapa que le proporciona información para sustentar la
propuesta.
61
• En el caso de que se tenga que desarrollar el proyecto factible, es
necesario indicar la ejecución de la propuesta y la evaluación tanto del
proceso como de sus resultados. Para la ejecución del presente trabajo
se contó con un ambiente de desarrollo y un ambiente de calidad, los
cuales fueron desplegados en la oficina de SAREN ubicada en Altamira.
En estos ambientes se instalaron y configuraron todos los componentes
de la arquitectura de acuerdo a las herramientas seleccionadas a través
de las matrices de evaluación en base a la metodología Desmet. Se
desarrollaron los mecanismos de Extracción, Transformación y Carga
(ETL). Se diseñó el modelo de datos NoSQL y se realizaron las pruebas
respectivas.
La población de este Trabajo Especial de Grado está representada por todos los
Registros Mercantiles de Venezuela, que están conformadas por 48 oficinas a
nivel nacional.
62
con más dinamismo que los libros los adelantos que se producen. (Sabino
C. , 1992).
La técnica consiste en recopilar y revisar todos aquellos documentos que
permiten confrontar el aspecto teórico con la situación real o práctica
dentro del diseño e implementación de arquitecturas Big Data en el
mercado moderno.
63
Capítulo 5: Marco Aplicativo
Las entradas deben ser obtenidas de los stakeholders del sistema, por lo que se
involucró a las personas que estarían afectadas con la implementación del
sistema. En nuestro caso, los directores de tecnología de SAREN, técnicos del
sistema y usuarios.
64
• El Sistema debe permitir realizar búsquedas rápidas al usuario.
• El Sistema debe permitir integrar los datos de todas las oficinas
encargadas del Registro Mercantil a nivel nacional.
• El Sistema debe mantener su rendimiento aun cuando se maneje un gran
volumen de datos.
Tabla 3 Seguridad
65
Ambiente El usuario intenta acceder a la
plataforma del sistema mediante una
autenticación.
Artefacto Clúster NoSQL.
Respuesta Se solicita al usuario que ingrese una
contraseña, la cual previamente fue
creada siguiendo normas de
seguridad
Medida de la Respuesta La contraseña es alfanumérica y con
más de 7 dígitos.
Tabla 4 Escalabilidad
66
Medida de la Respuesta Las consultas de los datos, no deben
tardar más de 2 minutos si revisa más
de 50 millones de registros,
dependiendo de la cantidad de datos.
El sistema debe aceptar la
escalabilidad horizontal.
67
Fuente de Estimulo Ocurre una falla al hacer una consulta
a un dato de algún Nodo.
Reinicio del Sistema, Apagón
eléctrico, catástrofe ambiental.
Ambiente Ocurre una falla al hacer una consulta
a un dato de algún Nodo.
Reinicio del Sistema, Apagón
eléctrico, catástrofe ambiental.
Artefacto Clúster NoSQL u otro componente de
la arquitectura.
Respuesta El sistema debe ser capaz de
responder a las solicitudes de
consulta mediante algún respaldo de
los datos.
Medida de la Respuesta El Sistema replica los datos, de
manera que, si algún nodo de
almacenamiento falla, otro pueda
responder en su lugar. Por lo que el
sistema debe responder a la consulta
de datos siempre.
68
Respuesta Se debe permitir al usuario visualizar
los datos por medio de dashboards y
gráficos.
Medida de la Respuesta Acceder a los datos y generar gráficos
de los datos existentes en el almacén
de datos.
69
la Arquitectura. Fueron obtenidos previamente en reuniones con los stakeholders
y cualquier responsable de la empresa afectado por el diseño de la nueva
arquitectura.
70
• El tercer driver es la Variedad, debido a que el Sistema contiene muchos
datos en sus tablas en NULL, es necesario que el esquema sea flexible y
acepte una amplia variedad de datos.
• El cuarto driver es las consultas de imágenes, debido a que un importante
porcentaje de los datos que maneja SAREN son de tipo blob, por lo cual
es necesario poder almacenar y realizar consultas a esas imágenes, que
por lo general son documentos o firmas.
• El quinto driver es la tolerancia a Fallos. Usualmente en Big Data se utiliza
commodity hardware el cual tiene un alto riesgo a fallar, por lo cual deben
existir mecanismos para evitar perder datos.
• El sexto driver es la generación de reportes, lo cual significa que en la
empresa de SAREN es de gran importancia que sus plataformas permitan
la generación de reportes y dashboards, mediante la utilización de
herramientas de inteligencia de negocio para tomar acciones acertadas.
• Fuente Relacional
La cantidad de datos crece exponencialmente con el tiempo:
72
• Gobierno de conjunto de datos centralizada
Existen datos de diferentes formatos y pueden ser no estructurados:
1. Velocidad
2. Volúmen
3. Consulta a imágenes
4. Tolerancia a fallos
5. Variabilidad
6. Generación de reportes
Drivers
Patrones 1 2 3 4 5 6
73
Alto volumen de Si Si Si No Si No
almacenamiento
binario
Alto volumen de Si Si Si No No No
almacenamiento
tabular
Fuente Si Si No No No No
Relacional
Procesamiento Si Si No No No Si
Batch a gran
escala
Desnormalizació Si Si No No No No
n del conjunto de
datos
Fragmentación Si Si No Si No No
de datos
automático
Replicación y No Si No Si No No
reconstrucción de
los datos
automático
Gobierno de No Si No No No No
conjunto de datos
centralizada
Acceso directo a No No No No No Si
los datos
74
Acceso indirecto No No No No No Si
a los datos
75
➢ Solución: Para importar datos relacionales se hace una conexión directa
desde la plataforma Big Data hasta la base de datos relacional.
➢ Aplicación: Se utiliza un motor de transferencia de datos (herramienta
ETL) en el cual se emplean diferentes conectores para conectarse a
diferentes bases de datos y luego ejecutar consultas SQL para obtener
los datos que serán importados.
➢ Mecanismos: Motor de transferencia de datos, motor de procesamiento,
mecanismo de almacenamiento, motor de flujo de trabajo, portal de
productividad, manejador de recursos, motor de coordinación.
76
➢ Problema: Procesar grandes cantidades de datos puede llegar a tener
bajo rendimiento, además de que las técnicas tradicionales de
procesamiento de datos son ineficientes para grandes volúmenes de
datos debido a la latencia de transferencia de datos.
➢ Solución: Los datos son consolidados en forma de un gran conjunto de
datos y luego se procesan utilizando una técnica de procesamiento
distribuido.
➢ Aplicación: Los datos se procesan utilizando un sistema de
procesamiento por lotes distribuidos, de tal manera que todo el conjunto
de datos se procesa como parte del mismo ciclo de procesamiento de una
manera distribuida.
➢ Mecanismos: motor de procesamiento, motor de transferencia de datos,
mecanismo de almacenamiento, manejador de recursos, motor de
coordinación.
77
❖ Fragmentación de datos automático: Este patrón se utiliza para mejorar el
rendimiento de acceso de los clientes al conjunto de datos, sin embargo, en
caso de tener muchos datos fragmentados, el rendimiento puede decaer.
Este patrón es usado en conjunto con el patrón de replicación y
reconstrucción de datos automáticos para evitar perdida de datos.
➢ Problema: Mientras la cantidad de datos y el número de clientes
accediendo a los datos aumentan, la latencia de acceso de los datos va
aumentando gradualmente, lo que afecta el tiempo en completar las
consultas.
➢ Solución: El conjunto de datos es dividido horizontalmente por lo que los
subconjuntos de filas son almacenados en diferentes maquinas a través
del clúster, de este modo se distribuye la carga garantizando un alto
rendimiento.
➢ Aplicación: Se utiliza una base de datos NoSQL que implementa
fragmentación automática que dirige a los clientes a diferentes fragmentos
en función de su respectivo criterio de consulta.
➢ Mecanismos: Mecanismo de almacenamiento que soporte la
fragmentación automática.
78
➢ Mecanismos: Mecanismo de almacenamiento que soporte la replicación
de los datos.
79
➢ Mecanismos: Mecanismo de almacenamiento, motor de consulta, motor
de procesamiento, manejador de recursos, motor de coordinación.
❖ Acceso indirecto a los datos: Este patrón es utilizado para realizar reportes
en herramientas BI en las cuales los datos deben ser exportados y
transformados para su correcto procesamiento.
➢ Problema: Los analistas de datos que utilizan herramientas tradicionales
de Inteligencia de negocio quizás deban acceder a datos procesados en
la plataforma Big Data. Sin embargo, el uso de tecnologías de
almacenamiento no relacional hace de esta tarea algo difícil, debido a que
las herramientas tradicionales de inteligencia de negocio soportan solo
conexiones a almacenes de datos relacionales.
➢ Solución: Los datos ya procesados son exportados al almacén de datos
relacional, desde donde puede ser accedido por las herramientas
existentes de inteligencia de negocio sin la necesidad de hacer
conexiones separadas.
➢ Aplicación: Los datos procesados son convertidos al esquema requerido,
para luego ser exportados al almacén de datos relacional usando una
conexión.
➢ Mecanismos: Motor de transferencia de datos, mecanismo de
almacenamiento, portal de productividad, motor de flujo de trabajo, motor
de consultas.
80
Para el primer conjunto de patrones combinados se encuentran: Replicación y
reconstrucción de datos automáticos, fragmentación de datos automáticos, alto
volumen de almacenamiento binario y alto volumen de almacenamiento tabular.
Estos patrones pueden combinarse en un solo patrón que satisfaga todos los
requerimientos, el cual llamaremos “patrón combinado de almacenamiento”.
81
➢ Drivers relacionados: Velocidad y Volumen.
➢ Componente de la arquitectura: Mecanismos de Extracción,
Transformación y Carga.
➢ Responsabilidad: Componente encargado de realizar la transferencia de
datos a otros componentes de la arquitectura que lo requieran.
❖ Procesamiento Batch a gran escala
➢ Drivers relacionados: Volumen, Velocidad y Generación de reportes
(paso de pre-procesar los datos).
➢ Componente de la arquitectura: Estacionamiento de grandes volúmenes
de datos con sistema de archivos distribuidos con capacidad de realizar
procesamiento en paralelo.
➢ Responsabilidad: Componente encargado de almacenar grandes
volúmenes de datos para realizar operaciones sobre ellos.
❖ Acceso directo a los datos:
➢ Drivers relacionados: Volumen y Generación de reportes.
➢ Componente de la arquitectura: Herramienta de software con lenguaje
parecido a SQL y capacidad de conectarse directamente al componente
de Estacionamiento.
➢ Responsabilidad: Componente encargado de realizar las operaciones
sobre el conjunto de datos del estacionamiento para la creación de
cubos y consultas complejas.
❖ Acceso indirecto a los datos:
➢ Drivers relacionados: Volumen y Generación de reportes.
➢ Componente de la arquitectura: Herramienta de inteligencia de negocios
tradicional o con capacidad para grandes volúmenes de datos.
➢ Responsabilidad: Componente encargado de realizar los reportes y
dashboards de los datos que previamente fueron procesados por las
diferentes consultas del negocio.
❖ Gobernabilidad centralizada de los datos:
➢ Drivers relacionados: Generación de reportes y centralización del
sistema.
82
➢ Componente de la arquitectura: Portal de Inteligencia de negocio o
Interfaz web especializada en el manejo de las diferentes herramientas
Big Data.
➢ Responsabilidad: Componente que se encarga de integrar y manejar la
mayoría de las herramientas de la arquitectura mediante una interfaz
usable y segura.
Las herramientas que son objeto de estudio pertenecen al ámbito de los sistemas
de archivos distribuidos, bases de datos NoSql, inteligencia de negocios y
motores de búsqueda para Big Data.
83
• Requerimientos específicos: Abarcan aspectos generales de cada
herramienta y condiciones necesarias que deben cumplir las herramientas
para encajar en la cultura de la organización.
Para la aplicación efectiva del método Desmet, se usó una matriz de evaluación
que consta de los siguientes atributos:
84
A continuación, se presentarán los resultados de la evaluación de las
herramientas. (Para ver las matrices de evaluación ir a ANEXO 1: Pentaho vs
Palo; ANEXO 2: Hadoop vs Otros; ANEXO 3: Cassandra vs Hbase; ANEXO 4:
Solr vs Elasticsearch y ANEXO 5: HUE vs Banano).
85
análisis, obtención de datos, publicación de mecanismos de seguridad, estudio
y predicción de comportamiento.
86
Apache Solr y Elasticsearch son los motores de búsqueda más populares en la
actualidad. Ambas herramientas son muy similares y brindan funcionalidades
parecidas. En el 95% de los casos será indiferente escoger uno o el otro, ambas
herramientas poseen licencia de Apache y una comunidad amplia. Sin embargo,
Apache Solr tiene una contribución de compañías importantes en el área de Big
Data, tales como Hortonworks, MapR y Cloudera.
87
insertados en Cassandra, para luego insertarlos en el nodo semilla de
Cassandra.
• Apache Cassandra: Este componente recibe la información ya
transformada de la herramienta ETL de Pentaho, para luego transmitir los
datos necesarios al componente de estacionamiento o Apache Hadoop
mediante el uso de otra transformación ETL.
• Apache Hadoop: Recibe los datos de la transformación que lee de
Cassandra. En este componente se almacenan la mayoría de los archivos
que serán utilizados por el componente de consultas especializadas para
crear tablas o cubos en el HDFS.
• Apache Hive: En esta etapa la información es consultada directamente
al HDFS el cual realiza un trabajo de mapeo y reducción sobre los datos,
traduciendo la consulta hecha en HQL a un trabajo Map Reduce.
• Apache Solr: Se hace una conexión a la base de datos por defecto
utilizada por Hive, para luego enviar mediante una transformación en
Pentaho, los datos al motor de búsqueda Solr, para posteriormente
realizar reportes, gráficos, dashboards, entre otros.
• HUE: Este componente se conecta directamente con Solr, HDFS y Hive,
por lo que sirve de interfaz para realizar las consultas en Hive y luego
generar los dashboards o reportes en Solr.
En este paso se procede a verificar que los elementos instanciados cumplan con
los diferentes requerimientos funcionales, requerimientos de calidad y las
restricciones de diseño.
88
➢ Requerimientos Funcionales: Cumple con los requerimientos de permitir
al usuario almacenar las transacciones diarias, debido a que es un
mecanismo para transferir datos a su respectiva base de datos. También
ayuda en la integración de las demás oficinas a nivel nacional, mediante
el uso de transformaciones de mediación, que permitan transferir cada
cierto tiempo los datos actualizados de las distintas oficinas del país.
➢ Requerimientos de calidad: Capacidad de pruebas, Escalabilidad,
Tolerancia a fallos. La herramienta fue probada en ambiente GNU/Linux,
además de que se transfirieron millones de registros en una gran cantidad
de tablas migradas y se utilizó un trabajo en la herramienta que indicaba
las transformaciones fallidas.
➢ Restricciones de diseño: Este componente es muy versátil, ya que permite
realizar migraciones a bases de datos relacionales como a base de datos
NoSQL. Pentaho Data Integration no tiene ningún problema de ser
ejecutada en un ambiente GNU/Linux.
❖ Clúster de base de datos NoSQL
➢ Requerimientos Funcionales: Permite realizar inserciones directas en la
base de datos, por lo que en algún futuro será posible prescindir del
modelo relacional por completo, permitiendo a los usuarios almacenar sus
transacciones diarias en esta base de datos NoSQL. Este componente
también es utilizado para almacenar todos los datos de todas las oficinas
a nivel nacional. Permite mantener el rendimiento aun cuando se maneje
grandes volúmenes de datos, debido a que la base de datos NoSQL
puede crecer horizontalmente, permitiendo así repartir la carga de trabajo
entre sus nodos y mantener un rendimiento aceptable.
➢ Requerimientos de calidad: La herramienta fue probada en un ambiente
de desarrollo y calidad GNU/Linux. Se insertaron cientos de millones de
registros y mantuvo un comportamiento óptimo, debido a que este tipo de
base de datos está diseñada para ser escalable. Con respecto a la
tolerancia a fallos, la herramienta posee un factor de replicación lo cual
ayuda a que los datos se encuentren respaldados en varios nodos del
clúster. La base de datos está configurada con la seguridad activada, lo
89
cual implica que para acceder a los datos le solicitara un nombre de
usuario y una contraseña.
➢ Restricciones de diseño: Los datos se cargaron a un Clúster de la base
de datos NoSQL Cassandra.
❖ Componente de estacionamiento Hadoop
➢ Requerimientos funcionales: Permite integrar todos los datos para su
posterior análisis.
➢ Requerimientos de calidad: La herramienta posee tolerancia a fallos al
igual que Cassandra, debido a que los datos pueden ser replicados a
través de varios nodos para mantener un respaldo.
➢ Restricciones de diseño: Es utilizada como estacionamiento debido a que
posee la capacidad de realizar operaciones Map Reduce sobre un gran
volumen de datos.
❖ Componente de Acceso directo a los datos
➢ Requerimientos funcionales: Este componente sirve de ayuda previa para
la creación de reportes, debido a que permite realizar consultas complejas
y con los resultados crear los reportes en el siguiente componente de la
arquitectura.
➢ Requerimientos de calidad: La herramienta fue instalada y probada en
ambiente de desarrollo. La seguridad que posee, es que se accede a ella
por medio de otra herramienta de interfaz web como HUE la cual solicita
usuario y contraseña.
➢ Restricciones de diseño: La herramienta se ejecuta sin ningún
inconveniente en el ambiente GNU/Linux, como lo exige la restricción de
diseño.
❖ Componente de integración de herramientas y visualización de datos
➢ Requerimientos funcionales: Mediante esta herramienta se generan los
reportes de la empresa, debido a que integra las principales herramientas
de análisis de datos (Solr y Hive).
➢ Requerimientos de calidad: La herramienta permite la integración de las
demás herramientas. Si falla, solo es necesario volver a levantar el
servidor sin ningún problema. Cuando el usuario desea acceder a las
90
funcionalidades de la herramienta, le solicita una autenticación. Permite
la creación de grupos de usuario con sus respectivos permisos (roles).
➢ Restricciones de diseño: La herramienta puede ejecutarse bajo ambiente
GNU/Linux como un servidor. Las consultas y generación de reportes son
accedidas mediante esta interfaz web.
❖ Componente de Motor de búsqueda
➢ Requerimientos funcionales: Permite realizar consultas y generar reportes
facetados, es decir, por filtros. Mantiene un rendimiento estable al haber
muchos datos debido a que está diseñada para ser escalable. Contiene
diversas funciones que permiten y facilitan la generación de reportes,
gráficos y dashboards para la inteligencia del negocio.
➢ Requerimientos de calidad: La herramienta fue probada en ambiente de
desarrollo y es escalable horizontalmente.
➢ Restricciones de diseño: Se ejecuta bajo ambiente GNU/Linux, permite
integración con interfaz web para visualización y generación de reportes.
91
Figura 16 Diagrama de componentes
Fuente Elaboración Propia
92
• Diagrama de casos de uso nivel 0: En el diagrama de casos de uso se
puede observar el nivel cero, en el cual se muestra de forma general los
actores y el rol que desempeñan en el sistema. (Ver Figura 17 Caso de
uso Nivel 0 y Tabla 11 Actores - Casos de Uso Nivel 0)
93
Tabla 11 Actores - Casos de Uso Nivel 0
Fuente: Elaboración Propia
Actor Descripción
94
permiten la transferencia de datos a
los componentes requeridos.
95
Caso de uso Estacionamiento
Actor Hadoop
Flujo Básico Los datos son almacenados en el
HDFS de Hadoop, para su posterior
procesamiento utilizando Map
Reduce.
Pre-Condición Los datos fueron cargados
previamente desde el clúster de
Cassandra utilizando una
transformación de Pentaho.
96
Caso de uso Administrar y utilizar herramientas
Actor HUE
Flujo Básico El usuario inicia sesión
Puede generar consultas con Hive
Crear tablas en Hive
Administrar el HDFS
Crear grupos de usuarios
Generar reportes y gráficos en Solr
Pre-Condición HUE fue configurado previamente
para conectarse con las distintas
herramientas a utilizar en la
arquitectura.
97
ANEXO 9: Casos de uso Nivel 1. A continuación, se procede a explicar las
actividades realizadas para desarrollar la Arquitectura Big Data, como son:
diseño de ETL, diseño de modelo de datos no relacional y pruebas de carga,
volumen y estrés.
98
En la figura 20, puede observarse los procesos levantados por el Nodo Maestro,
entre los cuales encontramos el NameNode, que es levantado solo por el
Maestro, el SecondaryNamenode (puede levantarse en otra maquina para mayor
seguridad) y su respectivo Datanode.
99
Figura 22 Ejecución Solr
Para implementar la Arquitectura fue necesario diseñar el modelo de datos clave
valor en Cassandra, para lograr esto se analizó el modelo de datos de SAREN
(bajo 3era forma normal en Oracle 10g con 913 tablas) de manera que se
pudiese hacer un correcto modelo de datos no relacional, que cumpla con los
requerimientos del negocio. (Ver ANEXO 6: Diseño NoSQL SAREN).
Luego fue necesario el diseño de los mecanismos de ETL y las pruebas para
lograr una correcta extracción, limpieza, transformación e inserción de los datos
en Cassandra y demás componentes de la arquitectura. (Ver ANEXO 7: Diseño
de los mecanisoms ETL).
100
herramientas como hdparm e iostat y para Cassandra la herramienta nodetool.
(Ver ANEXO 8: Documento Pruebas de carga volumen y estrés).
101
Conclusiones y Recomendaciones
102
En el último objetivo específico se concluye, que para la implementación de la
arquitectura fue necesario realizar pruebas de cada una de las herramientas que
la conforman, de manera que cada una de ellas pudiese interoperar. En cada
uno de los componentes de la arquitectura fue necesario realizar actividades de
entonación para lograr satisfacer las necesidades del cliente. Ademas, debido a
que el cliente no esta familiarizado con el paradigma Big Data, fue necesario
emprender actividades de gestion del cambio.
103
• No en todos los casos es viable la utilización de arquitecturas o
plataformas Big Data, por lo que es recomendable hacer un estudio de
planificación de capacidad en la organización antes de hacer cualquier
propuesta de Big Data.
• En algunos casos en las organizaciones es estricto que sus sistemas sean
consistentes y tengan alta disponibilidad, que según el teorema de CAP
esto solo puede ser satisfecho por el modelo relacional, por lo que una
solución Big Data, en estos casos no puede ser viable para las
necesidades del negocio.
• El implementar una arquitectura Big Data en una organización no significa
que se deba descartar la utilización de sistemas relacionales, en algunos
casos será necesario trabajar con ambas tecnologías.
• En Venezuela existen muchas organizaciones que manejan gran cantidad
de datos y que utilizan un modelo relacional que comienza a tener
problemas de renovación de licenciamiento en moneda extranjera, lo cual
implica que existe una gran posibilidad de reutilización de la arquitectura
planteada a través del presente trabajo.
• Ademas, es recomendable que el personal encargado del área de
tecnologías de información se instruya en la utilización y desarrollo de la
arquitectura propuesta en este trabajo para poder satisfacer las
necesidades del mercado y que las empresas puedan brindar un mejor
servicio a sus clientes.
104
Bibliografía
Bass, L., Clements, P., & Kazman, R. (2003). Software Architecture in Practice. Addison-Wesley.
Blog, T. B. (7 de Noviembre de 2016). The Big Data Blog. Obtenido de Hadoop Ecosystem
Overview: http://thebigdatablog.weebly.com/blog/the-hadoop-ecosystem-overview
Buhler, P., Erl, T., & Khattak, W. (2015). Big Data Fundamentals: Concepts, Drivers &
Techniques.
Conway, D. (30 de Septiembre de 2010). Drew Conway Venn Diagram. Obtenido de Drew
Conway: http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
Evans, E. (12 de 05 de 2009). NOSQL 2009. May 2009. – Blog post of 2009-05-12. Obtenido de
http://blog.sym-link.com/2009/05/12/nosql_2009.html
105
Eyssautier de la Mora, M. (2006). Metodología de la investigación: desarrollo de la inteligencia.
Cengage Learning Editores.
Gutierrez, D. (Junio de 2014). Yarn is All the Rage at Hadoop Summit 2014. Obtenido de
Kdnuggets: http://www.kdnuggets.com/2014/06/yarn-all-rage-hadoop-summit.html
Kitchenham, B. (1996). DESMET: A method for evaluating software engineering methods and
tools.
MacCandles, M., Hatcher, E., & Gospodnetic, O. (2010). Lucene in Action. Manning.
Magazine, L. V. (10 de noviembre de 2013). Big Data, el tesoro oculto del siglo XXI.
Morgan, L. (5 de Abril de 2015). Information Week. Obtenido de Information Week Big Data:
http://www.informationweek.com/big-data/big-data-analytics/6-ways-to-master-the-
data-driven-enterprise/d/d-id/1320234
106
SAREN. (2016). SAREN. Obtenido de Funcionó como Dirección General Sectorial de Registros y
Notarías en el año de 1.994, y como Dirección General de Registros y Notarias a
principios del año de 1.996.
Shvachko, K., Kuang, H., Radia, S., & Chansler, R. (2006). The Hadoop Distributed File System.
Vance, A. (2009). Hadoop, a Free Software Program, Finds Uses Beyond Search. New York: New
York Times.
White, T. (2012). Hadoop: The Definitive Guide (3rd ed.). O’Reilly Media.
107
ANEXO 1: Pentaho vs Palo
108
ANEXO 2: Hadoop vs Otros
109
ANEXO 3: Cassandra vs Hbase
110
ANEXO 4: Solr vs Elasticsearch
Leyenda Solr
Elasticsearch
Tip Descripcio Condicio Pes Cumplimient Observacione Estrategi Calificacio
n n
o n o o s a
Ponderada
Replicacion O-Obligatorio 5 S-Si 6 5,00
Cumple
S-Si 6 5,00
Cumple
Facetado O-Obligatorio 5 S-Si 6 5,00
Cumple
S-Si 6 5,00
Cumple
Escalabilidad O-Obligatorio 5 S-Si 6 5,00
Req. Funcionales
Req. Funcionales
Cumple
S-Si 6 5,00
Cumple
Busqueda 5 S-Si 6 5,00
orientada a Cumple
texto S-Si ES provee
Cumple queries
5 4,17
complejos de
análisis
Busqueda geo- D-Deseable 4 S-Si 6 4,00
espacial Cumple
S-Si 6 4,00
Cumple
Visualizacion S- 4 S-Si 6 4,00
Suplementari Cumple
o S-Si
Cumple
6 4,00
Debe poseer O-Obligatorio 5 S-Si Licencia de 6 5,00
licencia de Cumple Apache
código libre o S-Si Licencia de
abierto Cumple Apache
6 5,00
Documentació O-Obligatorio 5 S-Si Solr se 6 5,00
n Cumple encuentra muy
bien
documentado.
S-Si 5 5,00
Cumple
Req. Especificos
Req. Especificos
111
ANEXO 5: HUE vs Banano
Leyenda Hue
Banano
Req. Funcionales
S-Si 6 5,00
Cumple
Gratuito y de O- 5 S-Si 6 5,00
licencia libre Obligatorio Cumple
S-Si 6 5,00
Cumple
Req. Especificos
Req. Especificos
Total 4,9
3,8
112
ANEXO 6: Diseño NoSQL SAREN
Preliminares
Hay varios tipos de datos que acepta la validación entre los cuales se encuentran
la codificación UTF-8, el tipo Long o el tipo Byte. Por defecto se establece el tipo
Byte.
Timestamp: nos indica cuándo se modificó por última vez esa columna. Éste
elemento no es modificable por el usuario ya que se genera automáticamente al
cambiar el campo value. Éste campo es único para las columns.
113
Al definir un Keyspace se pueden configurar los siguientes parámetros:
Mercantil Inmuebles
Registro Mercantil
NoSql
Apache Cassandra
114
En la figura anterior podemos apreciar que los dominios de información del
modelo relacional; ahora están representados en un esquema no relacional,
teniendo como principal habilitador tecnológico la aplicación Apache Cassandra.
Interrogarse sobre cuáles son las consultas que el modelo debe responder.
115
Tabla Descripción Clave Primaria Clave Foránea
116
dadmconversioncuentasples conversión de idcuentapatrimonia {tabla:nadmclasificadorpresupuest
cuentas l,idcdorpresupuest fk(idcdorpresupuestario)},
patrimoniales. ario {tabla:nadmcuentaspatrimoniales
permite relacionar fk(idcuentapatrimonial)}
las cuentas
patrimoniales con
las cuentas
presupuestarias
correspondientes
Proceso de desnormalización
117
dadmbeneficiariocliente idbeneficiario {tabla:dadmbeneficiario
fk(idbeneficiario)}, {tabla:dpersonacomun
fk(idcliente)}
118
2 Tablas que no serán objeto de estudio
TABLAS
DA DADMDATOSBENEFICIARIOT
DADMESTRUCTURAPRET DADMESTRUCTURAT
DADMIMPUTACIONT DCOMDATOSOBLIGACIONOPT
DCOMDOCCOMPROMISOST DFCAIMPUTACIONVALET
DFCATEMPLIBAUX DPREEJECUCIONPRET
DPREEJEGPERIODOT DPREOFICINASGASTOST
DPREPAGOANTICIPADOT DPREPARTIDASUAT
DPREPRODMEST DPREPROGPERIODOT
DPREPROGRAMACIONT DRECTRAMITESPUBT
DRETRESUMENANUALRETISLRT DTESLIBROAUXILIART
DTESORDENPAGOT DTRAMITEACTOMULTIPLEM
NPRETEMPMESESMETAS NPRETEMPPARTIDA
NRETCONFIGGEN
119
El column family SAREN está conformado por ocho campos donde Clave
representa el contenedor para el rowKey o clave primaria el cual puede ser
simple o compuesta dependiendo de la naturaleza del registro.
El siguiente campo es valor, el cual almacena los valores del registro. De esto
puede surgir una interrogante: si cada tipo de registro está asociado a una tabla
del modelo relacional, entonces ¿cómo un campo del column family puede
almacenar todos los campos de cada tabla? Esta precisamente es una de las
ventajas de cassandra. Con el campo valor es posible tener tantos campos como
sean necesarios por cada registro, producto que funciona como un map que tiene
la siguiente estructura:
Los otros campos son utilizados con fines de auditoría para cada registro.
120
TABLA Clave Primaria Dominio Tipo de Operación Map
121
tienevariosotorgantes_
nactom}
e fecha_dtramitem,
numcons_dtramitem,
idestadotramitem_dtra
mitem,
idoficina_dtramitem,
idactom_dtramitem,
fechaotorg, fechainicio,
fechafin,
idabogadoredactor,
idabogadorevisor,
correo_dpersonalregist
ro,
telefonos_dpersonalreg
istro,
ocupacion_dpersonalre
gistro, otorgado,
edicion}
122
idtramitem_dsoldenom
m,
idestado_dsoldenomm,
idpresentante_dsolden
omm,
fechalimbusq_dsolden
omm,
fechalimresnom_dsold
enomm, idtramitem,
fecha_dtramitem,
numcons_dtramitem,
idestadotramitem_dtra
mitem,
idoficina_dtramitem,
idactom_dtramitem,
idestado,
descripcion_nestadosol
icitudm,
activo_nestadosolicitud
m}
Conclusiones
Al abordar un proyecto de BIG – DATA, uno de los factores críticos de éxito viene
dado por el tratamiento que reciben los datos durante su ciclo de vida,
especialmente en lo concerniente a su obtención, transformación,
almacenamiento, organización lógica, veracidad, capacidad para responder a las
consultas efectuadas por el negocio.
123
• El dominio Mercantil se diseñan íntegramente en un modelo no
relacional, cuyo motor de datos es Apache Cassandra.
124
ANEXO 7: Diseño de los mecanisoms ETL
125
2 Aspectos técnicos de los mecanismos de ETL de Carga Inicial.
Para el desarrollo de los ETL de carga inicial, es necesario tomar como punto de
partida una tabla del esquema mercantil o público; procediendo de la siguiente
forma:
Cada transformación contiene Ocho (8) pasos, más Un (01) pasó de Control los
cuales se detallan a continuación:
126
1. Table Input: Es el paso que inicia la transformación, donde se indica la
consulta que extrae los datos que se requieren de la base de datos Oracle.
En este paso se deben indicar:
127
Figura 26 Paso de consulta SQL sobre Oracle
128
Figura 27 Paso selección de valores
129
3. Replace in String: Luego de buscar y seleccionar los campos requeridos
para la creación del registro, se procede a limpiar los mismos, ya que
existen datos con caracteres especiales que imposibilitan la inserción de
la data en la base de datos Big Data.
130
4. Calculator: Además de los campos “fecha_creacion” y
“fecha_ultima_modificacion”, en el nuevo modelo se necesitan otros
campos adicionales. En este paso se crean esos campos que son
necesarios: modificado_por, creado_por y tipo_registro.
También, en este paso se verifica cuáles de los campos tienen valor null. En este
caso el campo no se almacena en el nuevo modelo, aprovechando así una de
las grandes ventajas de la versión de la base de datos Big Data.
131
Figura 31 Paso de Script de Java
132
6. Calculator: Luego de crear el nuevo campo de tipo Map es necesario
concatenarlo a la consulta de tipo INSERT que posteriormente se harán en base
de datos Big Data para insertar el nuevo registro.
Crear Map y demás campos a insertar: Se agrega un var temp_0="“; para poder
asignarle el campo que contenga el dato de la imagen y se procede a separarlo
del map
133
Figura 33 Paso Java script para inserción de imágenes
En esta parte:
if ((row[i]!=null)) {
if (valueMeta.getName().equals("NOMBRE_CAMPO_IMAGEN")){
temp_0="'" +row[i]+"'" }
134
b. Se crean los campos necesarios en los parámetros de la función a insertar
llamada guardarImagen()
c. A la variable “imagen” se le asigna el campo que contiene la imagen
135
Figura 36 Código Función guardarImagen()
Fuente: Elaboración propia
136
ANEXO 8: Documento Pruebas de carga volumen y estrés
Resumen Ejecutivo
137
plataforma y los sistemas en ejecución, a los fines de determinar las acciones
requeridas para garantizar tiempos de respuesta y desempeño óptimos, tanto
del aplicativo como de la plataforma tecnológica.
2.2 Alcance
Preliminares
138
Pruebas de carga: se realiza generalmente para observar el comportamiento
de una aplicación bajo una cantidad de peticiones esperada. Esta carga puede
ser el número esperado de usuarios concurrentes utilizando la aplicación y que
realizan un número específico de transacciones durante el tiempo que dura la
carga. Esta prueba puede mostrar los tiempos de respuesta de todas las
transacciones importantes de la aplicación.
139
El ciclo PDCA consta de 4 fases, las cuales se describen a continuación:
PLAN (PLANIFICAR)
En ésta fase se establecen los objetivos y procesos necesarios para obtener el
resultado esperado. Al basar las acciones en el resultado esperado, la exactitud
y cumplimiento de las especificaciones a lograr se convierten también en un
elemento a mejorar. Cuando sea posible conviene realizar pruebas a pequeña
escala para probar los resultados.
Definir los procesos necesarios para conseguir estos objetivos, verificando las
especificaciones.
DO (HACER)
Implementar los nuevos procesos, llevar a cabo el plan. Recolectar datos para
utilizar en las siguientes etapas.
Teniendo el plan bien definido, hay que poner una fecha a la cual se va a
desarrollar lo planeado.
CHECK (VERIFICAR)
Pasado un periodo previsto de antemano, volver a recopilar datos de control y
analizarlos, comparándolos con los objetivos y especificaciones iniciales, para
evaluar si se ha producido la mejora
ACT (ACTUAR)
En base a las conclusiones del paso anterior elegir una opción:
140
Si no se han detectado errores relevantes, aplicar a gran escala las
modificaciones de los procesos
Fase 1: Planificar
En esta sección se definieron las herramientas necesarias para llevar a cabo las
pruebas de carga, volumen y estrés; destacando en el proceso de pruebas la
necesidad de evaluar las métricas de comportamiento derivados del software
Apache Cassandra y la plataforma tecnológica que la sustenta.
Análisis de Memoria:
141
debe emplearse de forma prudente. A continuación, se indica las herramientas
a ser utilizadas para verificación y monitoreo de la memoria RAM y la JVM
(Máquina Virtual de Java).
Determinación de Escenarios:
142
dos ambientes desarrollo y producción, no existe un ambiente de calidad. Por lo
cual las pruebas se han realizado con las previsiones requeridas por el caso.
143
Figura 38 Instalación de hdparm
Fase 2: Hacer
144
Pruebas de rendimiento sobre el hardware que conforma el cluster de base
de datos:
Tabla 14 Prueba 1
Fuente: Elaboración propia
Titulo: Prueba 1
Herramienta iostat
Para la adecuada comprensión de la herramienta iostat, se presenta una tabla
explicativa de cada uno de los parámetros que integran las estadísticas
suministradas por el referido comando.
Comandos Descripción
145
%b Porcentaje de tiempo durante el cual el disco está
ocupado
146
Figura 41 Comando iostat -d
Fuente: Elaboración propia
147
Figura 43 Comando iostat -N
Fuente: Elaboración propia
Tabla 16 Prueba 2
Fuente: propia
Titulo: Prueba 2
Herramienta hdparm
148
Tabla 17 Comandos hdparm
Fuente: Elaboración propia
Comandos Descripción
for i in 1 2 3; do hdparm -tT /dev/sda; done Realiza tres veces las pruebas de disco
149
Velocidad real de los discos en el escenario de baja demanda.
Figura 45 Comando hdparm -t --direct /dev/sda
Fuente: propia
Titulo: Prueba 3
Herramienta iostat
150
Figura 46 Comando iostat
Fuente: propia
Tabla 18 Prueba 4
Fuente : propia
Titulo: Prueba 4
Herramienta hdparm
152
Figura 51 Comando hdparm -t --direct /dev/sda
153
Cassandra-stress: es una utilidad contenida en la distribución de cassandra, la
cual facilita la ejecución de pruebas de carga, volumen y estrés en modo
consola, ofreciendo una amplia información estadística sobre el
comportamiento de la base de datos en general o en específico sobre un
keyspace o estructura en particular.
Estadística Descripción
total ops Número total de operaciones ejecutadas durante la
prueba.
154
stderr Error estándar de la media. Es una medida de confianza
en el número promedio de rendimiento; cuanto menor sea
el número, más precisa será la medida de la prueba.
gc: # Número de elementos en el garbage collections de java
155
Figura 53 Estadísticas del columnfamily saren.mercantil, cluster producción
Análisis:
En primera instancia, es necesario destacar que los valores de Write Latency y
Read Latency están expresados en micros segundos, el cual equivale a la
millonésima parte de un segundo, 10-6s. Para expresarlo en milisegundo, puede
emplearse la siguiente equivalencia 1 Microsegundo = 0.0010 Milisegundo.
Comando Descripción
read Múltiples lecturas concurrentes, el cluster debe leer primero antes de escribir.
156
counter_write Conteo de escrituras concurrentes ejecutadas
user Interleave user provided queries with configurable ratio and distribution.
En esta prueba se están realizando 200 mil lecturas comenzando con 4 hilos
concurrentes hasta llegar a 406 hilos, obteniendo los siguientes resultados al
final de la prueba.
157
Figura 54 Salida.out
Fuente: propia
158
ANEXO 9: Casos de uso Nivel 1
159
de datos, como puede ser
postgreSQL
Pre-Condición Las transformaciones fueron
almacenadas en una base de datos
relacional.
160
Actor Hive
Flujo Básico Para realizar las consultas en Hive,
primero debe realizarse una conexión
al HDFS la cual fue configurada
previamente en el archivo hive-
site.xml.
Pre-Condición Preconfiguracion de hive-site.xml
para almacenar en HDFS.
161
Flujo Básico El usuario puede observar y
administrar el HDFS mediante una
interfaz que permite hacer búsquedas
de archivos.
Pre-Condición Los procesos de Hadoop deben estar
levantados.
162
ANEXO 10: Cronología Big Data
163
representarlas digitalmente, que no es sino la base del procesamiento de
datos moderno.
• Memoria virtual (1956): El concepto de memoria virtual fue desarrollado
por el físico alemán Fritz-Rudolf Güntsch, como una idea que trataba el
almacenamiento finito como infinito. El almacenamiento, administrado
mediante hardware integrado y software para ocultar los detalles al
usuario, nos permitió procesar los datos sin las limitaciones de memoria
de hardware que anteriormente provocaban la partición del problema
(haciendo de la solución un reflejo de la arquitectura de hardware, una
medida ilógica de base).
• El conocimiento científico se amplía (1961): El científico de la información
Derek Price generalizó las conclusiones de Rider para incluir casi todos
los tipos de conocimiento científico. La revolución científica, tal como él la
llamó, era la responsable de la comunicación rápida de ideas nuevas
como información científica. Este rápido crecimiento se materializaba en
la duplicación cada 15 años de los registros nuevos creados.
• Los pioneros en el reconocimiento de voz: Los científicos han trabajado
en el reconocimiento de voz casi desde que empezaron a fabricar
ordenadores. En el año 1962, William C. Dersch de IBM desveló la
máquina Shoebox en la Feria Mundial. Fue la primera máquina capaz de
entender 16 palabras y diez dígitos en inglés hablado mediante el uso de
los datos disponibles en ese momento, y era capaz de procesarlos
correctamente. Sin embargo, hasta transformar esta innovación en el
reconocimiento de voz en productos con una utilidad comercial real, aún
quedaba mucho camino por delante. Este camino exigiría avances
importantes en la potencia de procesamiento y la reducción del coste de
la tecnología informática. La existencia de un volumen de datos mayor
también ayudaría a entrenar los sistemas de reconocimiento de voz.
• En la búsqueda de una solución organizativa (1963): A principios de la
década de 1960, Price observó que la enorme mayoría de investigación
científica suponía un esfuerzo abrumador para los humanos. Los
resúmenes documentales, creados a finales de la década de 1800 como
164
forma de gestionar los conocimientos, cada vez de mayor volumen,
crecían también con la misma progresión (multiplicándose por un factor
de diez cada cincuenta años), y ya habían alcanzado una magnitud
preocupante. Habían dejado de ser una solución de almacenamiento o de
organización de la información.
• Entran en escena los sistemas de computación centralizados (1966): La
información no solo se encontraba en pleno auge en el sector científico,
también lo estaba en el sector de los negocios. Debido a la influencia que
tuvo la información en la década de 1960, la mayoría de organizaciones
empezaron a diseñar, desarrollar e implementar sistemas informáticos
que les permitían automatizar los sistemas de inventario.
• Base de datos relacional (1970): En el año 1970, Edgar F. Codd, un
matemático formado en Oxford que trabajaba en IBM Research Lab,
publicó un artículo en el que se explicaba la forma en la que podía acceder
a la información almacenada en bases de datos de gran tamaño sin saber
cómo estaba estructurada la información o dónde residía dentro de la
base de datos. Hasta ese momento, para recuperar la información se
necesitaban conocimientos informáticos relativamente sofisticados, e
incluso para los servicios de especialistas, por lo que se convertía en una
tarea ardua que exigía tiempo y recursos económicos. Hoy en día, la
mayoría de transacciones de datos rutinarias (acceder a cuentas
bancarias, utilizar tarjetas de crédito, comerciar con acciones, realizar
reservas de viaje, realizar compras a través de Internet) utilizan
estructuras basadas en la teoría de la base de datos relacional.
• El crecimiento de la comunicación bidireccional (1975): El Censo del Flujo
de la Información, realizado por el Ministerio de Correos y
Telecomunicaciones de Japón, comenzó a realizar un control del volumen
de información que circulaba por el país en 1975. Utilizando como unidad
de medición el número de palabras utilizadas a través de todos los medios
de comunicación, el estudio pudo comprobar que el suministro de
información superaba considerablemente al volumen de información
consumida, y que la demanda de comunicación unidireccional se había
165
estancado. Ahora, la tendencia era el aumento de la demanda de
comunicación bidireccional, más personalizada, que respondía a las
necesidades de las personas.
• Sistemas de Planificación de necesidades de material (1976): A mediados
de la década de 1970, los sistemas de Planificación de necesidades de
material (MRP) se diseñaron como herramienta que ayudaba a las
empresas de fabricación a organizar y planificar su información. A esas
alturas, la popularidad de los PC en las empresas estaba en auge. Esta
transformación marcó un cambio de tendencia hacia los procesos de
negocio y las funcionalidades de contabilidad, y en este ámbito se
fundaron empresas como Oracle, JD Edwards y SAP. Fue Oracle la que
presentó y comercializó el Lenguaje de consulta estructurado o Structure
Query Language (SQL) original.
• La ley de los datos de Parkinson (1980): A medida que aumentaba la
velocidad con la que se creaba información, las opciones de
almacenamiento y organización de datos eran cada vez menores. ¿En su
charla «Where Do We Go From Here?», I.A. Tjomsland afirmó que
«aquellos que trabajan en dispositivos de almacenamiento descubrieron
hace mucho tiempo que la primera ley de Parkinson puede parafrasearse
para describir nuestro sector: “los datos se expanden para llenar el
espacio disponible”. Desde mi punto de vista, las grandes cantidades de
datos se guardan porque los usuarios no tienen forma de identificar los
datos obsoletos; las penalizaciones derivadas de almacenar datos
obsoletos tienen una importancia inferior a las que conlleva eliminar datos
potencialmente útiles».
• El crecimiento de la información y el sector de la comunicación (1983):
Los avances tecnológicos permitieron a todos los sectores beneficiarse
de nuevas formas de organizar, almacenar y generar datos. Las empresas
estaban empezando a usar los datos para tomar mejores decisiones de
negocio. En el artículo Tracking the Flow of Information, publicado en la
revista Science, el autor Ithiel de Sola Pool analizó el crecimiento del
volumen de información de 17 importantes medios de comunicación
166
desde el año 1960 hasta 1977. Atribuye el enorme crecimiento de la
información a la expansión del sector de las comunicaciones.
• Sistemas de Planificación de recursos de fabricación (1985): Tras el auge
de los sistemas de MRP, se introdujo la Planificación de recursos de
fabricación (MRP II) en la década de 1980, con un énfasis en la
optimización de los procesos de fabricación mediante la sincronización de
materiales con las necesidades de producción. MRP II incluía áreas tales
como la gestión del área de producción y la distribución, la gestión de
proyectos, las finanzas, los recursos humanos y la ingeniería. No fue
hasta mucho después de adoptar esta tecnología cuando otros sectores
(p. ej. agencias gubernamentales y organizaciones del sector servicios)
comenzaron a tener en cuenta, y posteriormente adoptar, la tecnología
ERP.
• La necesidad de datos precisos (1985): En el año 1985, Barry Devlin y
Paul Murphy definieron una arquitectura para los informes y análisis de
negocio en IBM (Devlin & Murphy, IBM Systems Journal 1988) que se
convirtió en la base del almacenamiento de datos. En el centro neurálgico
de dicha arquitectura, y en el almacenamiento de datos en general, se
encuentra la necesidad de almacenamiento homogéneo y de alta calidad
de datos históricamente completos y exactos.
• Desde las tablillas de barro hasta la memoria de semiconductores: ¿En
su artículo «Can users really absorb data at today’s rates? Tomorrow’s?»,
Hal Becker mencionaba que «la densidad de recodificación lograda por
Gutenberg fue aproximadamente de 500 símbolos (caracteres) por
pulgada cúbica; 500 veces la densidad de las tablillas de barro [sumerias
del año 4000 antes de cristo]. En el año 2000, la memoria de acceso
aleatorio de los semiconductores será capaz de almacenar 1,25×10^11
bytes por pulgada cúbica».
• La superficie de los nuevos sistemas de software (1988): A finales de la
década de los 80 y principios de los 90, fuimos testigos del aumento de
los sistemas de Planificación de recursos empresariales (ERP), ya que
pasaron a ser más sofisticados y ofrecían la posibilidad de coordinarse e
167
integrarse entre todos los departamentos de las empresas. Las bases
tecnológicas de los sistemas de MRP, MRP II y ERP comenzaron a
integrar áreas de empresas entre las que se incluían la producción, la
distribución, la contabilidad, las finanzas, los recursos humanos, la gestión
de proyectos, la gestión del inventario, el servicio y el mantenimiento, y el
transporte, y ofrecer así accesibilidad, visibilidad y homogeneidad en la
totalidad de la empresa.
• Inteligencia empresarial (1989): En 1989, Howard Dresner amplió el
popular término genérico «Business Intelligence (BI)» o Inteligencia
empresarial, inicialmente acuñado por Hans Peter Luhn en el año 1958.
Dresner lo definió como los «conceptos y métodos que mejoran la toma
de decisiones de negocio mediante el uso de sistemas de apoyo basados
en datos reales». Poco tiempo después, y como respuesta a la necesidad
de una mejor BI, pudimos ver el auge de empresas como Business
Objects, Actuate, Crystal Reports y MicroStrategy, que ofrecían informes
y análisis de los datos de las empresas.
• El primer informe de base de datos (1992): En 1992, Crystal Reports creó
el primer informe de base de datos sencillo con Windows. Estos informes
permitían a las empresas crear un informe sencillo a partir de diversos
orígenes de datos con escasa programación de código. De esta forma, se
redujo la presión existente sobre el panorama saturado de datos, y se
permitió que las empresas emplearan la inteligencia empresarial de un
modo asequible.
• Explosion de la World Wide Web (1995): En la década de 1990 se produjo
un crecimiento tecnológico explosivo, y los datos de la Inteligencia
empresarial comenzaron a apilarse en forma de documentos de Microsoft
Excel.
• El espectacular crecimiento de la potencia informática e internet (1996):
El aumento desmesurado del volumen de datos supuso otros problemas
para los proveedores de sistemas ERP. La necesidad de tener que
diseñar de nuevo los productos ERP, y que incluía romper los límites de
168
titularidad y de personalización, obligó a los proveedores a adoptar de
forma gradual un método de negocio colaborativo, en lugar de la intranet.
• Inteligencia empresarial 2.0 (1996): La influencia de la información trajo
consigo un nuevo problema en la gestión de los datos, además de un
aumento del coste que suponía publicarla y almacenarla. Como los datos
resultaban más difíciles de mantener, para poder ofrecer más
funcionalidades, el almacenamiento digital empezó a resultar más
rentable que el papel para almacenar los datos, y comenzaron a emerger
las plataformas de BI. R.J.T. Morris y B.J. Truskowski analizaron el
almacenamiento de datos en su artículo The Evolution of Storage
Systems, publicado en IBM Systems Journal.
• El problema del Big Data (1997): El término «Big Data» se empleó por
primera vez en un artículo de los investigadores de la NASA Michael Cox
y David Ellsworth. Ambos afirmaron que el ritmo de crecimiento de los
datos empezaba a ser un problema para los sistemas informáticos
actuales. Esto se denominó el «problema del Big Data».
• El futuro del almacenamiento de datos (1997): Michael Lesk publicó How
much information is there in the world?. Su conclusión fue que «Puede
que la cantidad de información ascienda a varios miles de petabytes, y la
producción de cinta y disco alcanzará ese nivel en el año 2000. Esto
significa que, en unos años, (a) podremos guardarlo todo, no será
necesario eliminar información, y que (b) la mayoría de la información
jamás será consultada por un ser humano».
• El problema de la inteligencia empresarial (1998): A finales de los 90,
muchas empresas creían que sus sistemas de extracción de datos no
funcionaban. Los trabajadores eran incapaces de encontrar respuestas y
de acceder a los datos que necesitaban de las búsquedas. Los
departamentos informáticos eran responsables del 80 % del acceso a BI.
Cada vez que los empleados necesitaban acceso, tenían que llamar al
departamento informático, ya que acceder a la información no resultaba
tan fácil.
169
• Internet de las cosas (1999): El término "Internet de las cosas" o IoT, por
sus siglas en inglés, fue acuñado por el emprendedor británico Kevin
Ashton, cofundador del Auto-ID Center del MIT, durante una presentación
que enlazaba la idea de identificación por radiofrecuencia (RFID) en la
cadena de suministro con el mundo de Internet. "Si tuviéramos equipos
que supieran todo lo que hay que saber acerca de las cosas, a partir de
datos que, recopilados sin nuestra ayuda, seríamos capaces de
monitorizar y contar todo, y reducir así considerablemente los costes, los
desperdicios y las pérdidas."
• Se cuantifica la información (1999): Peter Lyman y Hal R. Varian de UC
Berkeley publicaron el primer estudio que cuantificaba, en términos de
almacenamiento informático, la cantidad total de información nueva y
original creada en el mundo al año. El estudio, titulado How Much
Information?, se completó en 1999, un año en el que el mundo produjo
unos 1,5 exabytes de información.
• El análisis predictivo cambia el perfil del negocio (1999): ComputerWeekly
cuenta con un artículo destacado en el que se explica la forma en la que
elegir e instalar la solución ERP adecuada y utilizar pronósticos de análisis
predictivo cambia el método de trabajo de todo tipo de organizaciones.
• Software como servicio (2001): Las siglas SaaS aparecen por primera vez
en un artículo de la división de comercio electrónico de Software &
Information Industry (SIIA).
• Las tres V (2001): Doug Laney, analista de Gartner, publicó un artículo
titulado 3D Data Management: Controlling Data Volume, Velocity, and
Variety. A día de hoy, las tres V siguen siendo las dimensiones
comúnmente aceptadas del Big Data.
• Sistemas ERP ampliados (2002): Durante la década de los 90, los
proveedores de sistemas ERP añadieron más módulos y funciones como
complementos de los módulos básicos, con lo que surgieron los sistemas
ERP extendidos o ampliados. El número de opciones de software y
hardware aumentó exponencialmente y, a principios de la década del
2000, comenzaron a surgir importantes empresas de software. Oracle y
170
SAP fueron las principales empresas de software ERP que sobrevivieron
a este auge.
• Servicios web y ERP (Junio 2002): Los principales proveedores de
sistemas ERP, como SAP, PeopleSoft, Oracle y JD Edwards, comenzaron
a centrarse de una forma agresiva en el uso de servicios web para enlazar
sus propios conjuntos de aplicaciones, y en facilitar a los clientes la
creación de aplicaciones nuevas a partir de datos de varias aplicaciones
utilizando XML.
• El enfoque en la usabilidad del usuario final (Marzo 2005): Las empresas
de SaaS entraron en escena para ofrecer una alternativa a Oracle y SAP
más centrada en la usabilidad del usuario final. Una de las primeras
fusiones de empresas fue la que dio origen a Workday, Inc., fundada en
marzo de 2005, como alternativa a Oracle y SAP, más económica y
utilizable. El software de Workday Inc. es más intuitivo para el usuario final
y funciona de la misma forma que la gente, «de forma colaborativa, sobre
la marcha y en tiempo real».
• La gestión de la base de datos, el centro del universo (Septiembre 2005):
Tim O’Reilly publicó What is Web 2.0?, donde afirma que «los datos son
el próximo Intel Inside». En el artículo, O’Reilly afirma lo siguiente: «Como
Hal Varian apuntó en una conversación personal el año pasado, "el SQL
es el nuevo HTML". La gestión de la base de datos es una competencia
básica de las empresas Web 2.0, tanto que a veces denominamos a estas
aplicaciones “infoware” en lugar de simplemente software».
• Una solución de código abierto para la explosión del Big Data (2006):
Hadoop se creó en el año 2006 a raíz de la necesidad de sistemas nuevos
para gestionar la explosión de datos de la web. De descarga gratuita, y
libre para potenciarlo y mejorarlo, Hadoop es un método de código abierto
para almacenar y procesar los datos que «permite el procesamiento en
paralelo distribuido de enormes cantidades de datos en servidores
estándar del sector, económicos, que almacenan y procesan los datos, y
que pueden escalarse sin límite».
171
• El primer estudio que calcula y prevé la cantidad de crecimiento de la
información (Marzo 2007): Los investigadores de International Data
Corporation publicaron un artículo titulado The Expanding Digital
Universe: A Forecast of Worldwide Information Growth through 2010, en
el que se calcula y pronostica la cantidad de datos digitales que se crearán
y reproducirán cada año. En el artículo se calcula que, solo en el año
2006, se crearon en todo el mundo 161 exabytes de datos, y prevé que,
en los próximos cuatro años, la información creada aumentará hasta
multiplicarse por seis (hasta los 988 exabytes). En otras palabras,
predicen que la información se duplicará cada 18 meses durante los
próximos cuatro años. Si consultamos los informes de los años 2010 y
2012, la cantidad de datos digitales creados cada año superó los
pronósticos iniciales (1227 en 2010 y 2837 exabytes en 2012).
• La explosión de datos continúa (2008): Bret Swanson y George Gilder
proyectaron que el tráfico IP estadounidense podría alcanzar el zettabyte
en el año 2015, y que la Internet estadounidense del 2015 será, como
mínimo, 50 veces más grande que lo era en el 2006.
• El aluvión de datos hace que el método científico quede obsoleto (Junio
2008): El término Big Data comenzó a utilizarse con cada vez más
frecuencia en los círculos tecnológicos. La revista Wired publicó un
artículo en el que se presentaba el impacto positivo y negativo del aluvión
de datos reciente. En este artículo, Wired anunció que este era el
«principio de la era del petabyte». A pesar de que era una buena hipótesis,
la clasificación de “petabyte” era demasiado técnica para el público en
general. Inevitablemente, un petabyte, que equivale a
1.000.000.000.000.000 bytes de datos, dará paso dentro de poco a bytes
de datos todavía mayores: exabytes, zettabytes y yottabytes.
• SAP desvela su estrategia de SaaS (Noviembre 2008): SAP realizó un
movimiento estratégico de cara al mercado de SaaS mediante el
desarrollo de una estrategia de software como servicio destinada a las
grandes empresas. Como parte del mismo, se contrató a John Wookey
(antiguo empleado de Oracle) en noviembre de 2008 como nuevo jefe de
172
aplicaciones de software a la carta para grandes empresas. Tras trasladar
su propuesta a la junta en el mes de enero, desarrollaron un plan para
lanzar las nuevas ofertas de productos de SaaS en series de aplicaciones
de software concretas para cada función. Estas aplicaciones, disponibles
por suscripción, se conectan con los sistemas SAP Business Suite in situ
que SAP alojará en régimen de tenencia múltiple.
• Avances revolucionarios (Diciembre 2008): Un grupo de investigadores
científicos en el ámbito de la informática publicó el artículo titulado Big
Data Computing: Creating Revolutionary Breakthroughs in Commerce,
Science, and Society. En el artículo se afirma lo siguiente: «De la misma
forma que los motores de búsqueda han cambiado la forma de acceder a
la información, otras formas de informática de Big Data pueden
transformar y transformarán las actividades de empresas, investigadores
científicos, médicos y las operaciones de defensa e inteligencia de
nuestra nación…. Probablemente, la informática de Big Data sea la mayor
innovación informática de la última década. A día de hoy, tan solo hemos
visto el potencial que tiene para recopilar, organizar y procesar los datos
en todos los aspectos de nuestras vidas. Si el gobierno federal efectuara
una modesta inversión, su desarrollo e implantación podrían acelerarse
enormemente». Este apoyo hizo que el Big Data finalmente lograra la
credibilidad intelectual que necesitaba.
• La inteligencia empresarial pasa a ser una prioridad (Enero 2009): En el
año 2009, la Inteligencia empresarial pasó a ser una de las principales
prioridades para los directores de tecnologías de la información.
• Linked Data (1 Febrero 2009): Tim Berners-Lee, director del World Wide
Web Consortium (W3C) e inventor del World Wide Web, fue el primero en
usar el término "linked data" (datos enlazados) durante una presentación
sobre el tema en el congreso TED de 2009. Linked Data describe un
método de publicación de datos estructurados, basado en protocolos web
estándar, para que puedan ser interconectados, leídos automáticamente
por ordenadores y enlazados desde otros conjuntos de datos externos.
173
• Análisis ERP (Mayo 2009): Gartner predijo que los datos empresariales
crecerían un 650% durante los próximos cinco años. Estos datos
representan el conglomerado de todos los datos operativos de ERP
internos, además de los datos externos que tienen interconexión con las
operaciones de la empresa; pensemos más allá de los datos de
proveedores, hasta llegar a los datos económicos globales (estadísticas
macroeconómicas o microeconómicas). Jon Reed, analista
independiente, mentor de SAP y bloguero en JonERP.com, no ve
demasiado claro que Google se lance a crear un conjunto de aplicaciones
ERP o a comprar una empresa de sistemas ERP «sería una decisión
extrema», afirma. Sin embargo, «si una empresa tipo Google fuera capaz
de presentar una forma de recopilar toda esta información de forma
conjunta en un entorno basado en la nube, para posteriormente
conectarla de alguna forma a una plataforma estructurada (uniendo la
información estructurada y la información no estructurada) estaríamos
ante un hito muy importante».
• La aparición del ERP en la nube (Abril 2010): Netsuite y Lawson Software,
entre otras empresas, fueron las primeras que adoptaron las tecnologías
de nube para los sistemas ERP. Comenzaron ofreciendo a medianas
empresas y organizaciones soluciones de sistemas ERP ligeros, flexibles
y asequibles.
• Coordinación del ERP con los procesos de negocio (Julio 2010): No todas
las organizaciones que han invertido en sistemas ERP han logrado el éxito
de sus iniciativas. Son numerosos los casos de implementaciones
erróneas y, en algún caso, han sido un fracaso total. La implementación
de ERP es un problema socio técnico que necesita una perspectiva
diferente a la de las innovaciones informáticas, depende profundamente
de una perspectiva equilibrada de toda la organización. Entre los
principales factores de éxito estratégicos podemos encontrar la
coordinación de los procesos de negocio y de los procesos ERP
integrados, que se encuentran bajo la influencia de la cultura de la
organización.
174
• La implantación de SaaS se duplica (Agosto 2010)
• Mayor adopción de la Inteligencia empresarial (BI) (Diciembre 2010): A
finales del año 2010 aumentó la adopción de la Inteligencia empresarial
(BI), ya que el 35% de las organizaciones comenzó a emplear BI
dominante y el 67% de las mejores empresas de cada sector empezó a
ofrecer BI autoservicio.
• Tendencias de la Inteligencia empresarial (Enero 2011): En 2011, las
principales tendencias emergentes de Inteligencia empresarial fueron los
servicios en la nube, la visualización de datos, el análisis predictivo y el
Big Data.
• #IBMBigData (2011): En 2011, IBM introdujo la etiqueta de Twitter,
#IBMbigdata, que tenía como objetivo desarrollar el sitio web temático del
Big Data que crearon en 2008 con intención de integrarlo en sus acciones
de mercadeo.
• El crecimiento real de los datos (Febrero 2011): En un artículo titulado The
World's Technological Capacity to Store, Communicate and Compute
Information de Science Magazine, se calculó que la capacidad mundial de
almacenamiento de información creció a una tasa anual del 25% anual
desde 1987 hasta 2007. En el mismo sentido, se afirmó que, en el año
1986, el 99,2% del almacenamiento de datos era analógico, pero en 2007
el 94% de dicho almacenamiento era digital. Esto supone un cambio
radical en un periodo de tiempo de tan solo 20 años (en 2002, el
almacenamiento digital superó al no digital por primera vez).
• Las grandes empresas amplían sus sistemas de almacenamiento de
datos (Mayo 2011): Los científicos del McKinsey Global Institute
publicaron el artículo titulado Big Data: The Next Frontier for Innovation,
Competition, and Productivity. En él, se estimó que «en 2009, casi todos
los sectores de la economía estadounidense tendrán, de media, un
mínimo de 200 terabytes de datos almacenados (un tamaño que supone
el doble del almacén de datos de la cadena de tiendas Wal-Mart del año
1999) por cada empresa con más de 1000 empleados». En el mismo
sentido, también afirman que los sectores de inversión y de valores
175
estaban a la zaga en volumen de datos almacenados por organización.
Los científicos calcularon que, solo en 2010, las grandes empresas
guardaron 7,4 exabytes de datos originales, mientras que los
consumidores almacenaron 6,8 exabytes.
• Capacidad de la información (2012): En 2012, en el artículo Tracking the
Flow of Information into the Home del International Journal of
Communication, se calculó que el suministro de información por parte de
los medios de comunicación a los hogares estadounidenses había pasado
de ser de unos 50.000 minutos al día en el año 1960, a cerca de 900.000
en 2005. Igualmente, se calculó que los Estados Unidos «se estaban
aproximando a los mil minutos de contenido a través de medios de
comunicación disponibles por cada minuto disponible para su consumo».
• Lanzamiento Mundial de IPv6 (Junio 2012): El 6 de junio de 2012, la
Internet Society llevó a cabo el Lanzamiento Mundial de IPv6 con el fin de
que los participantes (Wikipedia, Google o Facebook, entre otros)
desplegaran IPV6 de forma permanente en sus productos y servicios. El
Internet Protocol version 6 (IPv6) es la versión más reciente del protocolo
de Internet, que proporciona un sistema de identificación y localización
para dispositivos dentro de una red y el enrutamiento a través de Internet.
El IPv6 fue desarrollado por la Internet Engineering Task Force (IETF)
para resolver el problema del agotamiento de direcciones IPv4 (el formato
de 32 bits del protocolo IPv4 soporta "únicamente" 4300 millones de
direcciones IP).
• SAP HANA (Diciembre 2013): Las empresas empiezan a implementar
nuevas tecnologías en memoria, como SAP HANA, para analizar y
optimizar cantidades de datos masivas. Las empresas cada vez confían
más en el uso de datos como activo de negocio para lograr ventajas sobre
la competencia. El Big Data muestra el camino, ya que es indudablemente
la principal nueva tecnología a entender y utilizar para mantenerse al día
en un mercado que cambia tan rápido como el actual.
• Adopción de ERP en la nube (Febrero 2014): Mientras que el 47% de las
organizaciones encuestadas por Gartner tienen pensado migrar sus
176
sistemas ERP principales a la nube en un plazo de cinco años, el ERP en
la nube presenta una tasa de aceleración superior a la prevista
inicialmente, debido a las estrategias de ERP de dos niveles que amplían
el sistema ERP existente de la empresa y permiten llegar a nuevos
mercados y escalar a una velocidad más alta.
• El año del Internet de las cosas (Noviembre 2014): El IoT se ha convertido
en una fuerza poderosa para la transformación de negocios, y su enorme
impacto afectará en los próximos años a todos los sectores y todas las
áreas de la sociedad. Existen enormes redes de objetos físicos dedicados
(cosas) que incorporan tecnología para detectar o interactuar con su
estado interno o medio externo. Según Gartner, había 3700 millones de
"cosas" conectadas en uso en 2014 y esa cifra se elevará hasta los 4900
millones en 2015.
• Ciudades inteligentes (2015): Una ciudad inteligente (smart city) hace uso
del análisis de información contextual en tiempo real para mejorar la
calidad y el rendimiento de los servicios urbanos, reducir costes, optimizar
recursos e interactuar de forma activa con los ciudadanos. Según
estimaciones de Gartner habrá más de 1100 millones de dispositivos
conectados y en uso en diversas ciudades en 2015, incluyendo sistemas
de iluminado LED inteligentes, de monitorización de salud, cerraduras
inteligentes y numerosas redes de sensores para detección de
movimiento, estudio de contaminación atmosférica, etc.
177
ANEXO 11: Instalación y configuración de Herramientas
• /saren/
◦ bd/
◦ hdfs/
◦ instaladores/
- apache-cassandra-2.1.8-bin.tar.gz
- hadoop-2.6.0.tar.gz
- jdk-8u45-linux-x64.tar.gz
178
$> ls
apache-cassandra-2.1.8-bin.tar.gz hadoop-2.6.0.tar.gz jdk-8u45-linux-x64.tar.gz
1 Instalación de Java
$> cd /saren/instaladores
$> sudo mkdir /usr/lib/jvm/
$> sudo mkdir /usr/lib/jvm/jdk1.8.0_45/
$> tar -xvf jdk-8u45-linux-x64.tar.gz
$> sudo mv jdk1.8.0_45/* /usr/lib/jvm/jdk1.8.0_45/
$> rm -rf jdk1.8.0_45
4. Ahora, se le debe indicar al sistema que utilice jdk1.8.0_45 como java por
defecto.
179
$> sudo update-alternatives --config java
Nota: Cuando el sistema pregunte que opción desea, seleccione la que indique
jdk1.8.0_45
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45
export PATH=$PATH:$JAVA_HOME/bin
Nota: Luego de modificar el archivo .bashrc, este debe ser cargado nuevamente
para que tome los cambios realizados, ejecute source ~/.bashrc para
volver a cargar el archivo.
2 Instalación de Cassandra
180
$> cp /saren/instaladores/apache-cassandra-2.1.8-bin.tar.gz /saren/bd/
$> cd /saren/bd/
$> rm -f apache-cassandra-2.1.8-bin.tar.gz
$> mv apache-cassandra-2.1.8/* .
/saren/
bd/
bin/
conf/
javadoc/
tools/
interface/
lib/
pylib/
LICENSE.txt
NOTICE.txt
CHANGES.txt
NEWS.txt
181
3 Configuración de Cassandra
$> cd /saren/bd/conf/
182
cluster_name: 'SAREN'
num_tokens: 256
data_file_directories: /cassandra/data
commitlog_directory: /var/cassandra/commitlog
saved_caches_directory: /var/cassandra/saved_caches
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: BDDB1
listen_address: BDDB<n>
rpc_address: BDDB<n>
endpoint_snitch: GossipingPropertyFileSnitch
183
<ip-nodo1> BDDB1
<ip-nodo2> BDDB2
<ip-nodo3> BDDB3
Nota: Este archivo tiene la misma configuración para los tres nodos del clúster.
$> cd /saren/bd/bin
Donde <n> puede tomar uno de los siguientes valores, dependiendo del nodo
que se está iniciando: 1, 2, 3. Se debe tomar en cuenta que el primer nodo a
iniciar debe ser el semilla (BDDB1).
<ip-nodo1> BDDB1
<ip-nodo2> BDDB2
<ip-nodo3> BDDB3
$> cd <directorio_instalacion_cassandra>/bin
Donde <n> puede tomar uno de los siguientes valores, dependiendo del nodo
que este conectando: 1, 2, 3.
184
Para verificar el estado del clúster, ejecute:
$> cd /saren/bd/bin/
export CASSANDRA_HOME=/saren/bd
export PATH=$PATH:$CASSANDRA_HOME/bin
12. Luego de modificar el archivo ./bashrch debe volver a cargarlo para que
se tomen los cambios realizados:
185
$> source ~/.basrch
Astyanax
Cassandra-cli
Cqlsh
Hector
Pycassa
186
Procedimiento
Primero se debe configurar el nodo semilla y luego el resto de los nodos que se
van a emplear en el cluster
Para detener o reiniciar el cluster, se deben detener los nodos dejando de ultimo
el nodo semilla
Para arrancar nuevamente el cluster se debe iniciar con el nodo semilla y luego
con el resto de los nodos
nano /saren/bd/conf/cassandra.yaml
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
187
2. Luego de cambiar el archivo de configuración cassandra.yaml en cada nodo,
debe reiniciar Cassandra, detener primero los nodos (para desarrollo:
192.16.11.88 y 192.16.11.87) y por último el nodo semilla (para desarrollo:
192.16.11.86).
Conectados al nodo vía ssh y con permisos de root inicie el cliente cqlsh, luego
se modifica el factor de replicación para el keyspace system_auth.
188
El valor predeterminado de superusuario, nombre y la contraseña, que se utiliza
para iniciar el cliente cqlsh es cassandra. Inicie cqlsh usando el nombre y la
contraseña del superusuario.
En cada nodo del clúster, comenzando con los nodos semilla, se ejecuta el
comando nodetool repair. Se debe esperar hasta que la reparación se complete
en un nodo, a continuación, puede pasar al siguiente nodo.
./nodetool repair
189
4. Reiniciar el cliente Cassandra. Detenga los nodos y luego el nodo semilla.
Para iniciarlos nuevamente, se inicia primero el nodo semilla luego los otros
nodos.
CASSANDRA_HOME/bin/nodetool status
190
8. Asignar permisos al usuario administrador. Este usuario tiene todos los
permisos sobre todos los keyspace de la base de datos. Conectados al cliente
cqlsh ejecutamos lo siguiente:
NOTA: Para ejecutar los ETL que cargan y mantienen actualizada la base
de datos Cassandra se requiere crear un usuario 'sarenETL ' con
contraseña 'sarenEtl2015#', con permisos para leer/escribir.
191
10. Ya puede utilizar las declaraciones CQL enumerados a continuación para
configurar cuentas de usuario y conceder permisos para acceder a los objetos
de la base de datos.
Comandos CQL
Crear usuarios:
Eliminar un usuario:
192
Nota: Los superusuarios pueden cambiar la contraseña de un usuario o el
estado (nosuperuser, superuser). Los nosuperusuarios no pueden cambiar su
estado a superusuario. Los usuarios normales sólo pueden cambiar su propia
contraseña.
LIST USERS
ALL
ALTER
AUTHORIZE
CREATE
DROP
MODIFY
SELECT
193
Permiso Declaración CQL
SELECT SELECT
ALL KEYSPACES
KEYSPACE keyspace_name
TABLE keyspace_name.table_name
Instalación de Hadoop
194
DataNode: Un DataNode almacena los datos en el sistema de archivos Hadoop
(HDFS). Un sistema de archivos funcional tiene más de un DataNode, con los
datos replicados a través de ellos.
$> cd /saren/hdfs/
$> rm -f hadoop-2.6.0.tar.gz
$> mv hadoop-2.6.0/* .
/saren/
hdfs/
195
bin/
etc/
include/
lib/
sbin/
share/
libexec/
LICENSE.txt
NOTICE.txt
README.txt
Configuración de Hadoop
A continuación se especifica la configuración del clúster de Apache Hadoop para
SAREN, el cual cuenta con tres nodos, designando el servidor de <IP-nodo1>
como nodo maestro-esclavo y los servidores de <IP-nodo2> y <IP-nodo3> como
nodos esclavos.
Editar el archivo /etc/host en todos los nodos del clúster. Todos los nodos deben
tener la misma configuración en el archivo /etc/hosts ya que esto permitirá
conocer los demás nodos pertenecientes al clúster
<ip-nodo1> BDDB1
<ip-nodo2> BDDB2
<ip-nodo3> BDDB3
196
Nota: Este archivo tiene la misma configuración para los tres nodos del clúster.
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45
<property>
<name>fs.defaultFS</name>
<value>hdfs:BDDB1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/var/hadoop/data/hdfs/tmp</value>
</property>
Nota: Este archivo tiene la misma configuración para los tres nodos del clúster.
197
Antes de configurar el archivo hdfs-site.xml debemos crear los directorios para
los datos del datanode y el namenode.
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:/var/hadoop/data/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:/var/hadoop/data/hdfs/datanode</value>
</property>
198
Nota: Este archivo tiene la misma configuración para los tres nodos del clúster.
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>BDDB1:8050</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>BDDB1:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>BDDB1:8035</value>
199
</property>
Nota: Este archivo tiene la misma configuración para los tres nodos del clúster.
<property>
<name>mapreduce.jobtracker.address</name>
<value>BDDB1:5431</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
200
BDDB1
BDDB2
BDDB3
BDDB1
4. Configuración SSH
Hadoop requiere acceso SSH para administrar sus nodos (máquinas remotas) y
su máquina local. El próximo paso es generar una clave ssh sin contraseña de
inicio de sesión entre el nodo maestro y los nodos esclavos. Ejecute los
siguientes comandos sólo en el nodo maestro.
$> su – saren
201
$> ssh BDDB3
export HADOOP_HOME=/saren/hdfs
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Nota: Luego de modificar el archivo .bashrc, éste debe ser cargado nuevamente
para que tome los cambios realizados, ejecute source ~/.bashrc para
volver a cargar el archivo.
202
6. Formatear el NameNode
$> cd /saren/hdfs/bin
$> cd /saren/hdfs/sbin
$> ./start-dfs.sh
203
Ilustración 4: Evidencia inicio del sistema de archivos
Para validar que el DFS se inició con éxito, ejecute el siguiente comando en el
nodo maestro y el nodo esclavo:
$> jps
204
Ilustración 5: Evidencia de salida del comando. Enumera NameNode y
SecondaryNameNode
$> cd /saren/hdfs/sbin
$> ./start-yarn.sh
205
Ilustración 7: Evidencia del inicio del Yarn
206
Ilustración 8: Evidencia de inicio exitoso del clúster a través de Consola Web
Ilustración 9: Evidencia de inicio exitoso del clúster a través de Consolas Web. Vista de
la información de los Datanode
207
Integración Cassandra – Hadoop
1. Se debe indicar a Hadoop dónde encontrar todos los archivos jar que
necesitará para ejecutar los MapReduce en Cassandra. Estos archivos (jar) se
encuentran en la carpeta "lib" del directorio de instalación de Cassandra
/saren/bd/lib.
HADOOP_TASKTRACKER_OPTS="-classpath /saren/bd/*:/saren/bd/lib/* -
Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console
$HADOOP_TASKTRACKER_OPTS"
export HADOOP_CLASSPATH="/saren/bd/*:/saren/bd/lib/*"
Repita esta modificación para los nodos esclavo. Ahora cuando se proporcione
un programa MapReduce para leer y escribir en Cassandra, Hadoop tendrá los
componentes necesarios para ejecutarlo.
208
Instalación de Apache Hive, Solr y HUE
A continuación, se muestra la instalación de las herramientas Hive, Solr y HUE,
las cuales permiten la ejecución de consultas sobre la data almacenada en el
clúster de Hadoop de una manera eficiente. Dichas instalaciones solo deben
realizarse en el nodo Hadoop Maestro.
/saren/
hive/
bin/
conf/
examples/
hcatalog/
209
lib/
scripts/
LICENSE
NOTICE
README.txt
RELEASE_NOTES.txt
export HIVE_HOME=/saren/hive
export PATH=$PATH:$HIVE_HOME/bin
Nota: Luego de modificar el archivo .bashrc, éste debe ser cargado nuevamente
para que tome los cambios realizados, ejecute source ~/.bashrc para
volver a cargar el archivo.
3. Hive ha actualizado la librería Jline2, pero existe una versión anterior de esta
librería en el directorio HADOOP_HOME/share/hadoop/yarn/lib la cual debemos
eliminar antes de iniciar Hive, para ello ejecute el siguiente comando:
rm -r /saren/hdfs/share/hadoop/yarn/lib/jline-0.9.94.jar
210
$> hive
hive>
hive> exit;
Instalación de Solr
/saren/
solr/
211
bin/
contrib/
dist/
docs/
example/
licenses/
server/
CAHNGE.txt
LICENSE.txt
README.txt
NOTICE.txt
LUCENE_CHANGES.txt
export SOLR_HOME=/saren/solr
export PATH=$PATH:$SOLR_HOME/bin
Nota: Luego de modificar el archivo .bashrc, éste debe ser cargado nuevamente
para que tome los cambios realizados, ejecute source ~/.bashrc para volver a
cargar el archivo.
$> cd /saren/solr/bin
212
$> ./solr start
4. Verifique la instalación:
http://<ip-nodo-1>:8983
213
Instalación de Hadoop User Experience (HUE)
214
Instalando requisitos previos
Ejecutar los siguientes comandos para instalar los paquetes de desarrollo
Instalación de Maven
wget http://www-eu.apache.org/dist/maven/maven-
3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
Descomprimimos el archivo
215
Verificamos el valor de nuestra variable $JAVA_HOME (este valor variará según
la versión de Java instalada)
export PATH=/rutahastaelarchivomaven/apache-maven-3.3.9/bin:$PATH
mvn -v
216
Wget https://dl.dropboxusercontent.com/u/730827/hue/releases/3.8.1/hue-3.8.1.tgz
mv hue-3.8.1 hue
Cd Hue
make apps
217
Así debería finalizar la instalación
./build/env/bin/hue runserver
http://127.0.0.1:8000/
Hue solicitará que se cree un usuario para poder continuar. Es recomendado que
este coincida con el nombre de usuario de GNU/linux donde está instalado Hue
y Hadoop.
218
Enlazar Hue y Hadoop
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
cd $HADOOP_HOME/etc/hadoop
nano hdfs-site.xml
219
Abrimos y modificamos el archivo core.site.xml de hadoop y agregamos las
siguientes líneas
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
cd $HADOOP_HOME/etc/hadoop
nano core-site.xml
220
Para verificar que Hue y Hadoop fueron enlazados exitosamente iniciar los
demonios de hadoop, iniciar hue con el comando ./build/env/bin/hue runserver,
acceder a http://127.0.0.1:8000/, y seleccionar la opción Gestionar HFDS que se
encuentra en la parte superior derecha de la página principal de Hue. Ahí
deberían visualizarse los archivos HDFS.
221
ANEXO 12: Juicio de Experto
Atentamente,
222
INSTRUCCIONES
C) Seguido del juicio del experto se solicita una opinión sobre el instrumento
diseñado.
Nombre y Apellido:______________________________________________
donde lo obtuvo:________________________________________________
Año:_________________________________________Trabajos Publicados:
_______________________________________________________________
___________________________________________________________
2. Título de la Investigación:
223
2.2. Objetivo General:
3.1. Indicadores:
3.1.1. Seguridad
3.1.3. Escalabilidad
4. Alternativas de respuestas:
Sí
No
_____ Suficiente
_____ Insuficiente
5.2. Considera que los reactivos del cuestionario miden los indicadores
seleccionados para la variable de manera:
224
_____ Suficiente
_____ Insuficiente
_____ Si
_____ No
Observaciones: ________________________________________________
_____________________________________________________________
_____ Si
_____ No
Observaciones: ________________________________________________
_____________________________________________________________
5.5. Considera que existe pertinencia entre los indicadores y los objetivos de la
investigación.
_____ Si
_____ No
Observaciones: ________________________________________________
_____________________________________________________________
5.6. Considera que existe pertinencia entre los indicadores y las dimensiones de
la investigación.
_____ Si
_____ No
Observaciones: ________________________________________________
_____________________________________________________________
225
5.7. Considera que los reactivos del cuestionario están redactados de manera
adecuada.
_____ Si
_____ No
Observaciones: ________________________________________________
_____________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
226
Gráficos de los resultados
227
Considera que existe pertinencia entre los objetivos de la
investigación
SI NO
SI NO
228
Considera que existe pertinencia entre los indicadores y
los objetivos de la investigación
SI NO
SI NO
229
Considera que los reactivos del cuestionario están
redactados de manera adecuada
SI NO
230