Dominando Big Data con herramientas Open Source

16 Jun 2015 en Big Data

apache-badgeDatamation presenta un recorrido por una variedad de herramientas y recursos Open Source que pueden ser utilizados en el manejo de Big Data. Hemos incluido los contextos Hadoop a Bases de Datos, Procesamiento In-Memory, Business Intelligence, Minería de Datos y Búsqueda. Encontrarán varias docenas de soluciones que, además de informar sobre su existencia y funcionalidad, serán de utilidad a la hora de mostar qué posibilidades existen para la explotación de Big Data, un campo de acción que pronto será ineludible en empresas, organizaciones de gobierno, entidades financieras y cualquier otro ambiente con alta población de datos.

Actualmente, en los proyectos Big Data reina la tecnología Open Source, especialmente la relacionada con Apache Hadoop. Según una predicción de la firma de analistas Forrester, en el 100 por ciento de lasgrandes compañías se adoptará Hadoop en el curso de los próximos dos años. La proyección es de un crecimiento a tasa compuesta del 58% hasta 2022. Un ejemplo de esta tendencia está dado por el accionar de IBM, que ha dedicado 3500 investigadores para que trabajen con herramientas Open Source para Big Data, en especial con Apache Spark, que es parte del entorno Hadoop.

Siguiendo con nuestra línea editorial que consiste en ir anticipando los adelantos de la industria a la vez que reflejamos el accionar de proveedores y desarrolladores, vamos a ofrecer una lista de herramientas organizada por categorías. Esta lista fue publicada por Datamation en base a un trabajo de actualización realizado por Cynthia Harvey. Este listado, además de su utilidad como información útil en la selección de herramientas Open Source, nos muestra la gran actividad que existe con el lanzamiento de nuevos proyectos, muchos de los cuales se destacan por ser administrados por Apache Foundation y estar muy relacionados con Hadoop.

 

Entre las herramientas relacionadas directamente con Hadoop tenemos a las siguientes:

Hadoop

El proyecto Hadoop de Apache sigue creciendo y se ha convertido en un ecosistema en sí mismo, con herramientas Open Source que atienden a la computación distribuida y altamente escalable. Corre sobre sistemas operativos Windows, Linux y OS X de Apple.

Ambari

Es un proyecto de Apache que se incluye dentro del ecosistema de Hadoop. Ofrece una interfaz Web muy intuitiva para el aprovisionamiento, administración y monitoreo de clusters Hadoop. Además, para los desarrolladores, cuenta con una API (Application Programming Interface) RESTful que permite la integración de las capacidades de Ambaris en sus propias aplicaciones. Funciona con Windows, Linux y OS X.

Avro

Este es otro proyecto Apache que provee un sistema de serializado de datos con estructuras ricas de datos y un formato compacto. Los esquemas son definidos con JSON (JavaScript Object Notation) y se integra con lenguajes dinámicos. Es independiente del sistema operativo que se utilice.

Cascading

Es una plataforma de desarrollo de aplicaciones basada en Hadoop. Cuenta con soporte y capacitación ofrecidos comercialmente y no depende de ningún sistema operativo.

Chukwa

También basado en Hadoop, se ocupa de recolectar datos desde grandes sistemas distribuidos con fines de monitoreo Incluye herramientas para analizar y mostrar datos. Funciona con Linux y OS X.

Flume

Se encarga de colectar datos de otras aplicaciones y de depositarlos en Hadoop. Se autodefine con una herramienta robusta y con tolerancia a fallos con mecanismos de estabilidad ajustables y numerosos dispositivos de superación y recuperación ante fallos. Opera con Linux y OS X.

HBase

Se diseñó para manejar enormes tablas con miles de millones de filas y columnas. HBase es una base de datos distribuida que permite acceso random en tiempo real, tanto de lectura como de grabación, en entornos Big Data. Tiene cierta similitud con Bigtable de Google, pero está construido sobre Hadoop y HDFS (Hadoop Distributed File System). Es agnóstico respecto a los sistemas operativos.

Hadoop Distributed File System

HDFS es el sistema de archivos de Hadoop. Sin embargo, también puede ser utilizado como file system distribuido independiente. Se basa en Java, es tolerante a fallos, altamente escalable y muy configurable. Sistemas operativos Windows, Linux y OS X.

Hive

Apache Hive es el warehouse de datos para los ambientes Hadoop. Permite que los usuarios realicen consultas y administren Big Data utilizando HiveQL, un lenguaje de consulta similar a SQL. Es independiente del sistema operativo.

Hivemall

Se trata de un conjunto de algoritmos de máquinas de aprendizaje para Hive. Cuenta con algoritmos altamente escalables para clasificación, regresión, recomendación, vecindad próxima, detección de anomalía y hashing de características(estructura de datos utilizada para implementar arreglos asociativos, una estructura que puede mapear claves a valores).

Mahout

El objetivo de este proyecto es el de crear un entorno para crear rápidamente aplicaciones de máquinas de aprendizaje escalables. Incluye una variedad de algoritmos para realizar minería de datos en Hadoop MapReduce, como así también algunos nuevos algoritmos para entornos Scala y Spark. Es independiente del sistema operativo.

MapReduce

Parte de Hadoop, MapReduce es un modelo de programación con el que se pueden procesar grandes conjuntos de datos distribuidos. Fue originalmente desarrollado por Google y se utiliza en varias de las herramientas Big Data que veremos, incluyendo a CouchDB, MongoDB y Riak. Es agnóstico respecto al sistema operativo.

Oozie

Es un programador de tareas que administra los Jobs en Hadoop. Puede disparar tareas por tiempos o bien según la disponibilidad de datos y se integra con MapReduce, con Pig, Hive, Sqoop y muchas otras herramientas relacionadas. Corre sobre Linux y OS X.

Pig

Apache Pig es una plataforma para el análisis de Big Data distribuido. Se apoya en un lenguaje de programación denominado Pig Latin, cuya principal fortaleza es la de simplificar la programación paralela, optimizarla y extenderla. Es independiente del sistema operativo.

Sqoop

Atiende a la necesidad de transferir datos entre bases de datos relacionales y Hadoop. Puede importar datos desde Hive o HBase y exportarlos desde Hadoop a RDBMs. No depende de ningún sistema operativo.

Spark

Es una alternativa de MapReduce como motor de procesamiento de datos. Se eroga la capacidad de ser 100 veces más rápido que MapReduce cuando se utiliza in-memory y 10 veces más rápido cuando corre sobre disco. Puede funcionar junto a Hadoop, con Apache Mesos o por sí mismo. Corre sobre Linux, Windows y OS X.

Tez

Construido sobre Apache Hadoop YARN, es un entorno de aplicación que permite procesar datos en tareas complejas bajo esquemas graph acíclicos. Permite que Hive y Pig simplifiquen tareas complicadas que de otra manera exigirían la realización de múltiples pasos. Corre sobre Windows, Linux y OS X.

Zookeeper

Esta herramienta para la administración de Big Data consiste de un servicio centralizado para mantenimiento de la información de configuración, denominación, proveyendo sincronización distribuida y servicios de grupo. Permite que los nodos de un cluster Hadoop se coordinen entre sí. Corre sobre Linux, Windows y OS X, en éstos dos últimos, sólo para desarrollo.

 

Plataformas y herramientas para el análisis de Big Data

Disco

Inicialmente desarrollado por Nokia, Disco es un marco de trabajo para computación distribuida. Al igual que Hadoop, parte de MapReduce. Incluye filesystems y una base de datos que soporta billones de claves y valores. Funciona sobre Linux y OS X.

HPPC

Es una alternativa de Hadoop que promete altas velocidades y escalabilidad. Además de una versión comunitaria sin cargo, HPCC Systems ofrece una versión paga, módulos propios, capacitación, consultoría y otros servicios. Corre sobre Linux.

Lumify

Parte de Altamira, conocida por sus tecnologías dirigidas a la seguridad de naciones, Lumify es una plataforma open source de integración de datos, analíticos y visualización. Corre sobre Linux.

Pandas

El proyecto Pandas cuenta con herramientas para estructuras de datos y análisis basadas en el lenguaje de programación Python. Posibilita la utilización de Python como alternativa de R (Lenguaje y entorno para computación estadística y gráficos) en proyectos de análisis de Big Data. Corre sobre Windows, Linux y OS X.

Storm

Actualmente es un proyecto Apache. Permite procesamiento de Big Data en tiempo real, a diferencia de Hadoop que sólo funciona en lotes o batch. Tiene usuarios como Twitter, Weather Channel, WebMD, Alibaba, Yelp, Yahoo! de Japón, Spotify, Flipboard y muchos otros. Funciona sobre Linux.

 

Bases de Datos y Warehouses

Blazegraph

Antes conocida como Bigdata. Es una base de datos altamente escalable y de gran performance. Se puede obtener bajo licencia open source o comercial. Es independiente del sistema operativo.

Cassandra

Fue inicialmente desarrollada por Facebook y es una base de datos NoSQL que se utiliza en cientos de empresas. Puede soportar clusters de tamaño enorme. Por ejemplo, Apple utiliza más de 75.000 nodos con más de 10 Petabytes de datos. Es independiente del sistema operativo.

CouchDB

Autodefinida como una base de datos que adhiere por completo a la Web, almacena datos en documentos JSON que pueden ser invocados desde un browser Web y manipulados con JavaScript. Es fácil de usar, de alta disponibilidad y escalabilidad entre sistemas distribuidos. Corre sobre Windows, Linux, OS X y Android.

FlockDB

Es un desarrollo realizado por Twitter. Es una base de datos Graph (Que utiliza estructuras Graph para consultas semánticas en núcleos, bordes y propiedades para representar y almacenar datos). Es adecuada para el almacenamiento de datos de redes sociales. Si bien se la puede descargar, la versión Open Source de este proyecto no ha sido actualizada por un tiempo. Es independiente del sistema operativo.

Hibari

Este proyecto se basa en Erlang (Sistema de programación, runtime). Fue desarrollado por Gemini Mobile Technologies y lo utilizan varios carriers de telecomunicaciones en Europa y Asia. No depende de ningún sistema operativo.

Hypertable

Utilizado por Ebay, Groupon y otros, Hypertable es una base de datos para Big Data compatible con Hadoop con gran potencial de performance. Cuenta con soporte comercial. Corre sobre Linux y OS X.

Impala

La firma Cloudera sostiene que esta base de datos basada en SQL es líder como base de datos analítica open source para Apache Hadoop. Se la puede descargar como producto standalone y es también parte de los productos comerciales para Big Data de Cloudera. Corre sobre sistemas operativos Linux y OS X.

InfoBright Community Edition

Diseñada especialmente para analíticos, es una base de datos columnar con un alto ratio de compresióin. En InfoBright.com se ofrecen productos pagos con soporte basados en el mismo código que la versión libre. Corre sobre Windows y Linux.

MongoDB

Cuenta con más de diez millones de descargas y es la base de datos NoSQL más popular. La versión Enterprise con soporte y capacitación, junto con otros productos y servicios ofrecidos comercialmente, están disponibles en MongoDB.com. Corre sobre Windows, Linux, OS X y Solaris.

Neo4j

Es una de las bases de datos graph más escalables y veloces, según su propia definición. Neo4j ofrece escalabilidad masiva, alta performance de consultas Cypher (lenguaje declarativo de consultas graph para la base de datos Graph Neo4j) y una capacidad mejorada para el trabajo de desarrollo. Los usuarios son empresas como eBay, Walmart, Lufthansa y otros. Corre sobre Windows y Linux.

OrientDB

Esta base de datos multi-modelo combina algunas de las capacidades de las bases de datos graph con otras de las de una base de datos documental. Cuenta con servicios pagos de capacitación y consultoría. Es independiente del sistema operativo.

Pivotal Greenplum Database

Pivotal, parte de EMC, ofrece a Greenplum como la “mejor base de datos analítica de nivel empresarial.” Puede realizar poderosos análisis en grandes volúmenes de datos con alta velocidad. Es parte de Pivotal Big Data Suite. Corre sobre Windows, Linux y OS X.

Riak

Es una base de datos que viene en dos versiones. KV es la base de datos NoSQL distribuida y S2 ofrece almacenamiento de objetos para la nube. Está disponible en versiones open source y comercial. Cuenta con add-ons para Spark, Redis y Solr. Corre sobre Linux y OS X.

Redis

Patrocinada por Pivotal, es un almacén de valores-claves. Tiene soporte pago. Si bien el proyecto no soporta oficialmente a Windows, Microsoft cuenta con un dispositivo Windows para GitHub. Sistema operativo Linux.

 

Business Intelligence

Talend Open Studio

Tiene más de dos millones de descargas. Es un software open source que brinda capacidad de integración de datos. La compañía también ofrece recursos pagos para Big Data, cloud, integración de datos, integración de aplicaciones y herramientas de MDM (Master Data Management). La utilizan AIG, eBaym, Samsung, Verizon y muchos otros. Corre sobre Windows, Linux y OS X.

Jaspersoft

Es utilizada por grandes usuarios como Groupn, CA, Ericsson y otros. Jaspersoft ofrece herramientas flexibles y embebibles de BI (Business Intelligence). Además de la edicióin para la comunidad Open Source, existen elementos pagos de reporting AWS (Herramienta Open Source de reporte estadístico) con versiones profesionales y empresariales. Es independiente del sistema operativo.

Pentaho

Es propiedad de Hitachi Data Systems. Ofrece una variedad de funciones de integración de datos y analíticos de nivel empresariales. Tiene una versión comunitaria sin cargo. Corre sobre Windows, Linux y OS X.

SpagoBI

Es altamente calificada por los analistas de mercado del IT. Spago BI ofrece BI y además software de middleware y aseguramiento de la calidad. También cuenta con un framework para desarrollo de aplicaciones con Java EE (Enteprise Edition). El software es completamente gratuito y Open Source, si bien existen servicios pagos de soporte, consultoría, capacitación y otros. Es independiente del sistema operativo.

KNIME

KNIME (Konstanz Information Miner) es una plataforma Open Source de analíticos y reporting. Existen varias extensiones comerciales y también open source que amplían sus capacidades. Corre sobre Windows, Linux y OS X.

BIRT

BIRT (Business Intelligence and Reporting Tools) es una plataforma para crear visualización y reportes que puedan ser embebidos en aplicaciones y sitios Web. Es parte del proyecto Eclipse Community y es apoyado por Actuate, IBM e Innovent Solutions. Es independiente del sistema operativo.

 

Herramientas Open Source de Data Mining

DataMelt

Sucesor de jHepWork, DataMelt es un recurso capaz de realizar computación matemática, minería de datos, análisis estadístico y visualización de datos. Soporta Java y otros lenguajes relacionados de programación como Jython, Groovy, JRuby y Beanshell. Es independiente del sistema operativo.

KEEL

KEEL (Knowledge Extraction base don Evolutionary Learning) es una herramienta de motor de aprendizaje basado en Java que provee algoritmos para una variedad de tareas con Big Data. Es también de ayuda para determinar la efectividad de algoritmos para regresión, clasificación, clustering, minería de patrones y otras tareas de esta clase. Es independiente del sistema operativo.

Orange

Es una herramienta orientada a usuarios expertos e inexpertos. Ofrece herramientas de programación visual y de scripting Python para visualización y análisis de datos. Opera con Windows, Linux y OS X.

RapidMiner

Tiene un cuarto de millón de usuarios entre los que aparecen PayPal, Deloitte, eBay, Cisco y Volkswagen. Tiene una variedad de versiones libres y pagas. Las versiones open source libres sólo soportan datos en formatos CSV o Excel. Es independiente del sistema operativo.

Rattle

Rattle (R Analytical Tool To Learn Easily) ofrece una interfaz gráfica para el lenguaje de programación R. Simplifica el proceso de creación de sumarios de datos estadísticos o visuales, creando modelos y realizando transformaciones. Corre sobre Windows, Linux y OS X.

SPMF

Es un contexto que incluye 93 algoritmos para la minería secuencial de patrones, minería de reglas de asociación, minería configurada por ítems, minería secuencial reglada y clustering. Puede ser usada independientemente o incorporada en otros programas basados en Java. Es independiente del sistema operativo.

Weka

Weka (Waikato Environment for Knowledge Analysis) es un conjunto de algoritmos para máquinas de aprendizaje para minería de datos basado en java. Puede realizar pre-procesamiento de datos, clasificación, regresión, clustering, reglas de asociación y visualización. Corre sobre Windows, Linux y OS X.

 

Motores de Consulta

Drill

Este proyecto Apache permite que los usuarios realicen consultas sobre Hadoop, bases de datos NoSQL y servicios de almacenamientos cloud utilizando consultas con estructuras SQL. También puede ser utilizado para data mining y consultas ad hoc. Sooprta una amplia variedad de bases de datos, incluyendo a HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage y Swift. Sistemas operativos Windows, Linux y OS X.

 

Lenguajes de Programación

R

Al igual que el lenguaje S y su entorno, R fue diseñado para manejar computación estadística y gráficos. Incluye una suite integrada de herramientas para Big Data para manipulación, cálculo y visualización. Corre sobre Windows, Linux y OS X.

ECL

Enterprise Control Language es utilizado por desarrolladores en la creación de aplicaciones Big Data sobre la plataforma HPCC. Está disponible un IDE (Integrated Development Environment), junto con tutoriales y una variedad de herramientas relacionadas que permiten trabajar con el lenguaje. Se puede encontrar todo en el sitio Wb de HPCC Systems. Corre sobre Linux.

 

Búsqueda en Big Data

Lucene

La plataforma basada en Java Lucene realiza búsquedas full-text en forma muy veloz. Puede indexar más de 150 GB por hora sobre hardware actual e incluye algoritmos de búsqueda potentes y eficientes. Su desarrollo es patrocinado por Apache Software Foundation. Es independiente del sistema operativo.

Solr

Solr es una plataforma de búsqueda sólida y confiable basada en Apache Lucene, con un nivel empresarial muy escalable. Lo utilizan grandes empresas como Best Buy, Sears, AT&T, Netflix, Bloomberg y Travelocity. Es independiente del sistema operativo.

 

Tecnología In-Memory

Ignite

Este proyecto Apache consiste en una plataforma integrada y distribuida de computación in-memory para transacciones de conjuntos de datos a gran escala en tiempo real y es en órdenes de magnitud más rápida que cualquier otra posibilidad sobre tecnologías de discos duros o flash. La plataforma incluye capacidades de data grid, computación grid, servicios grid, streaming, aceleración de Hadoop, clustering avanzado, file system, mensajería, eventos y estructuras de datos. Es independiente del sistema operativo.

Terracota

Esta plataforma cuenta con más de dos millones de desarrolladores con su tecnología BigMemory para administración de datos in-memory. Existen dos millones y medio de implantaciones con su software. La compañía, además de la versión open source, ofrece versiones comerciales con soporte, consultoría y capacitación. Es independiente del sistema operativo.

Pivotal GemFire/Geode

Este año Pivotal anunció que abriría el código de componentes clave de su Big Data Suite, incluyendo a su base de datos NoSQL in-memory, GemFire. Ha presentado una propuesa a la Apache Software Foundation para que administre el motor central de GemFire bajo el nombre de Geode. Existe también una versión comercial del software. Opera con Windows y Linux.

GridGain

Es un fabric (tejido) de datos in-memory para veloz procesamiento de Big Data y un Acelerador Hadoop basado en la misma tecnología. Viene con una versión empresarial paga y otra edición comunitaria sin cargo, que incluye soporte básico también sin cargo. Sistemas operativos Windows, Linux y OS X.

Infinispan

Es un proyecto JBoss de Red Hat, basado en Java. Es un datagrid distribuido que funciona in-memory. Puede ser usado como caché, como base de datos NoSQL de alta performance o bien para agregar capacidades de clustering a otros frameworks. Es independiente del sistema operativo.