MODELO DE REFERENCIA PARA LA GESTIÓN DE PROCESOS ...
Transcript of MODELO DE REFERENCIA PARA LA GESTIÓN DE PROCESOS ...
MODELO DE REFERENCIA PARA LA GESTIÓN DE PROCESOS
LICITATORIOS EN COLOMBIA USANDO ANALÍTICA DE DATOS
Luis Carlos Álvarez Villamizar
Darío Sebastián Limas Cano
2019
Universidad Distrital Francisco José De Caldas
Facultad Tecnológica
Ingeniería En Telemática
i
MODELO DE REFERENCIA PARA LA GESTIÓN DE PROCESOS
LICITATORIOS EN COLOMBIA USANDO ANALÍTICA DE DATOS
Monografía, para optar por el título de Ingeniero en
Telemática
Tutor:
Ingeniero Jairo Hernández Gutiérrez
Darío Sebastián Limas Cano
Luis Carlos Álvarez Villamizar
2019
Universidad Distrital Francisco José De Caldas
Facultad Tecnológica
Ingeniería En Telemática
ii
Tabla de Contenido
Resumen ..................................................................................................................................... 1 Abstrac ....................................................................................................................................... 2 Introducción ............................................................................................................................... 3
1. FASE DE DEFINICIÓN PLANEACIÓN Y ORGANIZACIÓN ...................................... 4 1.1. Modelo de referencia para la gestión de procesos licitatorios en Colombia usando
analítica de datos ......................................................................................................................... 4 1.2. Planteamiento del problema ...................................................................................... 4
1.2.1. Formulación del problema. ................................................................................... 5
1.3. Objetivos ................................................................................................................... 5 1.3.1. Objetivo general. ................................................................................................... 5 1.3.2. Objetivos específicos............................................................................................. 5
1.4. Alcances y delimitaciones......................................................................................... 6 1.4.1. Alcance. ................................................................................................................. 6 1.4.2. Delimitaciones. ...................................................................................................... 6
1.5. Justificaciones ........................................................................................................... 7 1.6. Marco de referencia .................................................................................................. 8
1.6.1. Estado del arte. ...................................................................................................... 8 1.7. Marco teórico .......................................................................................................... 10
1.7.1. Big data. .............................................................................................................. 10
1.7.2. Funcionamiento. .................................................................................................. 11 1.7.3. Big data en Colombia. ......................................................................................... 12
1.7.4. Política nacional de explotación de datos. .......................................................... 13 1.7.5. Fases del análisis. ................................................................................................ 14 1.7.6. Tipos de Analítica de datos. ................................................................................ 15
1.7.7. Web Scraping. ..................................................................................................... 17
1.7.8. Licitación. ............................................................................................................ 17 1.7.9. Proceso licitatorio en Colombia. ......................................................................... 17 1.7.10. Hadoop............................................................................................................. 19
1.7.11. HBase............................................................................................................... 20 1.7.12. Selenium . ........................................................................................................ 21
1.7.13. ElasticSearch. .................................................................................................. 22 1.8. Ciclo Deming .......................................................................................................... 23
1.9. Factibilidad ............................................................................................................. 24 1.9.1. Factibilidad operativa. ......................................................................................... 24 1.9.2. Factibilidad técnica. ............................................................................................ 25 1.9.3. Factibilidad económica. ...................................................................................... 25
1.9.4. Factibilidad Legal. ............................................................................................... 26 2. ANÁLISIS DE LA SITUACIÓN ACTUAL .................................................................... 29
2.1. Proceso actual de gestión de licitaciones en Colombia .......................................... 29
2.1.1. SECOP I. ............................................................................................................. 30 2.1.2. SECOP II. ............................................................................................................ 31
2.2. Procedimiento para la captura de datos .................................................................. 32 2.2.1. Registro y obtención de Token............................................................................ 32 2.2.2. Simulación peticiones HTTP. ............................................................................. 34
iii
3. IDENTIFICACIÓN Y CONFIGURACIÓN DE HERRAMIENTAS TECNOLÓGICAS
BIG DATA.................................................................................................................................... 37 3.1. Identificación de herramientas para trabajar con Big Data ..................................... 38 3.2. Configuración inicial Hadoop ................................................................................. 40
3.2.1. Montaje primer nodo de Hadoop. ....................................................................... 41 3.2.1.1. Configuración HDFS - DATOS ................................................................... 41
3.2.2. Configuración MapReduce V2 – YARN – PROCESOS. ................................... 42 3.3. Configuración de ficheros para montar el Clúster .................................................. 45 3.4. Despliegue contenedores Docker ............................................................................ 48
3.5. Configuración de HIVE .......................................................................................... 50 4. MODELO DE BIG DATA ............................................................................................... 55
4.1. Diagrama del modelo propuesto ............................................................................. 56
4.2. Descripción del modelo .......................................................................................... 58 4.3. Detalle de los elementos del modelo ...................................................................... 59
4.3.1. HDFS – Hadoop Distributed File System ........................................................... 60
4.3.1.1. ¿Para qué sirve? ............................................................................................ 60 4.3.1.2. Arquitectura. ................................................................................................. 60
4.3.1.3. ¿Cómo es usado en el modelo? .................................................................... 63 4.3.1.4. ¿Qué más se puede hacer con él? ................................................................. 65 4.3.1.5. ¿Cómo más se puede complementar? ........................................................... 66
4.3.2. YARN – Yet Another Resource Negotiator ....................................................... 67 4.3.2.1. ¿Para qué sirve? ............................................................................................ 67
4.3.2.2. Arquitectura .................................................................................................. 67 4.3.2.3. ¿Cómo es usado en el modelo? .................................................................... 68 4.3.2.4. ¿Cómo se puede complementar? .................................................................. 69
4.3.3. HIVE ................................................................................................................... 71
4.3.3.1. Modos de ejecución de HIVE: ..................................................................... 71 4.3.3.2. Tipos de Datos (Schema) de HIVE .............................................................. 71 4.3.3.3. Como se accede al Hiveserver2 .................................................................... 72
4.3.4. HUE ..................................................................................................................... 75 4.3.4.1. Configuración. .............................................................................................. 75
4.3.4.2. Funcionalidad. .............................................................................................. 78 4.4. Seguridad en el modelo ........................................................................................... 80
4.5. Funcionamiento del modelo .................................................................................... 82 5. IMPLEMENTACIÓN Y PRUEBAS DEL MODELO ..................................................... 84
5.1. Captura de datos SECOP programa PHP................................................................ 84 5.1.1. Configuración de script ....................................................................................... 85
5.2. Configuración ODBC ............................................................................................. 89 5.3. Conexión OBDC PHP-HIVE .................................................................................. 93 5.4. Ejecución de consultas al HDFS por medio de HIVE ............................................ 94
5.5. Analítica de datos con HUE .................................................................................... 94 CONCLUSIONES ................................................................................................................. 100 RECOMENDACIONES ........................................................................................................ 102 BIBLIOGRAFÍA .................................................................................................................... 103
iv
Lista de Ilustraciones
Ilustración 1 Fases del ciclo Deming. Fuente: Rojo (2018) ..................................................... 23 Ilustración 2 Colombia Compra Eficiente - Modulo Consulta SECOP I. Fuente: Colombia
Compra Eficiente (2019)............................................................................................................... 30
Ilustración 3 Colombia Compra Eficiente - Modulo Consulta SECOP II. Fuente: Colombia
Compra Eficiente (2019)............................................................................................................... 31 Ilustración 4 Búsqueda de proceso SECOP. Fuente propia ..................................................... 33 Ilustración 5 Botón "ver más" búsqueda procesos SECOP. Fuente propia ............................. 33 Ilustración 6 Token botón búsqueda de procesos SECOP. Fuente propia ............................... 34
Ilustración 7 Solicitud POST con mKey botón procesos SECOP. Fuente propia ................... 34 Ilustración 8 Solicitud POST índices y número de página botón procesos SECOP. Fuente propia
....................................................................................................................................................... 35
Ilustración 9 Respuesta HTTP POSTMAN búsqueda de procesos SECOP. Fuente Propia .... 35 Ilustración 10 Estructura Clúster Hadoop – Licitaciones. Fuente propia ................................ 37 Ilustración 11 Administrador Web: 9870 – vista de configuración del directorio del HDFS.
Fuente propia. ............................................................................................................................... 42 Ilustración 12 Arquitectura Hadoop MapReduce. Fuente: Packt (2015) ................................. 43
Ilustración 13 Administrador Web de los procesos de los Nodos. Fuente propia. .................. 44 Ilustración 14 Configuración Clúster - Fichero hdfs-site.xml. Fuente propia. ........................ 46 Ilustración 15 Configuración Clúster - Metadatos directorio Current Namenode. Fuente propia.
....................................................................................................................................................... 46 Ilustración 16 Web Administración Hadoop - Nodos esclavos activos. Fuente propia ........... 47
Ilustración 17 Administración Web Hadoop - Nodos esclavos YARN. Fuente propia ........... 47 Ilustración 18 Dockerfile - Configuración Sistema Operativo Centos 7. Fuente propia ......... 48 Ilustración 19 Dockerfile - Configuración Hadoop – Java. Fuente Propia. ............................. 49
Ilustración 20 Dockerfile - Configuración Hadoop variables entorno y puertos. Fuente: propia
....................................................................................................................................................... 50 Ilustración 21 Hadoop - Ubicación directorios Hadoop y Hive. Fuente: propia. ................... 51 Ilustración 22 Dockerfile - Configuración Hive variables de entorno. Fuente: propia. ........... 51
Ilustración 23 Hive - Ficheros de configuración hiveserver2. Fuente propia. ......................... 51 Ilustración 24 Hive - Creación carpetas por default en HDFS. Fuente propia......................... 52
Ilustración 25 Dockerfile - Configuración final Hive. Fuente propia. ..................................... 53 Ilustración 26 Modelo Big Data. Fuente propia. ...................................................................... 57
Ilustración 27 Arquitectura HDFS: Fuente Apache (2019) ..................................................... 61 Ilustración 28 Archivos directorio Current Namenode. Fuente propia. ................................... 62 Ilustración 29 Flujo de ficheros metadatos HDFS Namenode. Fuente propia ......................... 62 Ilustración 30 Directorio de la tabla procesos Base de Datos SECOP. Fuente propia ............ 64
Ilustración 31 Detalle bloque generado archivo SECOP. Fuente propia ................................. 64 Ilustración 32 Administración HDFS desde HUE. Fuente propia. .......................................... 66 Ilustración 33 Esquema MAPREDUCE - YARN. Fuente: Apache (2019) ............................. 68
Ilustración 34 Detalles de aplicaciones ejecutadas en el modelo. Fuente propia. .................... 69 Ilustración 35 Jobs generados a partir de la ejecución de aplicaciones MapReduce. Fuente
propia ............................................................................................................................................ 70 Ilustración 36 Detalle de las tareas generadas por los Jobs. Fuente propia. ............................ 70 Ilustración 37 Modos de conexión HiveServer2. Fuente: Mujumdar (2013) .......................... 73 Ilustración 38 Conexión Beeline CLI al HiveServer2. Fuente propia. .................................... 74
v
Ilustración 39 Conexión JDBC HUE - HIVE. Fuente propia .................................................. 75 Ilustración 40 Configuración HUE - HDFS. Fuente propia. .................................................... 76 Ilustración 41 Configuración HUE - YARN. Fuente propia. ................................................... 77 Ilustración 42 Configuración HUE - HIVE. Fuente propia. .................................................... 77
Ilustración 43 Configuración HUE- Dockerfile. Fuente propia ............................................... 78 Ilustración 44 Comprobación de configuración HUE. Fuente propia. ..................................... 78 Ilustración 45 Bases de datos compatibles con HUE. Fuente propia. ...................................... 79 Ilustración 46 Editor de consultas HIVE SQL. Fuente propia ................................................. 79 Ilustración 47 Modelo Web Scraping. Fuente propia. ............................................................. 84
Ilustración 48 Ejemplo Selectores. Fuente propia. ................................................................... 86 Ilustración 49 Script Captura mkey SECOP. Fuente propia. ................................................... 87 Ilustración 50 Parámetros solicitud POST SECOP. Fuente propia. ......................................... 88
Ilustración 51 Array retornado de solicitud POST al SECOP. Fuente propia. ........................ 89 Ilustración 52 DRIVER HIVE OBDC. Fuente: Microsoft (2019) ........................................... 90 Ilustración 53 Administrador OBDC Sistema Operativo. Fuente propia. ............................... 90
Ilustración 54 Data Source Name - OBDC HIVE. Fuente propia ........................................... 91 Ilustración 55 Creación DSN de usuario HIVE. Fuente propia. .............................................. 91
Ilustración 56 Selección Controlador OBDC HIVE. Fuente propia. ....................................... 91 Ilustración 57 Configuración DNS HIVE. Fuente propia. ....................................................... 92 Ilustración 58 Test de conexión OBDC HIVE. Fuente propia. ................................................ 93
Ilustración 59 Función de conexión OBDC PHP - HIVE. Fuente propia. ............................... 93 Ilustración 60 Ejecución de Consultas hiveSQL desde Beeline. Fuente propia. ..................... 94
Ilustración 61 Ejecución consulta hiveSQL - administración HUE. Fuente propia. ............... 95 Ilustración 62 Resultado consulta hiveSQL - administración HUE. Fuente propia. ............... 95 Ilustración 63 Grafico de Barras, consulta hiveSQL. Fuente propia. ...................................... 96
Ilustración 64 Gráfico de Barras, consulta hiveSQL. Fuente propia. ...................................... 96
Ilustración 65 Grafico de Geolocalización. HUE. Fuente propia ............................................ 97 Ilustración 66 Consulta cantidad de procesos por entidad 2019 - HUE. Fuente propia .......... 97 Ilustración 67 Entidades con más procesos registrados 2019 - HUE. Fuente propia............... 98
Ilustración 68 Gráfico de Barras, cantidad procesos SECOP 2019. Fuente propia. ................ 98 Ilustración 69 Opciones de descarga de información. HUE. Fuente propia ............................ 99
vi
Lista de tablas
Tabla 1 Factibilidad Económica del proyecto. Fuente: propia................................................. 26 Tabla 2 Procesos activos Nodo Maestro - HIVE. Fuente: propia. ........................................... 53 Tabla 3 Tipos de datos HIVE. Fuente: propia. ......................................................................... 72
Tabla 4 Puertos servicios de Hadoop. Fuente: Propia. ............................................................. 81
1
Resumen
En este documento se presenta la configuración, despliegue y pruebas de un modelo para la
analítica de datos usando Big Data con el objetivo de gestionar la información de los procesos
licitatorios de Colombia, pero también para que sea aplicable a otros sectores o modelos de
negocio.
Por medio del uso de herramientas de software libre, se plantea una solución Apache Hadoop,
con la cual se almacena y manipula la información obtenida, garantizando tanto la redundancia de
datos como el cumplimiento de los procesos de cada tarea generada y a su vez un mejor uso de los
recursos disponibles del Cluster. Adicionalmente, se presenta el detalle de cada uno de los
elementos que conforman este modelo, con el fin de comprender su funcionamiento, importancia
e integración con diferentes herramientas. Finalmente, se cuenta con un apartado de
implementación y pruebas del modelo, lo que permitirá iniciar con el paradigma de un sistema
distribuido, bajo lo que es el concepto de Big Data, en cualquier organización dispuesta a invertir
recursos en ello.
La metodología que se trabaja es el ciclo Deming, organizado en los capítulos desarrollados en
el documento comenzando con el análisis del panorama actual de las licitaciones para proseguir
con la identificación y configuración de herramientas útiles para el desarrollo del modelo y con
esto finalizar con los resultados al aplicar analítica de datos.
2
Abstrac
This document show the configuration and test of a model for Data Analytics - Big Data - with
the goal of manage the information of the bidding processes in Colombia but also for anothers
kinds of sector or business logic.
Through the use of free software tools, an Apache Hadoop solution is proposed, with which the
information obstaneid is stored and manipulated, guaranteeing both the redundancy of data and
the compliance of the processes of each task generated and at the same time a better use of the
available resources of the Cluster. Additionally, the detail of each of the elements that make up
this model is presented, in order to understand its operation, importance and integration with
different tools. Finally, there is a section on implementation and testing of the model, which will
start with the paradigm of a distributed system, under what is the concept of Big Data, in any
organization willing to invest resources in it.
The methodology used is the Deming Cycle, organized in the chapters developed in the
document beginning with the analysis of the current landscape of the bids to proceed with the
identification and configuration of useful tools for the development of the model and with this end
with a sample of data analytics.
3
Introducción
Hoy en día con el paso a la información en digital se tiene una gran cantidad de datos que, en
su estado natural y sin ser procesados, no aportan algo significativo a la hora de tomar las
decisiones. Para sacar provecho de esta situación surge la Analítica de datos o Big Data, la cual se
enfoca en el tratamiento de grandes volúmenes de información a partir del uso de técnicas y
herramientas, basadas en la estadística.
En Colombia, la entidad encarga de gestionar los procesos licitatorios públicos, a partir del año
2011, es conocida como Colombia Compra Eficiente. Esta pone a disposición de las empresas, y/o
personas interesadas en participar en las diferentes convocatorias para la celebración de contratos,
un sistema de información que busca optimizar la oferta y demanda en el mercado de compra
pública.
A causa del gran flujo de información que se presenta en cada uno de los procesos licitatorios
se presentan inconvenientes de rendimiento y de accesibilidad a los recursos lo cual impide a
algunas empresas presentar su convocatoria.
En el presente documento se realizará un análisis en detalle del proceso de gestión de las
licitaciones en las plataformas del SECOP I (Sistema Electrónico para la Contratación Pública) y
SECOP II de Colombia Compra Eficiente, identificando las posibles fuentes de datos para
posteriormente, con la elaboración de un modelo de referencia enfocado al tratamiento y gestión
de datos con Big Data, se tenga una base con la cual se pueda mejorar el sistema y sacarle provecho
a toda la información relacionada con este.
4
1. FASE DE DEFINICIÓN PLANEACIÓN Y ORGANIZACIÓN
1.1. Modelo de referencia para la gestión de procesos licitatorios en Colombia usando
analítica de datos
1.2. Planteamiento del problema
En los procesos de contratación pública y privada de Colombia se establecen una serie
de requerimientos, los cuales deben ser cumplidos por las partes interesadas en la participación de
estos, generando datos como los relacionados con los asuntos legales, tiempos establecidos para
el desarrollo del proyecto, presupuestos, perfiles profesionales, datos personales de cada uno de
los compradores y proveedores, descripciones de ofertas, datos no estructurados como adjuntos,
entre otros. Todo esto genera grandes volúmenes de información en cada una de las licitaciones
publicadas a diario que finalmente resultan en algo complejo de controlar.
Durante los últimos años, en donde se ha dado paso a la digitalización, en la mayoría de los
sectores productivos, las empresas Colombianas que han estado interesadas en participar de
los procesos de contratación no logran tener acceso fácil a las diversas convocatorias, ya sea
por la falta de entendimiento de las herramientas tecnológicas disponibles para la búsqueda y
presentación de sus propuestas, o que a pesar de que pueden llegar a cumplir el
perfil solicitado para aplicar no lo consiguen por la falta de transparencia en la
publicación y el manejo de estos contratos.
5
Por todo esto, se identifica la necesidad de un cambio de paradigma en la forma en que se está
gestionando los procesos licitatorios, a fin de facilitar, mejorar y garantizar la competitividad
empresarial en aras de asegurar la calidad en la provisión de los bienes, obras y servicios.
1.2.1. Formulación del problema.
En Colombia se ha prestado importancia al manejo de la información en digital, por esto se han
promovido proyectos relacionados con la Analítica de Datos (Big Data) y, además, cabe
mencionar que es uno de los primeros países de América Latina en adoptar una política nacional
para la explotación de los datos. Por lo tanto, ¿En la actualidad Colombiana es posible diseñar un
modelo para gestión de los procesos licitatorios mediante técnicas adecuadas e identificación de
las herramientas para aplicar analítica de datos?
1.3. Objetivos
1.3.1. Objetivo general.
Desarrollar un modelo de referencia para la gestión de los procesos licitatorios en Colombia,
utilizando analítica de datos (Big Data).
1.3.2. Objetivos específicos.
*Analizar la forma en que se gestiona actualmente los procesos licitatorios para determinar un
plan de acción según el ciclo Deming.
6
*Identificar las herramientas tecnológicas y las fuentes datos más adecuadas para el desarrollo
del modelo.
*Diseñar el modelo para la gestión de los procesos licitatorios con base en las técnicas
disponibles para usar analítica de datos.
*Documentar los resultados obtenidos luego de realizar las pruebas del modelo e interpretarlos
para identificar oportunidades de mejora.
1.4. Alcances y delimitaciones
1.4.1. Alcance.
El proyecto se realiza para plantear un modelo de referencia de Big Data que permita gestionar
las licitaciones de Colombia apoyándose en la analítica de datos. Se muestra la configuración y
uso de las diferentes herramientas disponibles para trabajar con grandes y/o variados volúmenes
de datos, añadiendo el análisis de los resultados obtenidos.
1.4.2. Delimitaciones.
Delimitación temática:
Se procede a capturar los datos públicos de los procesos de licitaciones del SECOP mediante la
técnica de Web Scraping, razón por la cual lo se puede contar con gran cantidad de datos de los
procesos licitatorios.
7
Para el despliegue en un ambiente de desarrollo se dispone de tres equipos portátiles, en los
cuales se instala y configuran los clientes y programas necesarios para la ejecución de una
simulación a pequeña escala de lo que es Big Data.
El proyecto tiene énfasis en brindar una aproximación de lo que significa trabajar con un modelo
de Big Data, considerando cada uno de los factores claves como lo son los datos, procesos y
análisis de datos.
Delimitación Temporal. El proyecto se realiza en el transcurso de un (1) semestre, el cual
transcurre desde marzo hasta agosto del año 2019
Delimitación Geográfica. Por medio de la plataforma del SECOP se capturan datos de los
procesos de diferentes partes de Colombia, el área geográfica para el desarrollo del proyecto es la
ciudad de Bogotá en la Universidad Distrital Francisco José de Caldas en la Facultad Tecnológica.
1.5. Justificaciones
En el mercado laboral cualquier oportunidad de obtener un contrato rentable entre contratista y
contratante es de vital importancia. Con la creación de Colombia Compra Eficiente por parte del
Gobierno de Colombia se abrió la posibilidad de contar con un ambiente tecnológico para la
gestión de los procesos licitaciones y su publicación.
Con el avance de la tecnológica, de una manera acelerada, surge la necesidad de establecer
nuevas técnicas y modelos para el tratamiento y la presentación de los datos, considerando tanto
el volumen, variedad, velocidad, veracidad y valor de estas estructuras de datos. Es aquí donde
8
Big data se presenta como la solución y enfoque en cada uno de los aspectos mencionados
anteriormente.
Conocer las bases para el desarrollo de grandes modelos de analítica de datos es primordial y
ayudará a comprender de mejor manera como abarcar diferentes situaciones. Es por ello que a
través de este estudio se pretende plantear un modelo de referencia para la gestión de datos y
presentar las herramientas actuales con las que se cuenta para estos casos.
1.6. Marco de referencia
1.6.1. Estado del arte.
En los últimos años se ha dado una revolución digital que ha generado una serie de problemas
y oportunidades en muchos sectores. El tratamiento de la información, como uno de los activos
más importantes para las empresas, es una necesidad y un reto que se debe asumir y para esto
existen métodos como la analítica de datos con Big Data donde se logra identificar patrones de
grandes cúmulos de datos en cuestión de segundos.
Por ello, como lo afirman los estudiantes de la Universidad Distrital Reyes y Salinas (2016,
p.66-76), en la tesis “Análisis de la viabilidad de la implementación de redes Big Data en
Colombia”1, cuando se implementa un proyecto de Big Data influye mucho el “¿Qué se quiere
hacer?” para así poder determinar el costo de este. A su vez, es viable el uso de un compendio de
1 Reíta Reyes, J. E. y Salinas Hernandez, H. J. (2016). Análisis de la viabilidad de la implementación de redes Big
Data en Colombia (Tesis de pregrado). Recuperado de http://repository.udistrital.edu.co/bitstream/11349/4018/1/Big-
data-FINAL-SI-1-1%20%281%29.pdf
9
tecnologías, como lo es toda la familia del Framework Apache Hadoop la cual permite trabajar
con el concepto de computación distribuida de una forma rápida y dinámica. Cabe resaltar que,
por recomendación del resultado del análisis de viabilidad, lo más óptimo es que se trabaje en la
nube la implementación de cualquier modelo de Big Data ya que la relación costo beneficio es
mejor al no tener la necesidad de contar con una infraestructura física robusta para la
implementación del modelo.
Así mismo, como propone el programa de transformación productiva (PTP, 2018) surge la
necesidad de implementar soluciones de Big Data en cualquier ámbito empresarial2, por lo que
existen entidades interesadas en capacitar a los trabajadores de empresas BPO (Business Process
Outsourcing), KPO (Knowledge Process Outsourcing) e ITO (Information Technology
Outsourcing) en el análisis y visualización de datos, con el fin de promover el desarrollo de
soluciones basadas en Big Data o Data Analytics para mejorar los procesos y rentabilidad de sus
compañías. Las empresas, reciben diagnóstico del uso y apropiación de tecnologías y herramientas
basadas en Data Analytics, Big Data o internet de las cosas por lo que se resalta la importancia de
contar con expertos para comenzar a desarrollar una solución de computación distribuida que
genere valor.
2 Programa de transformación productiva. Formación en BigData. Recuperado de https://www.ptp.com.co/ptp-
servicios/ptp-convocatorias/para-empresas/ptp-busca-60-personas-del-sector-bpo-software-y-ti
10
Finalmente, con referentes como la herramienta europea Digiwhist3, la cual a inicios del año
2018 se dio a conocer en los medios de comunicación como la revista La Vanguardia (2018), es
posible observar las grandes ventajas que tiene la aplicación de Big Data en ámbitos del Gobierno.
Este proyecto europeo de Big data, tiene como objetivo el control de los contratos público, como
lo menciona La Vanguardia: “Seis organizaciones europeas, lideradas por la Universidad de
Cambridge, han diseñado Digiwhist, un programa que almacena los datos de los contratos públicos
de la Unión Europea y analiza los indicadores de riesgo potencial de corrupción.” Digiwhist es
una herramienta, compleja, que realiza procesamiento de indicadores y datos apoyándose del
conocimiento de las entidades reguladoras. Se presta suma importancia a la toma de la muestra,
indicando que se tomaron las contrataciones públicas de 35 jurisdicciones, para obtener un mejor
análisis y evaluación de los indicadores de riesgos de corrupción.
1.7. Marco teórico
1.7.1. Big data.Según Gartnet (s.f.) Big data es un gran volumen, alta velocidad y / o gran
variedad de activos de información que demandan formas rentables e innovadoras de
procesamiento de la información que permiten un mejor conocimiento, toma de decisiones y
automatización de procesos.4
Actualmente se puede identificar “cinco V”, que no son más que desafíos de la Big Data:
3 La Vanguardia. (2018) Un proyecto europeo de big data servirá para controlar los contratos públicos. Recuperado
de https://www.lavanguardia.com/vida/20180119/44120927162/un-proyecto-europeo-de-big-data-servira-para-
controlar-los-contratos-publicos.html
4 Gartnet. (s.f.). Big Data. Recuperado de https://www.gartner.com/it-glossary/big-data
11
Volumen: una característica física, pero el modelado conceptual puede organizar,
identificar y describir datos importantes y metadatos.
Velocidad: los datos deben filtrarse, pero el modelado conceptual puede ayudar a extraer
datos importantes.
Variedad: la modelización conceptual puede modelar la variedad, las jerarquías y las redes
de datos, integrar los datos y abordar el resultando en problemas de almacenamiento de
datos grandes.
Veracidad: el modelado conceptual puede verificar la calidad, la integridad y la
coherencia.
Valor: los modelos conceptuales pueden gestionar proyectos de Big Data, incluido el
análisis de ellos para extraer valor y evaluar los resultados.
1.7.2. Funcionamiento.Según Oracle (s.f.) las acciones clave, para el funcionamiento, de
Big data son:
Integrar
El big data concentra datos de numerosas fuentes y aplicaciones distintas. Los mecanismos de
integración de datos convencionales, tales como ETL (extract, transform, load [extraer,
transformar, cargar]), generalmente no están a la altura en dicha tarea. Analizar conjuntos de big
data de uno o más terabytes, o incluso petabytes, de tamaño requiere de nuevas estrategias y
tecnologías.
Durante la integración, es necesario incorporar los datos, procesarlos y asegurarse de que estén
formateados y disponibles de tal forma que los analistas empresariales puedan empezar a
utilizarlos.
12
Gestionar
El big data requiere almacenamiento. Su solución de almacenamiento puede residir en la nube,
on premise o ambas. Puede almacenar sus datos de cualquier forma que desee e incorporar los
requisitos de procesamiento de su preferencia y los motores de procesamiento necesarios a dichos
conjuntos de datos on-demand. Muchas personas eligen su solución de almacenamiento en función
de dónde residan sus datos en cada momento. La nube está aumentando progresivamente su
popularidad porque es compatible con sus requisitos tecnológicos actuales y porque le permite
incorporar recursos a medida que los necesita.
Analizar
La inversión en big data se rentabiliza en cuanto se analizan y utilizan los datos. Adquiera una
nueva claridad con un análisis visual de sus diversos conjuntos de datos. Continúe explorando los
datos para realizar nuevos descubrimientos. Comparta sus hallazgos con otras personas. Construya
modelos de datos con aprendizaje automático e inteligencia artificial. Ponga sus datos a trabajar.
1.7.3. Big data en Colombia5.
Según (KienyKe, 2017) entre las profesiones que son más solicitadas se encuentran los analistas
de datos. En la situación actual de Colombia se observa un déficit de profesionales de TI,
5KienyKe (2017). Analítica de datos ¿qué es y cómo vamos en el tema de Colombia? KienyKe Tecnología.
Recuperado de https://www.kienyke.com/tendencias/tecnologia/analitica-de-datos-que-es-y-como-vamos-en-el-
tema-de-colombia
13
estimando que en este sector se ofrece 70.318 puestos de trabajo, pero por año en el país se gradúan
menos de 6.000 ingenieros.
Sabiendo que todo lo relacionado con Big Data es una oportunidad de crecer en diferentes
sectores, la entidad MINTIC creó en el año 2015 el Centro de Excelencia y Apropiación en Big
Data y Big Data Analytics (CEA), enfocado a la investigación, además, puso en marcha proyectos
como “Introducción al Pensamiento Computacional en colegios de Colombia” para promover el
aprendizaje y la formación de habilidades en este tema.
1.7.4. Política nacional de explotación de datos6.
En Colombia, desde 1997 se reconoce la eficiencia de las TIC par la administración pública y
facilitan la provisión de servicios gubernamentales. Este cambio de paradigma da lugar al concepto
de Gobierno Electrónico como aquella estrategia que emplea las TIC para beneficios sociales.
Desde el Ministerio de Tecnologías de la Información y las Comunicaciones (MINTIC) se
promueve el uso de la analítica de datos, Big Data, para el aprovechamiento de ese gran cumulo
de información para mejorar la toma de decisiones.
El Gobierno Nacional aprobó el CONPES 3920, elaborado por el Consejo Nacional de Política
Económica y Social (CONPES, 2018) el cual define la Política nacional de explotación de datos,
con los objetivos de que a 2022 Colombia pase de 51 % de promedio de activos públicos
digitalizados y publicados que se tenía en 2017 al 100 %; impulsar el porcentaje de entidades que
6Consejo Nacional De Política Económica Y Social. (2018) POLÍTICA NACIONAL DE EXPLOTACIÓN DE
DATOS (BIG DATA). Recuperado de https://colaboracion.dnp.gov.co/CDT/Conpes/Econ%C3%B3micos/3920.pdf
14
tienen al menos un proyecto de aprovechamiento de datos, que en 2017 era el 9,3 % y que para
dentro de cuatro años se espera que sea 90 %; y lograr que por lo menos el 50 % de las entidades
públicas desarrollen proyectos de aprovechamiento de datos para mejorar los servicios prestados
a la ciudadanía.
1.7.5. Fases del análisis.7
Como afirma Glez (2014) existen tres fases del análisis de los datos:
Primera Fase, Analítica Horizontal:
Es aquella que se centra en representaciones visuales de los datos que permitan obtener una
impresión general sobre nuestros activos de forma sencilla e inmediata. Estas representaciones
gráficas se han de corresponder con un KPI que esté alineado con nuestros objetivos de negocio y
en el cual es común el uso de diferentes pictogramas, sencillas líneas de tendencia y adicionalmente
algún valor porcentual o indicador a medida, que conjuntamente permitan visualizar de forma
sintética los indicadores y valores que alimentan dicho KPI.
Segunda Fase, Analítica Vertical:
Comienza por profundizar o sumergirse dentro de los indicadores que hayamos seleccionado.
Requiere dejar por un momento la representación gráfica y bucear por las diferentes tablas de datos
7 Glez J. M. (2014). Introducción a la Analítica de Datos (I). Recuperado de
https://www.analiticaweb.es/introduccion-a-la-analitica-de-datos-i/
15
que alimentan nuestros KPI’s. La imagen de un iceberg es muy gráfica para describir este proceso.
Mediante la Analítica Horizontal vemos la punta del iceberg, pero solo sumergiéndonos en la
Analítica Vertical podremos comprender la totalidad del mismo.
Tercera Fase, Analítica Diagonal:
Análisis de los datos en mayor profundidad, usualmente apoyados en métodos estadísticos más
avanzados. El uso del término diagonal toma su sentido en este contexto, cuando en el análisis que
realizamos recorremos diferentes indicadores, tablas y KPI’s para analizar la relación o
dependencia que pueda existir entre ellos; pasamos por tanto de un análisis global pero de
superficie (Analítica Horizontal) y de un análisis de profundidad pero centrado en uno o pocos
indicadores (Analítica Vertical) a un análisis global y de profundidad (usamos el término global
por cuanto que aplica a todos aquellos indicadores que consideramos puedan tener influencia en
el comportamiento de la situación que queremos analizar) que involucra a varios o muchos
conjuntos de datos de los cuales queremos analizar y comprender sus dependencias, su
comportamiento actual, su posible evolución, etc.
1.7.6. Tipos de Analítica de datos.8
Según Bertolucci (2013) es importante entender que la mayoría de los datos sin procesar, en
particular la Big data, no tienen un valor significativo. Es por esto que es necesario aplicar un
conjunto de herramientas y técnicas para obtener información valiosa.
8 Bertolucci. J. (2013). Big Data Analytics: Descriptive Vs. Predictive Vs. Prescriptive. Recuperado de
https://www.informationweek.com/big-data/big-data-analytics/big-data-analytics-descriptive-vs-predictive-vs-
prescriptive/d/d-id/1113279
16
Lo primero a realizar, en cualquier modelo de Big data, es la recolección de grandes volúmenes
de información los cuales serán analizados para encontrar patrones y más adelante lograr una
predicción en base a estos.
Primer paso: analítica Big Data descriptiva
Es el análisis más básico, ocasionando que sea el más común de usar. Permite una reducción de
los datos en pequeños fragmentos más manejables y concisos para analizar. En si se trata de un
resumen.
Segundo paso: analítica Big Data predictiva
Después de la aplicación de técnicas estadísticas, de modelado, de minería de datos y de
aprendizaje automático para estudiar datos recientes e históricos, otorga predicciones sobre el
futuro, pero cabe aclarar que no son exactas, lo que permite es el planteamiento de un escenario
posible.
Su naturaleza es probabilística.
Tercer paso: analítica Big Data prescriptiva
Es, en cierta parte, un análisis predictivo diferenciándose en que se predicen futuros múltiples
basados en las acciones del responsable de la toma de decisiones. Necesita de un modelo predictivo
con dos componentes adicionales: datos procesables y un sistema de retroalimentación que hace
un seguimiento de los resultados.
17
1.7.7. Web Scraping9.
Como afirma Escuela de Datos (2016) el Web Scraping es una técnica utilizada para extraer
datos de sitios web. Es un proceso automatizado donde una aplicación procesa el HTML de una
página web para extraer datos para su manipulación, como convertir la página web a otro formato
y copiarla en una base de datos local u hoja de cálculo para su posterior recuperación o análisis.
1.7.8. Licitación.
El concepto de licitación pública va ligada al procedimiento administrativo por el cual un
organismo público o privado requiere obras, servicios o adquisión de algún producto, el ejercicio
consiste en sujetarse a las bases de realización del contrato, fijadas en el pliego de condiciones. El
oferente es el encargado de formular propuestas de entre las cuales seleccionara la más
conveniente.
1.7.9. Proceso licitatorio en Colombia10.
Colombia compra eficiente (2018) afirma que esta plataforma pone al servicio de los
compradores y proveedores realizar el proceso de contratación en línea haciendo uso de las
herramientas (SECOP I, SECOP II), donde se garantiza la transparencia y la trazabilidad de los
procesos de contratación
¿QUÉ ES EL SECOP II?
9 Escuela de datos. (2016). Introducción a la extracción de datos de sitios web: scraping. Recuperado de
https://es.schoolofdata.org/introduccion-a-la-extraccion-de-datos-de-sitios-web-scraping/ 10 Colombia compra eficiente. SECOP. Recuperado de https://www.colombiacompra.gov.co/
18
El SECOP II funciona como una plataforma transaccional con cuentas para las Entidades
Estatales y los Proveedores. Cada cuenta tiene unos usuarios asociados a ella. Desde sus cuentas
las Entidades Estatales crean, evalúan y adjudican Procesos de Contratación. Los Proveedores
pueden hacer comentarios a los Documentos del Proceso, presentar ofertas y seguir el proceso de
selección en línea.
Se crea un expediente digital para los proveedores registrados en el SECOP, donde se tiene
aquellos documentos relacionados al proceso de contratación.
Proceso de licitación pública actual:
Estudio sobre oportunidad o conveniencia del contrato
Publicación de avisos. Dentro de los 10 y 20 días anteriores a la apertura.
Elaboración del Pliego de Condiciones
o Objeto
o Regulación jurídica
o Derechos u obligaciones de las partes
o Otros factores de evaluación. Claridad
Apertura de la Licitación o concurso
Audiencia de aclaraciones 3 días después del inicio del plazo de presentación de propuestas
Evaluación y resolución de preguntas.
Adjudicación
Proceso de licitación privada actual:
Estudio sobre oportunidad o conveniencia del contrato
19
Invitación de forma expresa a determinadas empresas y no por anuncio público
Elaboración del Pliego de Condiciones
o Objeto
o Regulación jurídica
o Derechos u obligaciones de las partes
o Otros factores de evaluación. Claridad
Apertura de la Licitación
Audiencia de aclaraciones 3 días después del inicio del plazo de presentación de propuestas
Evaluación y resolución de preguntas.
Adjudicación
1.7.10. Hadoop.
Como definen Reíta Reyes, J. E. y Salinas Hernández, H. J. (2016), Hadoop “es una
infraestructura digital con licencia apache creada bajo código abierto que permite la programación
utilizando java, el propósito de esta tecnología es generar un motor de búsqueda potente y eficaz
haciendo uso de tecnologías inspiradas en google. La importancia de esta estructura radica en que
permite el paralelismo en sus procesos segmentando la información y dividiéndola en n equipos
de cómputo permitiendo así el análisis de Petabytes de datos. De este modo siendo Hadoop uno de
los hilos de Big data es conveniente enunciar de manera detallada su funcionamiento, dicho lo
anterior Hadoop se segmenta en tres partes principales:
Hadoop Distributed File System: Es un sistema distribuido de archivos que provee un acceso
de alto rendimiento a los datos de la aplicación.
Hadoop YARN: Es un Framework para programar tareas y gestionar los recursos del Clúster.
20
Hadoop MapReduce: Es un sistema basado en YARN para procesamiento en paralelo de
grandes conjuntos de datos.
Hadoop Common: Son las utilidades comunes que soportan a los demás módulos Hadoop”
1.7.11. HBase11.
Según Amazon (s.f.) es un almacén de big data distribuida y escalable de forma masiva del
ecosistema de Apache Hadoop. Es una base de datos de código abierto no relacional, está diseñada
para brindar acceso en tiempo real aleatorio y estrictamente uniforme a tablas con miles de
millones de filas y millones de columnas
HBase es un modelo de datos que es similar a Google la gran tabla diseñada para permitir el
rápido acceso aleatorio a enormes cantidades de datos estructurados. Aprovecha la tolerancia a
errores de sistema de archivos de Hadoop (HDFS).
Es una parte del ecosistema Hadoop que proporciona al azar tiempo real acceso de
lectura/escritura a los datos de la Hadoop Sistema de archivos.
Uno puede almacenar los datos de los HDFS, bien directamente o a través HBase. Consumidor
de datos lee y tiene acceso a los datos en forma aleatoria usando HBase HDFS
11 Amazon (s.f.). Apache HBase en Amazon EMR. Recuperado de https://aws.amazon.com/es/emr/details/hbase/
21
1.7.12. Selenium 12.
Como definen Vidal, Palacios y Zambrano. (2013):
Selenium IDE
“Es un entorno de pruebas para aplicaciones basadas en web, Provee herramientas para crear
pruebas sin usar un lenguaje, el uso de este no solo está en automatización de pruebas, ya que usual
mente se puede utilizar para realizar minería de datos, Monitoreo de páginas web con el fin de
detectar cambios, Investigación, o búsqueda de información específica en portales web, entre
otros”
Selenium WebDriver
“Es un entorno de automatización de pruebas que opera a partir de los lenguajes de
programación mencionados en la definición de Selenium. La principal contribución de WebDriver
son los controladores nativos que dan soporte a distintos navegadores (Internet Explorer,
Mozilla Firefox, Google Chrome, Opera y Safari). Debido a que Selenium tiene las
restricciones propias de Javascript (lenguaje con el que está hecho), WebDriver va más allá y
dependiendo del navegador que queramos probar utiliza el mecanismo más apropiado, por
ejemplo en Mozilla Firefox se implementa como una extensión, para Internet Explorer hace
uso de los objetos propios de automatización. Incluso puede hacer uso de las características de los
12Vidal, Palacios y Zambrano. (2013). SELENIUM MANUAL DE INSTALACIÓN Y USO. Recuperado de
https://campusvirtual.univalle.edu.co/moodle/pluginfile.php/486657/mod_folder/content/0/ManualSelenium.pdf?for
cedownload=1
22
navegadores desde el punto de vista del sistema operativo. Gracias a WebDriver ya no es necesario
de un navegador web real para lanzar los test sino que utiliza una aplicación basada en HtmlUnit
para simular el navegador.”
1.7.13. ElasticSearch13.
Según el Instituto de Ingeniería del Conocimiento (IIC, 2016) es una potente herramienta para
la búsqueda entre grandes cantidades de datos, especialmente cuando los datos son de tipo
complejo, es un servidor de búsqueda basado en Lucene. Es distribuido y con capacidad de multi-
tenencia con una interfaz web RESTful, Esta solución se convierte en una excelente solución para
el campo de big data y analítica.
Se utiliza para búsqueda web, análisis de registros y análisis de Big Data. ElasticSearch es la
herramienta más popular porque es fácil de instalar, se amplía a cientos de nodos sin software
adicional, y es fácil de usar debido a su API REST incorporada. A continuación, se encuentra el
resumen de los beneficios clave;
API amigable para desarrolladores.
Análisis en tiempo real.
Facilidad de indexación.
Búsqueda de texto completo.
Grupos resilientes.
13 Instituto de Ingeniería del Conocimiento (IIC, 2016). 7 Herramientas Big Data para tu empresa. Recuperado de
http://www.iic.uam.es/innovacion/herramientas-big-data-para-empresa/
23
1.8. Ciclo Deming14
Como afirma Ana Rojo (2013) las fases del Círculo PDCA o Ciclo de Deming, son: Planificar,
Hacer, Verificar y Actuar.
Ilustración 1 Fases del ciclo Deming. Fuente: Rojo (2018)
Como se observa en la ilustración 1, la teoría se representa de forma habitual por un círculo que
representa la evolución continua del ciclo de Deming. El círculo o la rueda siempre debe estar en
movimiento y cada uno de los pasos alimenta el siguiente, de forma que cada vez sea más sencillo
avanzar y más natural.
14 Rojo, A. El ciclo de Deming o círculo PDCA. Recuperado de https://www.sbqconsultores.es/el-ciclo-de-
deming-o-circulo-pdca/
24
Las fases o acciones son las siguientes:
Planificar (Plan): en esta etapa se planifica los cambios y lo que se pretende alcanzar. Es
el momento de establecer una estrategia en el papel, de valorar los pasos a seguir y de
planificar lo que se debe utilizar para conseguir los fines que se estipulan en este punto.
Hacer (Do): aquí se lleva a cabo lo planeado. Siguiendo lo estipulado en el punto anterior,
se procede a seguir los pasos indicados en el mismo orden y proporción en el que se
encuentran indicados en la fase de planificación.
Verificar (Check): en este paso se debe verificar que se ha actuado de acuerdo a lo
planeado, así como que los efectos del plan son los correctos y se corresponden a lo que
inicialmente se diseñó.
Actuar (Act): a partir de los resultados conseguidos en la fase anterior se procede a
recopilar lo aprendido y a ponerlo en marcha. También suelen aparecer recomendaciones
y observaciones que suelen servir para volver al paso inicial de Planificar y así el círculo
nunca dejará de fluir.
1.9. Factibilidad
1.9.1. Factibilidad operativa.
Este proyecto es factible operativamente ya que se cuenta con los recursos esenciales para el
desarrollo de un ambiente de pruebas que muestre de manera simple el funcionamiento de un
modelo de Big Data aplicado a un caso de uso, referente a la gestión de la información de los
procesos licitatorios en Colombia. El sistema será documentado en cada una de sus partes críticas
para facilitar el entendimiento de los diferentes procesos involucrados y que finalmente muestre
las ventajas de su implementación en un ambiente laboral o académico.
25
1.9.2. Factibilidad técnica.
El proyecto es desarrollado por dos estudiantes de la Universidad Distrital de la Facultad
Tecnológica, los cuales poseen diferentes habilidades y conocimiento en el desarrollo de
programas informáticos que son de utilidad para cada una de las etapas del planteamiento del
modelo. En lo referente a las herramientas tecnológicas se dispone de equipos con diferentes
sistemas operativos tales como distribuciones Linux (Centos y Ubuntu Desktop), Windows y MAC
por lo que se pueden hacer diferentes pruebas de despliegue de los aplicativos en diversos
ambientes. Adicionalmente, la mayoría de los programas que se usan están bajo la licencia de
apache por lo cual se garantiza el acceso libre sin condiciones al ser herramientas Open Source.
1.9.3. Factibilidad económica.
Como se mencionó anteriormente, se cuenta con software libre el cual garantiza en parte la
factibilidad económica del proyecto. Cabe considerar que el activo más valioso será el tiempo de
cada uno de los ejecutores, de los cuales se estima que disponen de 14 horas a la semana, y los
recursos tecnológicos necesarios para el correcto funcionamiento del modelo. A continuación, se
presenta la relación del presupuesto.
26
Tabla 1 Factibilidad Económica del proyecto. Fuente: propia.
1.9.4. Factibilidad Legal.
El proyecto es viable legalmente dado las condiciones expuestas por la licencia de Apache 2.0
para Herramientas libres y la ley 11723 de Colombia dedicada a el software libre.
Licencia Apache 2.0 – Software Libre15
“Concesión de la licencia de derechos de autor. Sujeto a los términos y condiciones de esta
Licencia, cada Contribuidor por este medio se le otorga una licencia de derechos de autor perpetua,
mundial, no exclusiva, sin cargo, irrevocable e irrevocable para reproducir, preparar Trabajos
15 The Apache Foundation. Licencia Apache, Versión 2.0 (2019) Recuperado de
https://www.apache.org/licenses/LICENSE-2.0
Recurso Marzo Abril Mayo Junio Julio Agosto Costo X Mes Costo Total
Ingeniero
156 Horas 56 Horas 56 Horas 56 Horas 56 Horas 56 Horas 5’600.000 $33’600.000
Ingeniero
256 Horas 56 Horas 56 Horas 56 Horas 56 Horas 56 Horas 5’600.000 $33’600.000
Portátil - - - - - - - 2’000.000
Licencia
Servidores
Centos
- - - - - - - $0
Programas
Apache- - - - - - - $0
Internet
Total $11’290.000 $71’400.000
$90.000 $540.000Plan
proveedor™
Plan
proveedor
Plan
proveedor
Plan
proveedor
Plan
proveedor
Presupuesto Estimado
Portátil - - - - - - - $2’000.000
27
Derivados de, exhibir públicamente, realizar públicamente, Haga sub licencia, y distribuya el
Trabajo y los Trabajos Derivados en forma de Fuente u Objeto.
Concesión de licencia de patente. Sujeto a los términos y condiciones de esta Licencia, cada
Contribuidor por este medio se le otorga una licencia de patente perpetua, no exclusiva, gratuita,
exenta de derechos, irrevocable para realizar, usar, ofrecer vender, vender, importar y, de lo
contrario, transferir el Trabajo, cuando dicha licencia se aplique solo a aquellas reclamaciones de
patentes que puedan ser otorgadas por dicho Contribuidor y que sean necesariamente infringidas
por su Contribución solo o por la combinación de su Contribución con la Obra a la que se sometió
dicha Contribución ...”
Referente a la ley de Software Libre en Colombia 11723, la cual está compuesta por 89
artículos, sancionada en 1933 (y todavía vigente), conocida como "Ley de Propiedad Intelectual"
o también como "Ley de Propiedad Científica, Literaria y Artística" se declara lo siguiente:
“El software libre —software de código fuente abierto— es aquel cuyo autor licencia otorgando
las siguientes libertades a sus usuarios:
1. La libertad de ejecutar el programa para cualquier propósito.
2. La libertad de estudiar la manera en que el programa opera y adaptarlo a sus necesidades
particulares.
3. La libertad para redistribuir copias del programa (incluido su código fuente) a quien desee.
4. La libertad de mejorar el programa y distribuir sus mejoras al público bajo las mismas
condiciones del programa original.
28
Es importante resaltar que el software libre no atenta de ninguna manera contra los derechos de
autor y de propiedad intelectual: no tiene nada que ver con la piratería, en tanto que los autores
autorizan explícitamente a los demás a hacer uso de sus creaciones ofreciéndoles las libertades
anteriores.”16
16 Glosario-over-blog.es. Leyes sobre software Libre en Colombia (2010) Recuperado de http://glosario.over-
blog.es/article-leyes-sobre-software-libre-en-colombia-59255157.html
29
2. ANÁLISIS DE LA SITUACIÓN ACTUAL
Este capítulo recopila el proceso de contratación pública en la actualidad, los portales y
herramientas que el gobierno bajo el decreto 4117 de 2011 ha puesto a disposición de la
ciudadanía, entre los cuales se encuentra el portal SECOP I y SECOP II, Adicional a ello se realiza
el primer análisis de la web, para identificar los tipos de datos, accesos necesarios y medios por
los cuales se puede realizar la minería de datos para el presente modelo.
2.1. Proceso actual de gestión de licitaciones en Colombia
El Gobierno de Colombia por medio del Decreto Ley 4170 de noviembre 3 de 2011 reconoce
la necesidad de tener una entidad que se encargue de la gestión y promoción de las licitaciones
públicas por lo cual decide crear Colombia Compra Eficiente.
Esta entidad pone a disposición de los colombianos un sistema de información que permita
generar transacciones en línea, con herramientas tecnológicas que responden las necesidades de
las Entidades Estatales, razón por la cual a través de los años ha estado innovando las plataformas
para que cada vez sea más fácil acceder a la información relacionada con las licitaciones.
Entre las plataformas que nacen de esta entidad, para la gestión de licitaciones, se encuentra el
Sistema Electrónico para la Contratación Pública o más conocido como SECOP.
30
2.1.1. SECOP I.
Según Colombia Compra Eficiente (2019) el SECOP I es una “plataforma en la cual las
entidades que contratan con cargo a recursos públicos publican los Documentos del Proceso. El
SECOP I es una plataforma exclusivamente de publicidad”17. Como se puede observar en la
ilustración 218 el modulo del SECOP I permite realizar consultas para conocer los procesos de
contratación según su número de radicación o fecha de publicación (abiertas en los últimos siete
(7) días). También es posible descargar un histórico del plan de adquisiciones desde el año 2013
hasta la actualidad, lo que permitiría, por ejemplo, realizar un análisis y/o auditora del manejo de
los procesos licitatorios por cada entidad.
Ilustración 2 Colombia Compra Eficiente - Modulo Consulta SECOP I. Fuente: Colombia Compra Eficiente (2019)
17 Colombia Compra Eficiente. (2019). Recuperado de https://www.colombiacompra.gov.co/colombia-
compra/secop.
18 Colombia Compra Eficiente (2019). Recuperado de https://www.colombiacompra.gov.co/proveedores/consulte-
en-el-secop-i
31
2.1.2. SECOP II.
Según Colombia Compra Eficiente (2019) el SECOP I es una “plataforma transaccional para
gestionar en línea todos los Procesos de Contratación, con cuentas para entidades y
proveedores; y vista pública para cualquier tercero interesado en hacer seguimiento a la
contratación pública.”19. Al igual que en el SECOP I, como lo muestra la Ilustración 320, esta
plataforma permite realizar búsquedas de procesos de contratación según los criterios definidos
por cada usuario.
Ilustración 3 Colombia Compra Eficiente - Modulo Consulta SECOP II. Fuente: Colombia Compra Eficiente (2019)
19 Colombia Compra Eficiente. (2019). Recuperado de https://www.colombiacompra.gov.co/colombia-
compra/secop.
20 Colombia Compra Eficiente (2019). Recuperado de https://www.colombiacompra.gov.co/secop/consulte-en-el-
secop-ii
32
Diariamente se publican miles de procesos licitatorios los cuales poseen información tal como
la entidad estatal, descripción, fase actual, fechas de publicación, documentación en diferentes
formatos (PDF, EXCEL, MP3, AUTOCAD, PNG, TIFF, POWER POINT y ASF), información
presupuestal y muchas cosas más, por lo que el flujo de información crece exponencialmente.
Todos estos datos pueden llegar a ser enriquecedores para cualquier tipo de análisis, es por esto
que la Big Data entra como un gran protagónico y también como un punto de apoyo u opción para
la identificación de oportunidades de mejora.
2.2. Procedimiento para la captura de datos
Hablar de Big Data se entiende como grandes volúmenes de información, para el desarrollo del
siguiente modelo, se requiere hacer una aproximación a estas grandes cantidades de datos, por ello
es necesario hacer uso de herramientas, que permiten capturar los procesos de contratación de
portales de Licitación pública, para ello se realiza la minería de datos por medio de Web Scraping,
una vez identificada la información de interés, se procede a capturar el token o credencial de acceso
que provee el mismo portal. Por tal motivo se hace uso de la herramienta de automatización de
pruebas Selenium, para realizar por medio de Click Stream la obtención del mismo.
A continuación, se muestra la forma de ver dicho token.
2.2.1. Registro y obtención de Token.
Inicialmente es necesario estar registrado en SECOP este registro se puede realizar en la
siguiente dirección:
https://community.secop.gov.co/STS/Users/Login/Index
33
Usuario: Luisk262
Contraseña: Secop2/CO2
Una vez en plataforma es necesario dirigirse al menú y buscar el botón “Buscar por proceso”
allí se encuentra la información de nuestro interés
Ilustración 4 Búsqueda de proceso SECOP. Fuente propia
Se debe analizar el funcionamiento de esta página para lo cual es necesario concentrarse en el
botón “ver más” el cual se debe inspeccionar con el navegador:
Ilustración 5 Botón "ver más" búsqueda procesos SECOP. Fuente propia
34
Al analizar el botón se ve un token identificado con la variable mkey
Ilustración 6 Token botón búsqueda de procesos SECOP. Fuente propia
Para obtener esta variable se utiliza Selenium el cual simula la interacción de un usuario hasta
llegar a esta página, como lo se mostró anterior mente y saca este parámetro para luego ser
utilizado.
2.2.2. Simulación peticiones HTTP.
La segunda herramienta que se utiliza es una herramienta comúnmente conocida como
rastreador (Crawler) con ella se simula la petición que realiza el botón “ver más” anterior mente
mencionado.
Para realizar la petición se debe conocer el mKey, y asignar un startidx (Inicio de índice)
variable entera que identifica el inicio de un segmento de la base de datos y un endidx (final de
índice) variable entera que identifica el fin del segmento de la base de datos, para realizar una
prueba inicial, he identificar si los valores enviados son correctos se puede hacer uso de una
herramienta que permite realizar envió de peticiones HTTP REST como Postman.
Ilustración 7 Solicitud POST con mKey botón procesos SECOP. Fuente propia
35
Ilustración 8 Solicitud POST índices y número de página botón procesos SECOP. Fuente propia
Si él envió es el adecuado y con status 200, Postman debe retornar el contenido en formato
HTML de 5 procesos de contratación como se muestra a continuación
Ilustración 9 Respuesta HTTP POSTMAN búsqueda de procesos SECOP. Fuente Propia
Una vez probado se procede a realizar el mismo proceso a través de Crawler el cual debe
retornar el mismo resultado.
36
En síntesis, las plataformas que dispone Colombia Compra Eficiente para la publicación y
gestión de las licitaciones, es un buen punto de partida para obtener datos que sean útiles en las
pruebas del modelo. Así mismo, gracias a las técnicas de análisis Web con herramientas como
Selenium, se abre la posibilidad de contar con información de los procesos como lo es el nombre
de la entidad estatal solicitante, descripción de la licitación, fase actual, fechas de publicación,
entre otros, para finalmente con toda esta data que se capture de las herramientas de gestión
SECOP I y SECOP II sea tratada en un modelo Hadoop Big Data para posteriormente obtener
resultados a partir de un análisis de la información recolectada.
37
3. IDENTIFICACIÓN Y CONFIGURACIÓN DE HERRAMIENTAS
TECNOLÓGICAS BIG DATA
En este capítulo se definen algunos productos que podemos utilizar en Big data, como lo son
Apache Hadoop, Apache Hive, Cloudera Hue, adicional a ello se muestra el paso a paso para la
configuración de apache Hadoop, con sus respectivos nodos que conforman en última instancia el
Cluster.
Así mismo se introducirá la función de los elementos que conforman el modelo iniciando con
HDFS, encargado del almacenamiento de ficheros de forma distribuida; YARN, encargado de
gestionar los recursos del Clúster cuya configuración encontrara en el presente capitulo y Hive
como último elemento, el cual permite trabajar con el Clúster como si se trabajara con una base de
datos SQL.
Ilustración 10 Estructura Clúster Hadoop – Licitaciones. Fuente propia
38
3.1. Identificación de herramientas para trabajar con Big Data
Según Cloudera (2019), Big data incluye muchos productos asociados, en su mayoría del
proyecto Apache, que facilitan la configuración y gestión de los diferentes elementos de un sistema
tipo Cluster.21
Soluciones como Hortonworks, permiten la descarga de productos, como por ejemplo
Hortonworks Sandox, las cuales traen montado un entorno para trabajar con Hadoop con una
configuración inicial avanzada, algunas son open source bajo los términos y condiciones de la
compañía.
Como se encuentra en la documentación de Hortonworks SandBox22, esta solución incluye:
Apache Hadoop: Es un entorno distribuido de Datos y Procesos, es un sistema de tipo
Clúster que ofrece escalabilidad.
Hadoop implementa procesamiento en paralelo a través de múltiples nodos de datos en un
sistema de ficheros distribuidos. Usa varios componentes:
Hadoop Common
MapReduce
HDFS (Hadoop Distributed File System)
21 Cloudera. (2019). Cloudera Documentation. Recuperado de https://docs.hortonworks.com/
22 Cloudera (2019). Development with Hadoop. Recuperado de https://es.hortonworks.com/tutorials/
39
Apache Spark: Motor muy eficiente de procesamiento de datos a gran escala, maneja
procesamiento en tiempo real. Trabaja de forma masiva en memoria. Adicionalmente
puede funcionar Stand-Alone.
Apache Hive: Ver nuestro Hadoop como si fuera una base de datos normal, permite hacer
consultar al estilo “SELECT * FROM” (Usa MapReduce – procesos tipo Batch - por
debajo) lo que simplifica el desarrollo.
Apache HBase: Se puede decir que es la base de datos por defecto de Hadoop. Es de tipo
multi columna. Está preparada para trabajar con Hadoop por lo cual es distribuida y
escalable a su vez que permite gestionar grandes cantidades de información.
El mayor problema con la solución que ofrece HortonWorks es que los recursos para correr
su ambiente virtual son bastante altos, por ejemplo, como mínimo se debe contar con 10GB de
RAM dedicadas y 4 núcleos de procesamiento por cada nodo por lo cual excede el alcance del
proyecto.
Por lo anterior se realiza la instalación en limpio de Hadoop y los productos asociados. En
cuanto a la virtualización, cabe resaltar que se puede trabajar con Virtual Box, VMware o Docker.
Para el desarrollo del proyecto se hace uso de:
Docker
Sistema Operativo Centos 7
Apache Hadoop versión 3.2.0
40
Hive versión 3.1.1
Microsoft® Hive ODBC Driver version 2.1.16
Lenguaje de programación Php 7.1
Framework Php Laravel versión 5
Para el desarrollo del proyecto se plantea disponer de tres Nodos de Hadoop, uno maestro y
dos esclavos, para aumentar el procesamiento de datos.
3.2. Configuración inicial Hadoop
En primer lugar, se instala Hadoop desde el descargable.tar.gz 23
Enseguida es necesario instalar el JDK Java ya que para la ejecución de aplicaciones se usa el
compilador de java y adicionalmente se deben configurar las variables de entorno
HADOOP_HOME, JAVA_HOME.
A continuación, otro paso importante en la configuración es el SSH (shh-keygen)
En caso de tener un Clúster con 3 nodos Hadoop, con comandos SSH es la forma en que el
Nodo maestro se comunica entre los demás nodos del Clúster.
Se tiene que pasar la clave pública entre los nodos. (authorized_keys => donde van a estar todas
las claves)
23 Apache org. Dowload Hadoop. Recuperado de https://hadoop.apache.org/releases.html
41
Hadoop ejecuta los comandos SSH razón por la cual debe ser configurada, observando la figura
2 se tiene un concepto un poco reducido de cómo es la estructura del Clúster.
3.2.1. Montaje primer nodo de Hadoop.
3.2.1.1. Configuración HDFS - DATOS
Fichero core-site.xml
Contiene una serie de propiedades, entre las cuales se encuentra la configuración del sistema de
ficheros que se van a usar con Hadoop, el cual es HDFS por defecto y además se indica el puerto
por el cual se va acceder.
Fichero hdfs-site.xml
Por defecto la replicación de datos de Hadoop es de 3 nodos, por lo cual se va a configurar
inicial mente un primer nodo sin replicación debido a que se está trabajando en principio con
un solo nodo.
Después se define dónde va estar el nodo maestro, el cual solo tiene metadatos, por tanto,
con esta propiedad se configura el fichero donde se guardarán.
Por último, se le dice al sistema en que fichero se deben guardar los datos “reales” de los
Nodos esclavos.
Preparación sistema de ficheros HDFS
Se establece el sistema de ficheros con los metadatos que se van a trabajar
Arrancar HDFS
Con el comando start.dfs.sh inician 3 procesos (Namenode, Datanote, secondarynamenode)
encargado de la gestión de los datos.
42
Función de metadatos
HDFS dispone de ficheros que gestionan los cambios del Clúster
Edits: Cambios que se van produciendo en la base de datos del HDFS.
Edits_inprogress: Donde se están escribiendo los datos en memoria y se sincronizar con el
proceso secondarynamenode
Fsimage: una imagen del momento actual del estado del HDFS.
Cuando tengo un fichero digamos de 5gb, el sistema HDFS lo va separar en bloques de 128 Mb
entre los nodos
Ilustración 11 Administrador Web: 9870 – vista de configuración del directorio del HDFS. Fuente propia.
3.2.2. Configuración MapReduce V2 – YARN – PROCESOS.
Otro elemento importante dentro del ambiente de Hadoop es el YARN (Yet Another Resource
Negotatior). Es el encargado de gestionar los recursos del Cluster, ofreciendo un mejor
43
rendimiento en la ejecución de consultas y tolerancia a fallos. Como se puede apreciar en la
Ilustración 1224, junto con HDFS conforman la base de las demás soluciones como Hive,
MapReduce y los demás.
Ilustración 12 Arquitectura Hadoop MapReduce. Fuente: Packt (2015)
YARN: Gestor completo de recursos del Clúster
Involucra los siguientes procesos:
En el nodo maestro, el ResourceManager, cuya función es comunicarse con los nodos esclavos
a través del proceso NodeManager para la generación de trabajos generados de las diferentes
aplicaciones que realizan consultas al HDFS.
Las propiedades configurables para el inicio del Cluster, se definen en los ficheros:
24 Packt (2015). Hadoop and MapReduce. Recuperado de https://hub.packtpub.com/hadoop-and-mapreduce/
44
Fichero mapred-site.xml
Se configura la propiedad donde se indica que el motor de gestión de procesos Hadoop va ser
de tipo Yarn. Suele ser el motor más usado pero también puede llegar a complementarse con
soluciones como Apache Spark.
Fichero yarn-site.xml
Se configura tres propiedades: Nombre de la maquina donde se encuentra el gestor del Yarn
(ResourceManager), los servicios auxiliares que gestionan Yarn indicando las clases (Shuffle) y
por último la ruta de las librerías.
Administración Web nodo1:8088, si ingresamos a esta url dentro del navegador obtendremos
la respuesta que se observa en la Ilustración 13, Aquí se presentará una serie de tablas que permiten
saber que ocurre actualmente con los recursos y procesos del Cluster.
Ilustración 13 Administrador Web de los procesos de los Nodos. Fuente propia.
MAPREDUCE: Es un algoritmo de tipo batch (consultas) de procesamiento de datos en
paralelo que trabaja en conjunto con YARN; a partir de la generación de un Job o trabajo este
algoritmo define:
45
Procesos Mapper: Procesan en local un bloque de datos que será almacenado en HDFS.
Shuffle y Sort: Ordena o agrupa los datos cuando termina los procesos Mapper, con el fin
de tener una pista de la distribución de bloques del fichero.
Reducer: Se procesa los datos y se almacena finalmente en los nodos, según el nivel de
replicación definido.
3.3. Configuración de ficheros para montar el Clúster
Aquí es importante considerar que para que los diferentes nodos Slaves o Workers de Hadoop
se entiendan y se conozcan entre sí, es necesario que:
a. El usuario debe ser el mismo en todos los nodos
b. Adicionalmente se debe poder acceder a ellos a través de ssh sin contraseña (paso
anterior fichero authorized_keys)
c. Tener los mismos directorios en cada Nodo
d. Haber copiado el software Hadoop en todos los nodos y en el mismo sitio
e. Directorio de datos (DataNode) en todos los nodos Workers y haberle dado el permiso
correspondiente
Ahora, inicialmente se deben configurar dos Nodos Workers, para ello se identifica el fichero
hdfs-site.xml, que se encuentra en la ruta /etc/hadoop/, el nivel de replicación:
46
Ilustración 14 Configuración Clúster - Fichero hdfs-site.xml. Fuente propia.
Se deja solo la carpeta /datos/datanode en los Nodos Workers y la carpeta /datos/namenode en
el Nodo Maestro
Finalmente, para terminar la configuración de ficheros del Clúster, es necesario dirigirse a la
ruta de configuración de ficheros de Hadoop y editar el archivo llamado “workers” indicándole el
hostname de los nodos Workers
A continuación, se procede a darle formato al directorio Namenode, resultando en la creación
de un directorio current, en donde van a estar los metadatos del HDFS de Hadoop.
Ilustración 15 Configuración Clúster - Metadatos directorio Current Namenode. Fuente propia.
Con los siguientes comandos se inician los servicios de HDFS y YARN en el Nodo Maestro:
hdfs --daemon start namenode
hdfs –daemon start secondarynamenode
47
yarn –daemon start resourcemanager
mapred –daemon start historyserver
Los comandos para iniciar los servicios HDFS y YARN en los Nodos Workers son:
hdfs –daemon start datanode
yarn –daemon start nodemanager
Para verificar lo anterior, es necesario ir a la ventana de administración WEB en el puerto 9870
allí encontrara los dos nodos esclavos Hadoop activos, para el sistema de ficheros HDFS
Ilustración 16 Web Administración Hadoop - Nodos esclavos activos. Fuente propia
Y en la misma ventana de administración WEB, en el puerto 8088, se verá activo el servicio
YARN en los nodos esclavos.
Ilustración 17 Administración Web Hadoop - Nodos esclavos YARN. Fuente propia
48
3.4. Despliegue contenedores Docker
Docker brinda una solución a los problemas de rendimiento, ya que se instala solo lo necesario
y a partir de una imagen se pueden desplegar diversos contenedores lo cual facilita la
implementación y despliegue de la solución.
La configuración se hace a partir de un Dockerfile, en donde se tiene lo siguiente:
Primero todo lo relacionado con la distribución Linux, donde se llama por medio del FROM a
la imagen oficial de Docker de Centos en su versión 7, posteriormente se le indica que todos los
comandos serán ejecutados bajo el USER root y finalmente se hace la instalación de paquetes y
dependencia necesarias para el correcto funcionamiento del Clúster. El ssh es esencial para la
ejecución de los procesos de Hadoop.
Ilustración 18 Dockerfile - Configuración Sistema Operativo Centos 7. Fuente propia
Se continúa con la configuración de HADOOP:
49
Se debe descargar el paquete por http que dispone apache org, posteriormente la instalación del
JDK de java en su versión 8 (No es recomendable trabajar con la versión 11 ya que genera
inconvenientes de compatibilidad y errores al iniciar los procesos java de Hadoop).
Seguido de esto se ubican los archivos de Hadoop en la ruta /opt/ y se crean los directorios
necesarios para HDFS (Datanode en los Workers y Namenode en el Master).
Ilustración 19 Dockerfile - Configuración Hadoop – Java. Fuente Propia.
Ahora es necesario declarar las variables de entorno en el sistema para que los comandos de
Hadoop sean reconocidos. También se debe exponer los puertos que usa Hadoop por defecto
tanto para los datos (HDFS) como para los procesos (YARN).
50
Ilustración 20 Dockerfile - Configuración Hadoop variables entorno y puertos. Fuente: propia
Lo único que es necesario cambiar con respecto al Dockerfile para los nodos Workers es la
creación de la carpeta Datanode en lugar de la Namenode y la ejecución de los respectivos procesos
para iniciar HDFS y YARN.
3.5. Configuración de HIVE
Como se hizo con Hadoop, se procede a ir a la página de apache HIVE para descargar
http://www.apache.org/dyn/closer.cgi/hive/ el archivo tar.gz del mirror disponible para descargar
por http
En principio se debe hacer una solicitud wget desde el servidor Centos y posteriormente
descomprimir los archivos en la carpeta opt, con el nombre Hive.
Si se inspecciona la ruta /opt/ se veran las carpetas de Hadoop y Hive
51
Ilustración 21 Hadoop - Ubicación directorios Hadoop y Hive. Fuente: propia.
Ahora es necesario declarar las variables de entorno en el Dockerfile, quedando de la siguiente
manera:
Ilustración 22 Dockerfile - Configuración Hive variables de entorno. Fuente: propia.
Con esto se garantiza la posibilidad de usar las sentencias de Hive, Hadoop y Java
Ahora se debe ir al directorio /opt/hive/conf/ y copiar ciertos archivos con otros nombres
Ilustración 23 Hive - Ficheros de configuración hiveserver2. Fuente propia.
El primer archivo que copia es el beeline-log4j2.properties.template y se renombra de la
siguiente manera beeline-log4j2.properties, adicionalmente el hive-default.xml.template de igual
52
forma se renombra asi hive-site.xml, otra copia que debe hacer es el hive-exec-log4j2.properties
y finalmente el hive-env.sh que es donde se almacenará la ruta de las variables de entorno de Hive.
Ahora se deben exponer los puertos 10000 y 9083 que es donde se publica el servidor de Hive.
En la terminal se procede a crear, las carpetas por defecto sobre las que trabaja Hive en HDFS;
es importante que tengan el mismo nombre y además brindarle los permisos correspondientes:
Ilustración 24 Hive - Creación carpetas por default en HDFS. Fuente propia.
Por último se debe crear en /opt/hive/ una carpeta con el nombre bbdd que es donde inicializa
la base de datos con el comando schematool –dbType, esta base de datos en principio será de tipo
derby, por lo que finalmente se guardara un fichero con el nombre ejemplo.db
Una vez echo todo esto, solo se debe ejecutar el servidor hiveserver2, expuesto en el puerto
10000. Ahora, si procede a ejecutar el comando jps, veremos los procesos activos, el
correspondiente al hiveserver2 es el RunJar
53
Tabla 2 Procesos activos Nodo Maestro - HIVE. Fuente: propia.
Teniendo esto, ya se puede realizar la conexión por medio del cliente OBDC desde PHP y crear
la base de datos, con sus tablas y campos correspondientes para cargar los datos como si se tratará
de una base de datos SQL normal.
La configuración del Dockerfile para Hive quedaría de la siguiente manera:
Ilustración 25 Dockerfile - Configuración final Hive. Fuente propia.
Número de
procesoProceso Comentario
441 ResourceManagerGestor de recursos del
Cluster
137SecondaryNameN
ode
Sincronizador de metadata
y datos en HDFS
1065 JobHistoryServerEncargado del registro de
ejecución de cada Job
77 NameNode
Ubicación de la metadata
relacionada con la
configuración del HDFS
2111 JPSHerramienta Java para
listado de procesos activos
671 RunJar Proceso HiveServer2
54
Nota: La configuración de los ficheros tanto de HDFS, YARN y HIVE se puede encontrar
en los anexos o en el enlace del repositorio de Github.
55
4. MODELO DE BIG DATA
En el desarrollo de este capítulo se presenta en detalle el modelo de Big Data propuesto para la
gestión de procesos licitatorios en Colombia. Se explican los elementos que conforman este
sistema para así comprender su función y la importancia de su correcta configuración.
Adicionalmente, se mencionan los protocolos y puertos usados por cada uno de los servicios con
el fin de tener un panorama en cuanto a la parte de seguridad en la red donde se despliega el
modelo.
Con respecto a los elementos principales del modelo, se muestra la arquitectura, su función,
como los elementos son usados en el modelo propuesto y como se pueden llegar a complementar.
Así mismo se hace la respectiva introducción a una herramienta, capaz de integrar en una sola
plataforma los servicios que interactúan en este sistema distribuido, con el fin de facilitar y apoyar
la gestión de lo que es el Cluster de Hadoop.
A continuación, se comienza con el diagrama del modelo propuesto en donde se puede
evidenciar el flujo del procesamiento de datos bajo lo que es Big Data con Hadoop. Es importante
aclarar que la cantidad de nodos trabajadores o esclavos en un ambiente real puede llegar a un
número inclusive mayor que cinco mil y a su vez no solo se puede contar con un nodo maestro,
pero finalmente la configuración y comunicación entre ellos no varía demasiado con respecto a lo
estipulado en este documento.
56
4.1. Diagrama del modelo propuesto
A continuación, se presenta el diagrama del modelo propuesto de Big Data con base en las
soluciones de Apache Hadoop. Se detallan los elementos que forman parte de este ambiente,
identificando las entradas, proceso y salidas.
Por otra parte, se realiza una introducción a la función de cada uno de los componentes
involucrados, los cuales son explicados en más detalle en este capítulo, para así entender la relación
entre cada uno y la importancia de su correcta configuración.
57
Ilustración 26 Modelo Big Data. Fuente propia.
58
4.2. Descripción del modelo
Es evidente que un modelo de Big Data se compone de varios elementos distribuidos que
desempeñan un papel fundamental al momento de la ejecución de los procesos y la transformación
de los datos. Es esencial comprender cuales son las partes involucradas y que es lo que hace cada
una de ellas para así llegar a enfocar y optimizar lo mejor posible la solución a la cual se quiere
llegar con los recursos disponibles.
Como lo muestra la Ilustración 26, la base o el núcleo del modelo se sitúa en el Nodo Maestro
(considerando que puede existir más de un nodo maestro), encargado de la administración de los
datos y asignación de procesos. Adicionalmente es donde se establecen las configuraciones para
las otras soluciones de apache compatibles para trabajar con Hadoop tales como Hive, HUE, Spark,
entre muchos otros. Por otro lado, pero no menos importante, se encuentran los nodos esclavos o
trabajadores los cuales en un ambiente real de producción pueden llegar a ser más de cinco mil
(5000), considerando que como es de tipo Clúster garantizando la escalabilidad y son los que en
última instancia gracias a su trabajo distribuido agilizan enormemente grandes procesos.
Otro aspecto vital en la construcción de cualquier modelo enfocado al análisis de datos con Big
data es la extracción de los datos, tanto para ser cargados al sistema distribuido como también para
generar valor a partir de su procesamiento. Recordando las 5 v, relacionadas con el concepto de
Big data (Volumen, Velocidad, Variedad, Veracidad y Valor) uno de las cosas que se torna más
importante cuando se trabaja con un modelo de este tipo es que los datos pueden llegar a ser
estructurados, o no estructurados lo que facilita trabajar con cosas como es el seguimiento del
usuario:
59
Interacción del usuario con el sistema
Parámetros capturados en la interacción
Archivos de cualquier tipo (Logs, imágenes, texto, hojas de cálculo, etc.)
Datos como ubicación geográfica, tiempo de conversación
La forma en que se insertan ficheros de Hadoop es con programas de Java pero existen
herramientas que facilitan el desarrollo y uso tales como Hive
Finalmente, lo que garantiza montar un modelo de Big data es tener:
Escalabilidad: En la forma en que se puede aumentar de manera sencilla los nodos
encargados de la ejecución de los procesos y guardado de los datos.
Alta disponibilidad: Garantizando siempre la ejecución de las tareas, aunque se
presenten caídas o errores en algunos de los nodos. Con esto podemos ofrecer servicios
con un porcentaje de disponibilidad de casi 99.9 %.
4.3. Detalle de los elementos del modelo
Existen dos conceptos fundamentales dentro de la arquitectura de un modelo de Big Data con
Hadoop, estos son el sistema distribuido de ficheros y el Otro negociador de recursos. En conjunto
generan un ambiente distribuido donde cada nodo involucrado tiene una función específica en el
sistema, es por esto que comprender el detalle de cada uno es fundamental.
60
4.3.1. HDFS – Hadoop Distributed File System
4.3.1.1. ¿Para qué sirve?
El HDFS básicamente es un sistema de almacenamiento que además de ser tolerante a fallos
que permite guardar gran cantidad de datos, garantiza escalabilidad y disponibilidad de los datos.
Su función es sencilla pero muy útil lo cual permite sacarle provecho de muchas formas.
Con el HDFS puede almacenar cualquier tipo de información de modo que, sin importar su
tamaño en disco, se garantiza su replicación a través de cada nodo del Clúster. Así mismo,
trabajando con este ambiente se tiene la capacidad de hacer recuperación de datos, en caso de algún
fallo de hardware, de una forma más sencilla y además de manipularla de una manera más eficaz.
4.3.1.2. Arquitectura.
El sistema distribuido de ficheros de Hadoop, como se puede observar en la ilustración 27,
cuenta con dos grandes elementos el Namenode y los DataNode, estos trabajando en conjunto
dividen los ficheros en bloques (de 128 Mb) y generan copias (según lo establecido por las
configuraciones propias) a través de los nodos.
61
Ilustración 27 Arquitectura HDFS: Fuente Apache (2019)
Por buenas prácticas, la replicación de los datos se establece en un nivel 3, es decir, cada bloque
se guardará en tres de los Nodos Esclavos del Clúster. En caso de requerir más duplicidad de los
datos por cualquier motivo se debe considerar el espacio en disco que todas estas copias pueden
ocupar.
La función del Namenode es almacenar la meta data, la cual es información sobre:
¿Cómo es el Clúster?
¿Cuáles son los Esclavos?
Enrutamiento de los Nodos.
Es importante recordar que para inicializar el namenode, después de haber configurado los
ficheros correspondientes, se debe ejecutar el comando:
hdfs namenode -format
62
Al finalizar correctamente este comando se puede observar un directorio current en el directorio
/datos/namenode:
Ilustración 28 Archivos directorio Current Namenode. Fuente propia.
Y detallando los ficheros que se van guardando a través de la interacción con el HDFS se puede
ver que se encuentran varios EDITS y FSIMAGE, encargados de gestionar los cambios que se
producen en el Clúster:
Ilustración 29 Flujo de ficheros metadatos HDFS Namenode. Fuente propia
De acuerdo a la ilustración, los edits son los cambios que se generan en el HDFS, el edit in
progress es donde se están guardando los datos en el momento y finalmente el Fsimage es una
63
captura de un momento concreto del estado de HDFS. El fsimage y los edits se cargan en memoria
mientras el edits en progress guarda la información.
Todo el proceso anterior es automático, y es gestionado por el proceso Secondarynamenode,
por lo cual no se debe y tampoco es necesario interactuar directamente con todo esto.
Por otro lado, en los Datanodes es donde se almacena los bloques generados a partir de los
archivos que se cargan al sistema, allí de igual formar se genera una estructura de directorios y
archivos a partir de un directorio current.
4.3.1.3. ¿Cómo es usado en el modelo?
Por medio de la configuración establecida en el apartado anterior se define un Nodo Maestro el
cual administra a los nodos Workers y establece un nivel de replicación de 2, además, el tamaño
de los bloques que se generan, a partir del guardado de ´cualquier tipo de información, es de 128
Mb.
En cuanto a los ficheros que se establecen allí por medio de los comandos hdfs dfs son los
siguientes:
tmp Donde se guardará logs relacionados con la ejecución de los procesos de HIVE, YARN
y HUE. Gracias a esto se puede en algún punto llegar a depurar los errores que se van dando en el
transcurso de la ejecución de los diferentes procesos involucrados.
User/Hive/Warehouse Aquí es donde se guarda toda la información insertada a la bases de
datos, en este caso la del SECOP, se tiene también las diferentes tablas creadas y los bloques
guardados a través de los nodos del Clúster
64
Ilustración 30 Directorio de la tabla procesos Base de Datos SECOP. Fuente propia
Dando un vistazo de la interacción generada a partir de las pruebas del modelo, se puede
evidenciar la carga de la información en la tabla de procesos en forma de archivos, replicados en
dos nodos del Clúster en forma de bloques.
Si se observa el detalle de cualquiera de estos archivos se obtiene información de donde se
encuentra disponible cada uno de los bloques.
Ilustración 31 Detalle bloque generado archivo SECOP. Fuente propia
65
4.3.1.4. ¿Qué más se puede hacer con él?
Snapshot: Los Snapshot son una copia instantánea de un fichero en un momento determinado.
En caso de requerirse es posible sacar snapshots de la información, esto con el objeto de recuperar
algún elemento que haya sido borrado accidentalmente o que se encuentre corrupto. Todo esto se
resume en tres aspectos importantes que cualquier administrador de un sistema HDFS debe
considerar:
Backups
Recuperación
Histórico
Para hacer uso de esta propiedad del HDFS hacemos lo siguiente:
a. Ejecutar el comando para activar el snapshot de la base de datos:
hdfs dfsadmin –allowSnapshot /user/hive/warehouse/secop.db
b. Ir a la ruta del bloque generado a partir del archivo, haciendo uso de la terminal, en
los directorios datanode, para esto se hace uso del comando fsck del HDFS junto
con los flags –blocks –locations -files
hdfs fsck /user/hive/warehouse/secop.db/procesos/000000_0_copy_10 -blocks -
locations -files
c. Se genera el snapshot con el comando
Hdfs dfs –createSnapshot /user/hive/warehouse/secop.db snapsecop
66
d. Observar el fichero con el comando dfs –ls
hdfs dfs -ls /user/hive/warehouse/secop.db/.snapshot/snapsecop
e. En caso de requerirse copiar el snapshot, simplemente se ejecuta el siguiente
comando:
hdfs dfs –cp /user/hive/warehouse/secop.db/.snapshot/snapsecop/procesos
4.3.1.5. ¿Cómo más se puede complementar?
Por medio de la configuración REST API para el WebHDFS se puede acceder a la data con
herramientas como HUE, esto llega a facilitar el manejo y administración de la información en el
sistema. Cuenta tanto con su autenticación, usuarios Proxy, el Cross Site Request Forgery
Prevention lo que en última medida busca garantizar la seguridad y la integridad de los datos.
Ilustración 32 Administración HDFS desde HUE. Fuente propia.
67
Como se evidencia en la ilustración, gracias a HUE se puede ver el detalle de cada fichero
cargado al HDFS. En instancia es similar al Browser de la administración web del hdfs al cual se
accede desde el puerto 9870 pero este permite ver la información guardada en el bloque de
información.
4.3.2. YARN – Yet Another Resource Negotiator
4.3.2.1. ¿Para qué sirve?
El Otro Negociados de Recursos, YARN por sus siglas en inglés, es aquel que se encarga de la
gestión de los recursos dentro de la arquitectura del modelo. En principio el servicio, ejecutado
desde el Nodo maestro, encargado de hacer el despliegue para la ejecución de las actividades se
llama Resourcemanager, este se comunica con los servicios Nodemanager del lado de los nodos
esclavos para así optimizar el tiempo de ejecución de tareas y utilización de recursos del Clúster.
4.3.2.2. Arquitectura
Como se observa en la ilustración 33, la arquitectura de YARN se centra en el
ResourceManager.
68
Ilustración 33 Esquema MAPREDUCE - YARN. Fuente: Apache (2019)
En principio, existe la solicitud de un cliente, ya sea por la ejecución de una consulta SQL desde
HIVE u cualquier otro programa que quiera interactuar con el HDFS de Hadoop.
El resourcemanager gestiona los recursos del Clúster, por lo cual define en cuales nodos se va
a ejecutar la aplicación y que trabajos (Jobs) se van a ejecutar en cada uno de ellos.
El nodemanager gestiona los recursos de cada nodo. El App Master gestiona los recursos que
necesita la aplicación, este además ejecuta contenedores que finalmente optimizar la ejecución de
procesos.
4.3.2.3. ¿Cómo es usado en el modelo?
Inicialmente se establece la propiedad donde se indica que el motor de gestión de procesos
Hadoop va ser de tipo Yarn (Mapreduce V2). Cabe aclarar que la versión 1 de Mapreduce está
inmersa en una parte de lo que conforma YARN.
69
Adicionalmente se configuran tres propiedades las cuales indican el nombre de la maquina
donde se encuentra el gestor del Yarn (ResourceManager), los servicios auxiliares que van a
gestionar Yarn indicando las clases (Shuffle) y por último la ruta de las librerías.
Configurando lo anterior se tiene un sistema distribuido encargado de ejecutar las diferentes
aplicaciones, como por ejemplo las de tipo Mapreduce, Spark, entre otras.
Ilustración 34 Detalles de aplicaciones ejecutadas en el modelo. Fuente propia.
4.3.2.4. ¿Cómo se puede complementar?
Por medio del servicio de history server de MapReduce, se logra un seguimiento de cada trabajo
lanzado y gestionado por el ResoruceManager y los Nodemanager. Esto se aprecia en detalle por
medio de la administración web en la dirección del nodo maestro y sobre el puerto 8088.
70
Ilustración 35 Jobs generados a partir de la ejecución de aplicaciones MapReduce. Fuente propia
Aquí se tiene el nombre asignado a los Jobs que como se puede apreciar son las consultas SQL
ejecutadas al HiveServer2 desde cualquiera de los métodos de conexión disponibles, tratados en
el siguiente título.
Cabe resaltar que también se puede tener información detallada de cada una de las tareas, como
por ejemplo el número de intentos, su estatus y tiempo de ejecución.
Ilustración 36 Detalle de las tareas generadas por los Jobs. Fuente propia.
71
4.3.3. HIVE
4.3.3.1. Modos de ejecución de HIVE:
Hive CLI: Es una instancia del servicio de Hive. Trabaja localmente y permite solo una conexión
concurrente, lo cual no es muy útil en un ambiente laboral pero que permite hacer unas pruebas
iniciales para iniciar con los comandos hiveSQL. La forma de iniciar este servicio es por medio de
la palabra Hive en el nodo donde se encuentre instalado.
Hiveserver2: El servidor Hive permite la conexión a sus recursos por medio de un servicio
Thrift, el cual es un protocolo de comunicación binaria utilizado para crear servicios en varios
tipos de lenguajes.
Su conexión funciona por los puertos 10000 y 10001. Es necesario también indicar el tipo de
conexión, en el caso del proyecto se tiene desactivado los acuerdos de nivel de servicio (noSLA)
lo cual es importante considerar ya que en caso de solicitar una conexión por cualquier otro método
el resultado no será satisfactorio.
4.3.3.2. Tipos de Datos (Schema) de HIVE.
En la siguiente tabla se puede observar los tipos de datos con los cuales se puede definir un
modelo de base de datos en HIVE, no obstante recordando que no solo estos tipos de datos pueden
llegar a ser insertados en HDFS a través de HIVE, ya que es posible la carga de datos tanto
estructurados como semi o no estructurados.
72
Tabla 3 Tipos de datos HIVE. Fuente: propia.
4.3.3.3. Como se accede al Hiveserver2.
Para acceder a ellos se puede por medio de Beeline, el JDBC o el OBDC.
Tipo de
DatosCategoria Valor
Integers TINYINT Entero de 1 byte
SMALLINT Entero de 2 bytes
INT Entero de 4 bytes
BIGINT Entero de 8 bytes
Boolean BOOLEAN TRUE/FALSE
Floating FLOAT Precisión simple
DOUBLE Doble precisión
Fixed DECIMALValor de punto fijo de escala y precisión definidas por el
usuario
STRING STRINGSecuencia de caracteres en un conjunto de caracteres
especificado
VARCHARSecuencia de caracteres en un conjunto de caracteres
especificado con una longitud máxima
CHARSecuencia de caracteres en un conjunto de caracteres
especificado con una longitud definida
DATE TIMESTAMP Fecha y hora sin zona horario
TIMESTAMP
WITH LOCAL
TIME
Un punto en el tiempo medido en nanosegundos
DATE Una fecha
BINARY BINARY Secuencia de bytes
73
Ilustración 37 Modos de conexión HiveServer2. Fuente: Mujumdar (2013)
Para el caso de Beeline, es necesario iniciar la conexión con el comando ¡connect
jdbc:hive2://host:puerto/bd;auth=noSasl usuario contraseña.
Al conectarse se puede ejecutar comandos básicos tales como use database; show tables; select
* from; y muchos otros.
También debe saber que, con la configuración actual del modelo, cuando se haga la ejecución
de consultas tales como INSERT o SELECT con condiciones de agrupamiento u JOINS,
HiveServer2 procederá a generar una solicitud de recursos al ResourceManager lo que finalmente
resultara en la ejecución de aplicaciones MapReduce. Este comportamiento lo ha observado en
ilustraciones anteriores y será detallado en el apartado de implementación y pruebas del modelo.
74
Ilustración 38 Conexión Beeline CLI al HiveServer2. Fuente propia.
OBDC / JDBC
Según Alvarez (2019) el OBDC es un estándar de acceso a bases de datos que utilizan los
sistemas Microsoft. Las siglas significan Open DataBase Connectivity. A través de ODBC, en un
sistema Windows se puede conectar con cualquier base de datos.25 En este caso, HIVE cuenta con
un driver OBDC que permite la conexión de diferentes lenguajes de programación como Php o
Python para realizar consultas personalizadas desde una aplicación.
En cuanto al JDBC (Java Database Connectivity), es usado por soluciones como HUE. Desde
la administración Web de esta se puede observar toda la estructura de la base de datos, permitiendo
observar cada una de las tablas y además la ejecución de consultas SQL que usan como medio de
comunicación el JDBC
25 Alvarez, M. (2016). ¿Qué es OBDC?. Recuperado de https://desarrolloweb.com/faq/que-es-odbc.html
75
Ilustración 39 Conexión JDBC HUE - HIVE. Fuente propia
4.3.4. HUE
4.3.4.1. Configuración.
Como se puede evidenciar en los temas anteriores, HUE es una solución que permite interactuar
más dinámicamente con cada uno de los elementos del Modelo de Big Data.
Gracias a esta solución se puede realizar una administración tanto de la parte de los datos como
de los procesos y no se queda solo ahí, también es capaz de realizar analítica de los datos al ejecutar
consultas SQL sobre cualquier base de datos presente en el sistema.
En cuanto a la configuración, toda se realiza en el hue.ini, el cual es un fichero bastante grande
donde se declara las rutas y puertos de cada uno de los procesos (HDFS, YARN, HIVE, entre
otros). A continuación, se muestra la configuración de cada uno de estos apartados.
76
Ilustración 40 Configuración HUE - HDFS. Fuente propia.
Es evidente que es necesario conocer la arquitectura del modelo ya que debemos indicar el host
desde el cual se ejecutan los procesos como lo es ResourceManager o el HiveServer2.
77
Ilustración 41 Configuración HUE - YARN. Fuente propia.
También es vital garantizar que cada uno de los puertos declarados sean accesibles y no
presenten ningún tipo de bloqueo por firewall.
Ilustración 42 Configuración HUE - HIVE. Fuente propia.
78
Finalmente Cabe resaltar que para garantizar el correcto funcionamiento de HUE se debe
instalar ciertas librerías a nuestro sistema operativo, como por ejemplo Python-devel. Además,
desde el Dockerfile se debe exponer el puerto 8888 ya que desde este se accede vía Web a la
administración de HUE:
Ilustración 43 Configuración HUE- Dockerfile. Fuente propia
4.3.4.2. Funcionalidad.
Antes de comenzar a trabajar con HUE se debe garantizar que cada elemento este configurado
correctamente y esto se puede hacer por medio del asistente de inicio rápido de HUE. Allí se
indican los problemas detectados en la configuración, lo cual permite depurar fácilmente cada uno
de los errores.
Ilustración 44 Comprobación de configuración HUE. Fuente propia.
79
Como se ha venido mostrando prácticamente HUE permite conectar todo e interactuar con el
modelo de Big Data de una manera sencilla y eficaz. También es posible trabajar con muchos tipos
de base de datos como lo es PostgreSQL, Oracle o SQLite.
Ilustración 45 Bases de datos compatibles con HUE. Fuente propia.
Como se ve en la siguiente ilustración es posible la ejecución de consultas Hive SQL, así como
también el cargue de ficheros externos.
Ilustración 46 Editor de consultas HIVE SQL. Fuente propia
80
4.4. Seguridad en el modelo
Uno de los puntos a considerar cuando se quiere comenzar a trabajar con un modelo de Big
Data es la seguridad. Es vital asignar los permisos correspondientes a cada usuario encargado de
la administración en los directorios del HDFS, para con esto permitir el acceso y la escritura sin
impedir el normal cumplimiento de sus funciones, y no menos importante para garantizar el
guardado de los archivos Logs de los diferentes servicios para llevar un registro completo de la
actividad del Clúster obteniendo un mejor control sobre el panorama de este.
Hadoop y las soluciones integradas con este hacen uso de ciertos puertos, que en caso de existir
bloqueos en la red sobre la cual está operando puede causar el incorrecto funcionamiento del
sistema o errores al intentar a acceder a determinados recursos importantes. También se resalta el
hecho de que la mayoría de estos servicios cuenta con un protocolo http y otro https para una
conexión con certificados SSL lo cual al querer comunicarlo con otras aplicaciones es necesario
tener en cuenta.
A continuación, se presenta una tabla con los puertos usados por cada uno de los servicios
configurados en el modelo:
81
Tabla 4 Puertos servicios de Hadoop. Fuente: Propia.
Componente Servicios Puerto Protocolo Propiedad configurable Observaciones
Hadoop HDFS Namenode 9870 TCP - HTTP dfs.namenode.http-addressAdminsitración web del
HDFS
Namenode 9871TCP -
HTTPSdfs.namenode.https-address
Administración Web del
HDFS con protocolo https
DataNode 9864 TCP - HTTP dfs.datanode.http. address
Puerto para la conexión con
el SecondaryNamenode
bajo el protocolo http
DataNode 9866TCP -
HTTPSdfs.datanode.https. address
Puerto para la conexión
segura con el
SecondaryNamenode bajo
el protocolo https
SecondaryNa
menode9868 TCP - HTTP
dfs.namenode.secondary.http-
address
SecondaryNa
menode9869
TCP -
HTTPS
dfs.namenode.secondary.https-
address
Protocolo https para el
servicio
SecondaryNamenode
Hadoop
MapReduce Job History 10020 TCP mapreduce.jobhistory.address
Job History
Admin10033 TCP
mapreduce.jobhistory.admin.addres
s
Job History
Web UI19888 TCP - HTTP
mapreduce.jobhistory.webapp.addr
ess
Acceso Web para ver
registro del Job de la
actividad.
Job History
Web UI19890
TCP -
HTTPS
mapreduce.jobhistory.webapp.https.
address
Servicio Web UI para con
protocolo https para el Job
History Server
Hadoop YARN ResourceMan
ager8032 TCP - HTTP yarn. resourcemanager. address
Dirección de la interfaz del
administrador de
aplicaciones en el
RresourceManager.
ResourceMan
ager8030 TCP - HTTP
yarn. resourcemanager.
scheduler.address
La dirección de la interfaz
del planificador (Scheduler).
ResourceMan
ager8031 TCP
yarn. resourcemanager. resource-
tracker. address
ResourceMan
ager8033 TCP
yarn. resourcemanager.
admin.address
ResourceMan
ager8088 TCP
yarn. resourcemanager.
webapp.addressAdministración Web
NodeManager 8040 TCPyarn. nodemanager. localizer.
address
NodeManager 8042 TCP - HTTPyarn. nodemanager.
webapp.address
Dirección http de la
aplicación Web del
NodeManager, instalado en
cada nodo esclavo.
NodeManager 8041 TCP yarn. nodemanager. address
MapReduce
JobHistory
Server
10020 TCP mapreduce. jobhistory. address
Dirección predeterminada
para que el servidor de la
línea de tiempo inicie el
servidor RPC.
MapReduce
JobHistory
Server
19888 TCPmapreduce. jobhistory.
webapp.address
Hive Metastore 9083 TCP hive.metastore.http.port
HiveServer2 10000TCP -
THRIFThive.server2.thrift.port
Protocolo de comunicación
binaria para servicio Web -
Thrift.
HiveServer2 10001 TCP hive.server2.thrift.port
Hue Server 8888 TCP hue.ini - http_port and http_hostAdministración Web UI de
HUE
82
4.5. Funcionamiento del modelo
Remitiendo la ilustración 27 correspondiente al Modelo de Big Data, se va a resumir el flujo
del proceso desde la carga de datos hasta la interacción y visualización de estos:
Fuente de Datos: Por medio de formularios, WebScraping, ClickStream u otro método se
realiza la captura de datos del modelo de negocio el cual se quiere implementar un modelo de
analítica de datos.
Carga de Datos: Para comenzar se genera una consulta hiveSQL o carga de ficheros por medio
del OBDC o JDBC de HiveServer2, este escucha el suceso por el puerto 10000 y 10001,
adicionalmente en caso de que la consulta lo requiera generará una aplicación MapReduce la cual
será accesible desde el puerto 8088 del Hostname o dirección IP del Nodo Maestro.
Nodo Maestro y Esclavos: Aquí es donde a partir de las aplicaciones generadas por el
HiveServer2 se comienza un proceso de comunicación con el HDFS por medio del gestor del
Clúster YARN, este a su vez se comunica vía SSH con los NodeManager de los nodos esclavos
para proceder con el guardado de la información en forma de bloques distribuidos a través del
Clúster.
Una vez los Maps y los Reduces, generados de la ejecución de la aplicación de HIVE, hayan
finalizado su función se procede a informar con un status 200 la correcta ejecución de la solicitud
del cliente.
Interacción con los datos: Por medio de HUE u otra herramienta que haga uso del JDBC u
OBDC de HIVE, se procede a interactuar con los datos. Aquí el usuario finalmente puede realizar
cualquier tipo de consulta sobre la base de datos almacenada en el HDFS y el HiveServer2 generará
83
un flujo similar al que se realizó con la carga de datos pero que en última instancia presenta los
datos de forma más grafica en la administración grafica de HUE.
84
5. IMPLEMENTACIÓN Y PRUEBAS DEL MODELO
En este capítulo se presenta la captura de los datos de la herramienta para la gestión de
licitaciones, SECOP, por medio de una aplicación desarrollada con Php, aclarando el proceso de
Web Scraping y la conexión al modelo de Big Data planteado por medio del OBDC de HIVE.
Posteriormente se muestra la ejecución de consultas SQL con las cuales se realiza la analítica de
los datos almacenados.
5.1. Captura de datos SECOP programa PHP
Para realizar el proceso de web Scraping es necesario identificar las herramientas necesarias
para la captura de procesos licitatorios, como se menciona anterior mente en el segundo capítulo
del documento, es necesario capturar el mkey que proporciona la plataforma, para ello se requiere
de tres elementos básicos como se muestra a continuación.
Ilustración 47 Modelo Web Scraping. Fuente propia.
85
Php, Hypertext Preprocessor es un lenguaje de programación de lado de servidor que permite
programar un script capaz de controlar y obtener el mkey que provee Colombia Compra Eficiente.
Selenium WebDriver, Capaz de iniciar una instancia del navegador, con el fin de controlarlo y
realizar pruebas en sistemas remotos.
Navegador web, es el software o programa que permite interpretar el contenido web.
5.1.1. Configuración de script.
Se realiza un programa en leguaje PHP, mondado sobre el Framework Laravel 5 con los
siguientes requerimientos
PHP 7.1.3
BCMath PHP Extensión
Ctype PHP Extensión
JSON PHP Extensión
Mbstring PHP Extensión
OpenSSL PHP Extensión
PDO PHP Extensión
Selenium WebDriver 1.0 o superior
Google Chrome versión 74 o superior
Para iniciar el proceso de desarrollo del script es necesario tener conceptos básicos sobre web
Scraping, por ello se mencionan conceptos básicos como SELECTORES CSS y XPATH (XML
Path Language o lenguaje XML de cambios), dichos elementos cumplen la función de buscar he
86
identificar zonas en el HTML, gracias a ellos se puede identificar desde un botón, hasta un campo
dentro de una tabla, a continuación, se ven ejemplos de cada uno de ellos.
Ilustración 48 Ejemplo Selectores. Fuente propia.
El anterior botón retorna las siguientes cadenas según el tipo
Selector CSS
#tsf > div:nth-child(2) > div > div.FPdoLc.VlcLAe > center > input.gNO89b
XPATH
//*[@id="tsf"]/div[2]/div/div[3]/center/input[1]
Se procede a realizar la identificación como usuario en la plataforma SECOP, por lo
cual la función getKey() realiza la apertura de un navegador, posterior mente haciendo uso
de los selectores css se logran identificar los campos de inicio de sesión, se completan las
credenciales de acceso, una vez iniciada la sesión se identifica el mkey, se captura y se
cierra el navegador.
87
Ilustración 49 Script Captura mkey SECOP. Fuente propia.
El cliente Gozzle realizara peticiones de manera constante variando por cada petición el número
de la página, inicio y fin del segmento, para este caso se organizaron los registros de manera
descendente con un límite de 433301 iteraciones, hay que tener en cuenta que por iteración el
servicio retorna 5 procesos licitatorios.
88
Ilustración 50 Parámetros solicitud POST SECOP. Fuente propia.
En la imagen se empaquetan procesos por cada 1000 iteraciones, es decir por cada paquete se
envía a HIVE 5000 procesos nuevos, posterior a se guarda un archivo tipo “sql sintaxis" en el
directorio hiveSQL del repositorio.
Por cada iteración el cliente Gozzle retorna el HTML de la página, pero es Crawler la
herramienta permite manejar este contenido, en este caso la función retorna un array donde se
identifica el nombre de la entidad, Referencia, Descripción entre otros campos.
89
Ilustración 51 Array retornado de solicitud POST al SECOP. Fuente propia.
5.2. Configuración ODBC
Hive permite realizar conexiones por medio de diferentes controladores, se puede utilizar una
conexión por medio de Java Database Connectivity (JDBC) u Open Database Connectivity
(ODBC), para la simulación se realiza la configuración en Windows 7 por medio de ODBC, para
ello es necesario descargar dicho controlador desde la página oficial de Microsoft:
https://www.microsoft.com/en-us/download/details.aspx?id=40886
90
Ilustración 52 DRIVER HIVE OBDC. Fuente: Microsoft (2019)
Ya descargado he instalado, se procede a buscar la herramienta de administración de ODBC
disponible en nuestro sistema
Ilustración 53 Administrador OBDC Sistema Operativo. Fuente propia.
En ella se debe verificar que la instalación sea exitosa por lo cual en la pestaña “DNS sistema”
se encuentra dicho controlador
91
Ilustración 54 Data Source Name - OBDC HIVE. Fuente propia
Finalizada la instalación se procede a crear un DNS de usuario, para ello es necesario dirigirse
a dicha pestaña y agregar un nuevo DNS
Ilustración 55 Creación DSN de usuario HIVE. Fuente propia.
Se despliegan varios controladores de bases de datos, para el cual se escoge la anterior mente
instalada
Ilustración 56 Selección Controlador OBDC HIVE. Fuente propia.
92
Se procede a configurar el DNS de la siguiente manera:
Ilustración 57 Configuración DNS HIVE. Fuente propia.
DATA SOURCE NAME: HiveDriver
HOST: Ip servidor HIVE
PORT :1000
DATABASE: SECOP
USER NAME: hiveuser
PASSWORD: hivepass
SSL OPTIONS: Disabled
Es necesario realizar un test de conexión, para verificar que la configuración es exitosa, El
parámetro Thrift Transport puede variar entre binary y sasl dependiendo la configuración realizada
en el servidor HIVE.
93
Ilustración 58 Test de conexión OBDC HIVE. Fuente propia.
5.3. Conexión OBDC PHP-HIVE
Realizada la configuración, y una vez se verifique que nuestro equipo puede realizar una
conexión exitosa con el servidor HIVE, se procede a programar el script de conexión, en él se debe
colocar el DNS de usuario, nombre de usuario y contraseña, se debe tener en cuenta que, para el
caso de Windows, es necesario activar la extensión “php_odbc.dll” disponible en el archivo php.ini
Si todo quedo correctamente configurado, la conexión debe ser exitosa.
Ilustración 59 Función de conexión OBDC PHP - HIVE. Fuente propia.
94
5.4. Ejecución de consultas al HDFS por medio de HIVE
A partir de todas las configuraciones realizadas en los apartados anteriores solo basta generar
las consultas por medio de la conexión activa, por ejemplo, desde el cliente de Beeline se procede
a ejecutar una consulta que cuente todos los registros guardados en la base de datos de SECOP en
el HDFS del modelo. Para ello se ejecuta la consulta SELECT count (*) from procesos esto genera
un Job, el cual designa una aplicación map y una reduce para la ejecución de la consulta.
Ilustración 60 Ejecución de Consultas hiveSQL desde Beeline. Fuente propia.
5.5. Analítica de datos con HUE
Ahora bien, solo resta proceder a realizar las consultas correspondientes que arrojen la
información solicitada. Para esto se va a hacer uso de la administración web de HUE, en donde
por medio de la ejecución de consultas hiveSQL se tienen funcionalidades muy interesantes.
95
En la ilustración 61 se observa como al momento de ejecutar una consulta, la cual cuenta las
referencias de los procesos generadas por cada entidad con un límite de 5 y de forma descendente,
es creado un Job en el nodo1 con un número de referencia terminado en 97_0001.
Ilustración 61 Ejecución consulta hiveSQL - administración HUE. Fuente propia.
Cuando la consulta finaliza con un status 200, se puede observar la tabla generada para las
columnas de la consulta. En este caso se tiene una columna para la entidad y otra para la cantidad
de procesos que tiene registrado en el SECOP:
Ilustración 62 Resultado consulta hiveSQL - administración HUE. Fuente propia.
96
Y no solo eso, también permite visualizar de manera mucho más grafica por medio de un gráfico
de tipo Barras o PIE el resultado de la consulta. se evidencia que la entidad con más procesos
registrados es la empresa de acueducto y alcantarillado de Bogotá con un número de 2329.
Ilustración 63 Grafico de Barras, consulta hiveSQL. Fuente propia.
Ilustración 64 Gráfico de Barras, consulta hiveSQL. Fuente propia.
En caso de poseer información con geolocalización, que se pueda discriminar en la consulta, es
posible la generación de un gráfico con la distribución de los datos en un mapa precargado de los
97
diferentes países. Esto puede ser un valor agregado en casos de compañías presentes en diferentes
países y que por ejemplo deseen conocer la cantidad de productos vendidos en cada uno de estos
Y no solamente se dispone de estos tres tipos de gráficos. Existen gráficos de dispersión y
mapas de calor que pueden ayudar a entender más los datos arrojados por las diferentes consultas.
Además, se pueden implementar otras herramientas como lo es Excel conectado con el OBCD de
HIVE para hacer una interpretación diferente de los datos.
Ilustración 65 Grafico de Geolocalización. HUE. Fuente propia
Otra consulta que se pueda generar a partir de los datos obtenidos por el WebScraping realizado
sobre el SECOP, es la cantidad de procesos publicados por entidad en el transcurso del año 2019.
Ilustración 66 Consulta cantidad de procesos por entidad 2019 - HUE. Fuente propia
98
Como se evidencia se pueden ver los resultados, y dan un total de 984 procesos licitatorios
generados por la Agencia Logística de las Fuerzas Militares
Ilustración 67 Entidades con más procesos registrados 2019 - HUE. Fuente propia.
Ilustración 68 Gráfico de Barras, cantidad procesos SECOP 2019. Fuente propia.
Finalmente es también posible la descarga de la información de cada una de las consultas en un
formato CSV o Excel e inclusive se puede copiar al portapapeles por ejemplo la tabla resultante.
Con esto logramos complementar Hadoop y se abren muchas más opciones para comenzar a usarlo
en la cualquier organización con el fin de sacarle el mejor provecho a los datos que capturan de
cualquier tipo de fuente.
99
Ilustración 69 Opciones de descarga de información. HUE. Fuente propia
100
CONCLUSIONES
Es importante realizar un análisis del modelo de negocio al cual se quiere aplicar el concepto
de Big Data, ya que con esto se logrará estructurar una solución más acorde a las necesidades
encontradas y permitirá sacar mejor provecho a los recursos los cuales tienden a ser en su mayoría
limitados. Adicionalmente, lo más optimó es contar con la opinión de un experto que oriente la
planeación de la implementación del modelo de Big Data y a su vez contar conjuntamente con una
persona de la organización que conozca todos los procesos inmersos los cuales se contempla
hacerles analítica de datos.
Con la integración de herramientas relacionadas con Apache Hadoop es posible optimizar el
tiempo de ejecución de las actividades que bajo un modelo normal tardaría mucho en obtener
resultados satisfactorios y que otorguen valor. La computación distribuida es la solución para
muchos problemas de rendimiento, escalabilidad y tolerancia a fallos, debido a que al contar con
un Clúster, la disponibilidad e integridad de los datos se incrementa exponencialmente.
Cada uno de los elementos que interactúan en el modelo tiene un variado número de
configuraciones, por lo cual para garantizar la estabilidad y continuidad de cualquier proyecto
relacionado con Hadoop es necesario contar con personal experto en el manejo y administración
de cada solución. Así mismo, es importante el trabajo en conjunto de las diferentes áreas que
afectan directamente el planteamiento del modelo como, por ejemplo: Devops, Seguridad, Base
de Datos, Data Science, entre otros.
Una vez que ya se encuentra en producción un modelo de Big Data, es posible realizar la
analítica de los datos de diferentes formas. Existen soluciones que son más sencillas de integrar
que otras, por ejemplo, la que se trabajó en el proyecto en cuestión (HUE), pero pueden que no
101
sean tan configurables como se requiere, de modo que conocer el funcionamiento detallado de
cada elemento dentro del modelo permitirá llegar a resultados más completos y enriquecedores
para la organización.
En definitiva, es posible la gestión de los procesos licitatorios en Colombia, a partir de las
técnicas disponibles para usar analítica de datos. Gracias a que existe una documentación robusta
de cada solución open source de Apache y a una comunidad activa que debate y ayuda con los
posibles problemas de implementación, se facilita el uso y aplicación del concepto de Big Data
sobre cualquier entorno de trabajo lo que se resume en una mejora constante de las configuraciones
y arquitecturas definidas en cada proyecto.
Así mismo, con la gestión de la información en un modelo de Big Data, se logra identificar
constantemente oportunidades de mejora, de una forma rápida y eficaz, en cuanto al cómo se trata
los datos entrantes de las diferentes fuentes y que se puede lograr con los resultados de procesar
dichos datos.
102
RECOMENDACIONES
Al momento de iniciar cualquier proyecto de Big Data es necesario considerar la capacidad de
inversión en recursos físicos, ya que a pesar de que la licencia de la mayoría de los productos
asociados es Open Source cada nodo debe contar con un mínimo de memoria y procesador para
su correcto funcionamiento, por lo tanto, si no se hace una planeación adecuada para la adquisición
de recursos puede que el proyecto quede parado en algún punto o no cumpla con las expectativas
planteadas.
Otro punto importante es la verificación de los parámetros de seguridad en la red. En ocasiones
la ejecución o acceso a los servicios disponibles en Hadoop no se logra completar por los bloqueos
en los puertos en el Firewall de las organizaciones, es por esto que se debe trabajar en conjunto
con las áreas de seguridad y redes para garantizar un correcto despliegue de una solución de Big
Data. Así mismo, no hay que olvidar que en caso de contar con los certificados SSL el puerto
puede variar para la comunicación entre las diferentes herramientas y el acceso a los servicios.
En cuanto al despliegue de cada uno de los nodos dentro de un modelo de Big Data con Hadoop,
es recomendable revisar más a profundidad las opciones de configuración y servicios que ofrece
el proyecto Docker. Uno de los conceptos a tener en cuenta es conocido como Kubernetes, el cual
es usado para la automatización de despliegue de contenedores lo que permitiría optimizar al
administrador los temas relacionados con escalabilidad y tolerancia a fallos lo que finalmente se
encuentra dentro de la filosofía de lo que es Hadoop.
103
BIBLIOGRAFÍA
Amazon (s.f.). Apache HBase en Amazon EMR. Recuperado de
https://aws.amazon.com/es/emr/details/hbase/
Apache Org. (2018). Apache Hadoop 3.2.0. Recuperado de
https://hadoop.apache.org/docs/r3.2.0/
Apache Org. (2018). Apache HIVE. Recuperado de
https://cwiki.apache.org/confluence/display/Hive/Home
Apache org. (2019). Dowload Hadoop. Recuperado de
https://hadoop.apache.org/releases.html
Apache org. (2019) YARN. Recuperado de
htt.ps://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
Bertolucci. J. (2013). Big Data Analytics: Descriptive Vs. Predictive Vs. Prescriptive.
Recuperado de https://www.informationweek.com/big-data/big-data-analytics/big-data-
analytics-descriptive-vs-predictive-vs-prescriptive/d/d-id/1113279
Colombia compra eficiente. (2019). SECOP. Recuperado de
https://www.colombiacompra.gov.co/
Consejo Nacional De Política Económica Y Social. (2018) POLÍTICA NACIONAL DE
EXPLOTACIÓN DE DATOS (BIG DATA). Recuperado de
https://colaboracion.dnp.gov.co/CDT/Conpes/Econ%C3%B3micos/3920.pdf
Cloudera. (2019). Cloudera Documentation. Recuperado de
https://docs.hortonworks.com/
Cloudera Engineering Blog. (2013) How HiveServer2 Brings Security and Concurrency
to Apache Hive. Recuperado de https://blog.cloudera.com/blog/2013/07/how-hiveserver2-
brings-security-and-concurrency-to-apache-hive/
Docker. (2019) La plataforma moderna para la innovación de alta velocidad. Recuperado
de https://www.docker.com/why-docker
Escuela de datos. (2016). Introducción a la extracción de datos de sitios web: scraping.
Recuperado de https://es.schoolofdata.org/introduccion-a-la-extraccion-de-datos-de-sitios-
web-scraping/
Gartnet. (s.f.). Big Data. Recuperado de https://www.gartner.com/it-glossary/big-data
104
Glez J. M. (2014). Introducción a la Analítica de Datos (I). Recuperado de
https://www.analiticaweb.es/introduccion-a-la-analitica-de-datos-i/
Glosario-over-blog.es. Leyes sobre software Libre en Colombia (2010) Recuperado de
http://glosario.over-blog.es/article-leyes-sobre-software-libre-en-colombia-59255157.html
Instituto de Ingeniería del Conocimiento (IIC, 2016). 7 Herramientas Big Data para tu
empresa. Recuperado de http://www.iic.uam.es/innovacion/herramientas-big-data-para-
empresa/
KienyKe (2017). Analítica de datos ¿qué es y cómo vamos en el tema de Colombia?
KienyKe Tecnología. Recuperado de
https://www.kienyke.com/tendencias/tecnologia/analitica-de-datos-que-es-y-como-vamos-
en-el-tema-de-colombia
La Vanguardia. (2018) Un proyecto europeo de big data servirá para controlar los
contratos públicos. Recuperado de
https://www.lavanguardia.com/vida/20180119/44120927162/un-proyecto-europeo-de-big-
data-servira-para-controlar-los-contratos-publicos.html
LinOxide. (2018). 2 Ways to SSH into a Running Docker Container. Recuperado de
internet https://linoxide.com/linux-how-to/ssh-docker-container/
Microsoft (2019). Hive OBDC Driver. Recuperado de https://www.microsoft.com/en-
us/download/details.aspx?id=40886
Medium. (2018) Some tips to run a multi-node Hadoop in Docker. Recuperado de
https://medium.com/@rubenafo/some-tips-to-run-a-multi-node-hadoop-in-docker-
9c7012dd4e26
Mujumdar (2019). How HiveServer2 Brings Security and Concurrency to Apache Hive.
Recuperado de https://blog.cloudera.com/blog/2013/07/how-hiveserver2-brings-security-
and-concurrency-to-apache-hive/
Oracle (2018). JPS – Java Virtual Machine Process Status Tool. Recuperado de
https://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html
Oracle. (s.f). ¿Qué es Big Data?. Recuperado de https://www.oracle.com/co/big-
data/guide/what-is-big-data.html
Packt. (2015) Hadoop and MapReduce. Recuperado de https://hub.packtpub.com/hadoop-
and-mapreduce/
Programa de transformación productiva. Formación en BigData. Recuperado de
https://www.ptp.com.co/ptp-servicios/ptp-convocatorias/para-empresas/ptp-busca-60-
personas-del-sector-bpo-software-y-ti
105
Raymond Tang. (2017). Default Ports Used by Hadoop Services (HDFS, MapReduce,
YARN). Recuperado de https://kontext.tech/docs/DataAndBusinessIntelligence/p/default-
ports-used-by-hadoop-services-hdfs-mapreduce-yarn
Red Hat. (2019). Contenedores ¿Qué es DOCKER? Recuperado de
https://www.redhat.com/es/topics/containers/what-is-docker
Reíta Reyes, J. E. y Salinas Hernandez, H. J. (2016). Análisis de la viabilidad de la
implementación de redes Big Data en Colombia (Tesis de pregrado). Recuperado de
http://repository.udistrital.edu.co/bitstream/11349/4018/1/Big-data-FINAL-SI-1-
1%20%281%29.pdf
Rojo, A. El ciclo de Deming o círculo PDCA. Recuperado de
https://www.sbqconsultores.es/el-ciclo-de-deming-o-circulo-pdca/
Stefaan Lippens (2018). Hadoop 3 default ports. Recuperado de
https://www.stefaanlippens.net/hadoop-3-default-ports.html
The Apache Foundation. Licencia Apache, Versión 2.0 (2019) Recuperado de
https://www.apache.org/licenses/LICENSE-2.0
Thilina Gunarathne (2015). Hadoop and MapReduce. Recuperado de
https://hub.packtpub.com/hadoop-and-mapreduce/
Vidal, Palacios y Zambrano. (2013). SELENIUM MANUAL DE INSTALACIÓN Y
USO. Recuperado de
https://campusvirtual.univalle.edu.co/moodle/pluginfile.php/486657/mod_folder/content/0/
ManualSelenium.pdf?forcedownload=1