Apache Pig en Hadoop sobre Cassandra - Chávez, Susana Beatriz (2017)
Los sistemas distribuidos en la web y las tecnologías informáticas distribuidas como cluster y cloud, permiten diseñar un entorno de entidades distribuidas que cooperen para resolver un problema que no puede ser resuelto individualmente. La variedad de estos sistemas pueden incluir servidores de aplicaciones, cloud privados, pequeños centros de datos y cluster para almacenamiento y búsqueda de datos. Esto explica por qué ha crecido enormemente la habilidad de recolectar y almacenar datos en las últimas décadas, incluso hoy en día, se pude decir que este apetito por los datos no muestra signos de satisfacción. Los científicos quieren ser capaces de almacenar más datos con el fin de construir mejores modelos matemáticos del mundo. Los vendedores quieren mejores datos para entender los deseos y hábitos de compra de sus clientes. Los analistas financieros quieren entender mejor el funcionamiento de sus mercados. Y todo el mundo quiere mantener todas sus fotografías, videos, correos electrónicos, etc. En consecuencia, es primordial encontrar la mejor solución para el procesamiento y análisis de esta gran escala de enormes cantidades de datos. En este sentido, un RDBMS como SQL Server o MySQL es una buena opción si el conjunto de datos de trabajo nunca va a crecer más allá de 40-50GB a lo largo de su vida útil. Incluso no necesitan ser distribuidos ya que pueden ser procesados en la memoria de una sola máquina. Sin embargo, si se construye una aplicación que tiene un conjunto de datos que crece rápidamente y ráfagas de cargas impredecibles, será necesario optar por una solución que sacrifique cierta velocidad o consistencia en pos de poder distribuirse y así procesar el gran volumen de datos. En los últimos años han surgido las bases de datos NoSQL que rompen una o más de las reglas de los sistemas de bases de datos relacionales. No esperan que los datos sean normalizados. En su lugar, los datos a los que accede una aplicación viven en una gran tabla, de modo que pocos o ningún joins son necesarios. Estos sistemas están diseñados para administrar terabytes de datos. A esto, se suma el desarrollo de muchos sistemas alternativos de procesamiento de datos como Apache Hadoop. Este proyecto ha impulsado el desarrollo de lenguajes existentes y la construcción de nuevas herramientas como Apache Pig. Esta herramienta proporciona un mayor nivel de abstracción para los usuarios de datos, dando acceso a la flexibilidad y potencia de Hadoop sin necesidad de tener que escribir extensas aplicaciones de procesamiento de datos en código Java de bajo nivel. Las bases de datos NoSql que se han integrado con Pig incluyen HBase, Accumulo y Cassandra. En este trabajo se propone realizar pruebas experimentales con Apache Pig sobre Apache Hadoop y como motor NoSql se elige Cassandra, ya que coincide muy bien con la naturaleza distribuida de Hadoop, para ejecutar consultas sobre datos que abarcan múltiples nodos.