FotoReportaje - Galería de fotos

18 herramientas de Hadoop para procesar Big Data

Sacar el máximo partido de esta plataforma de MapReduce significa dominar un ecosistema vibrante de código en rápida evolución.

  • Hadoop ha crecido hasta representar mucho más que una pila pequeña de código para difundir el trabajo de un grupo de equipos. Este núcleo resultó ser tan útil que una gran colección de proyectos orbita ahora alrededor de él. Algunos ofrecen limpieza de datos, otros monitorean el progreso, y algunos entregan el almacenamiento sofisticado de datos.

    La comunidad Hadoop está evolucionando rápidamente para incluir a las empresas que ofrecen servicios de apoyo, alquilar tiempo en clústeres gestionados, construir mejoras sofisticadas para el núcleo de código abierto, o añadir sus propias herramientas a la mezcla.

    He aquí un vistazo a las piezas más destacadas del actual ecosistema de Hadoop. Lo que aparece aquí es una fundación de herramientas y código que se ejecuta en conjunto bajo el título colectivo de "Hadoop".

    Peter Wayner, InfoWorld (EE.UU.); Crédito Foto: Alexandr Mitiuc

  • Hadoop

    Mientras que muchos se refieren a toda la constelación de herramientas de mapeo y reducción como Hadoop, todavía hay una pequeña pila de código en el centro conocido como Hadoop. El código basado en Java sincroniza nodos de trabajo en la ejecución de una función de los datos almacenados localmente. Los resultados de estos nodos de trabajo se agregan y son reportados. El primer paso es conocido como "mapa", y el segundo, "reducción".

    Hadoop ofrece una abstracción fina sobre el almacenamiento local y la sincronización de datos, permitiendo que los programadores se concentren en la escritura de código para analizar los datos. Hadoop se encarga del resto. El trabajo es dividido y programado por Hadoop. Se espera que haya errores o fallas, y Hadoop está diseñado para evitar fallas por máquinas individuales.

    El código se distribuye bajo la licencia Apache.

    Peter Wayner, InfoWorld (EE.UU.)

  • Ambari

    La creación de un cluster Hadoop implica mucho trabajo repetitivo. Ambari ofrece una interfase gráfica de usuario basada en la web con scripts del asistente para la creación de grupos con la mayoría de los componentes estándar. Una vez que tenga a Ambari en funcionamiento, le ayudará a disponer, administrar y supervisar un conjunto de puestos de trabajo Hadoop. La imagen de la izquierda muestra una de las pantallas después de la puesta en marcha de un clúster. Ambari es un proyecto de incubadora a Apache y es soportado por Hortonworks.

    Peter Wayner, InfoWorld (EE.UU.)

  • HDFS (Hadoop Distributed File System)

    El sistema de archivos distribuido Hadoop ofrece un marco básico para la división de colecciones de datos entre varios nodos al utilizar la replicación para recuperarse de la falla del nodo. Los archivos grandes se dividen en bloques, y varios nodos pueden contener todos los bloques de un archivo. La imagen de la documentación de Apache, a la izquierda, muestra cómo los bloques se distribuyen a través de múltiples nodos.

    El sistema de archivos está diseñado para mezclar la tolerancia a fallas con un alto rendimiento. Se cargan los bloques para mantener la transmisión constante y generalmente no se almacenan en memoria caché para minimizar la latencia. El modelo por defecto imagina largos trabajos de procesamiento de gran cantidad de datos almacenados localmente. Esto encaja con el lema del proyecto que dice "la computación móvil es más barata que los datos en movimiento".

    El HDFS también se distribuye bajo la licencia Apache.

    Peter Wayner, InfoWorld (EE.UU.)

  • HBase

    Cuando los datos caen en una gran tabla, HBase la almacenará, buscará, y automáticamente compartirá la tabla a través de múltiples nodos para que el trabajo de MapReduce se ejecute localmente. Las miles de millones de filas de datos entran, y luego las versiones locales de los puestos de trabajo pueden consultarlas.

    El código no ofrece las garantías completas ACID de las bases de datos con todas las funciones, pero sí ofrece una garantía limitada para algunos cambios locales. Todas las mutaciones en una sola fila tendrán éxito o fallarán juntas.

    La imagen de la izquierda muestra una captura de pantalla de HareDB, un cliente GUI para trabajar con HBase.

    Peter Wayner, InfoWorld (EE.UU.)

  • Hive

    Tener los datos en el clúster es solo el comienzo de la diversión. Hive, distribuido por el proyecto Apache, está diseñado para regularizar el proceso de extracción de los bits de todos los archivos en HBase. Ofrece un lenguaje similar a SQL que bucea en los archivos y extrae los fragmentos que su código necesita. Los datos llegan en formatos estándar y Hive los convierte en un algo que se puede buscar.

    La imagen de la izquierda muestra un fragmento de código de Hive para la creación de una tabla, agregar datos y seleccionar información.

    Peter Wayner, InfoWorld (EE.UU.)

  • Sqoop

    Conseguir el tesoro de los datos almacenados en bases de datos SQL en Hadoop requiere un poco de manipulación y masajes. Sqoop mueve grandes mesas llenas de información de las bases de datos tradicionales y controla herramientas como Hive o HBase.

    Sqoop es una herramienta de línea de comandos que controla la asignación entre las tablas y la capa de almacenamiento de datos, traduce las tablas en una combinación configurable para HDFS, HBase o Hive. La imagen de la literatura Apache, a la izquierda, muestra a Sqoop en medio de los depósitos tradicionales y las estructuras de Hadoop que viven en el nodo.

    La última versión estable es 1.4.4, pero la versión 2.0 está progresando bien. Ambas están disponibles en http://sqoop.apache.org/ bajo la licencia Apache.

    Peter Wayner, InfoWorld (EE.UU.)

  • Pig

    Una vez que los datos se almacenan en nodos de una manera en que Hadoop pueda encontrarlo, empieza la diversión. Pig de Apache ara a través de los datos, ejecuta un código escrito en un lenguaje propio, llamado Pig Latin, lleno de abstracciones para la manipulación de los datos. Esta estructura dirige a los usuarios hacia algoritmos que son fáciles de ejecutar en paralelo a través del clúster.

    Pig viene con funciones estándar para tareas comunes como sacar un promedio de los datos, trabajar con fechas, o buscar diferencias entre las cadenas. Cuando ello no sea suficiente -ya que a menudo no lo es- puede escribir sus propias funciones. La imagen de la izquierda muestra un elaborado ejemplo de la documentación de Apache sobre cómo usted puede mezclar su propio código con el de Pig para minar los datos.

    Peter Wayner, InfoWorld (EE.UU.)

  • ZooKeeper

    Una vez que Hadoop se ejecuta en más de un par de máquinas, tiene sentido ordenar el clúster, especialmente cuando algunas de las máquinas comienzan a revisarlo.

    ZooKeeper impone una jerarquía similar a los sistemas de archivos del clúster y almacena todos los metadatos de las máquinas para que pueda sincronizar el trabajo de las diferentes entidades. (La imagen de la izquierda muestra un racimo simple de dos niveles). La documentación muestra cómo implementar muchas de las técnicas estándar de procesamiento de datos, tales como colas producidas por los consumidores que hacen que los datos se corten, limpien, tamicen y clasifiquen en el orden correcto. Los nodos utilizan ZooKeeper para avisarse el uno al otro cuando están listos para que los demás puedan poner en marcha los datos.

    Peter Wayner, InfoWorld (EE.UU.)

  • NoSQL

    No todos los grupos utilizan Hadoop HBase o HDFS. Algunos se integran con los almacenes de datos NoSQL que vienen con sus propios mecanismos para el almacenamiento de datos a través de un conjunto de nodos. Esto les permite almacenar y recuperar datos con todas las características de la base de datos NoSQL y luego utilizar Hadoop para programar trabajos de análisis de datos en el mismo clúster.

    Por lo general esto significa Cassandra, Riak, o MongoDB, y los usuarios exploran activamente la mejor forma de integrar las dos tecnologías. 10gen, uno de los principales partidarios de MongoDB, por ejemplo, sugiere que Hadoop se puede utilizar para el análisis fuera de línea, mientras que MongoDB puede reunir estadísticas de la web en tiempo real. La ilustración de la izquierda muestra cómo un conector puede migrar datos entre los dos.

    Peter Wayner, InfoWorld (EE.UU.)

  • Mahout

    Hay un gran número de algoritmos para el análisis, clasificación y filtrado de datos, y Mahout -distribuido bajo licencia Apache- es un proyecto diseñado para que las implementaciones de estos clusters de Hadoop. Muchos de los algoritmos estándar, tales como K-Means, Dirichelet, patrón paralelo y la clasificación Bayessian, están listos para funcionar en sus datos con mapeo y reducción al estilo de Hadoop.

    La imagen de la izquierda muestra el resultado de un algoritmo de dosel-agrupación que elige puntos y radios para cubrir la colección de puntos. Es solo una de las varias herramientas de análisis de datos integradas en Hadoop.

    Peter Wayner, InfoWorld (EE.UU.)

  • Lucene/Solr

    No hay sino una herramienta para la indexación de grandes bloques de texto no estructurado, y es un socio natural para Hadoop. Escrita en Java, Lucene se integra fácilmente con Hadoop, creando una gran herramienta para la gestión de textos distribuidos. Lucene se encarga de la indexación; Hadoop distribuye las consultas a través del clúster.

    Las nuevas características Lucene-Hadoop están evolucionando rápidamente a medida que aparecen nuevos proyectos. Katta, por ejemplo, es una versión de Lucene que se fragmenta automáticamente en un clúster. Solr ofrece soluciones más integradas para clustering dinámico con la capacidad de analizar los formatos de archivo estándar como XML. La ilustración muestra a Luke, una interfase gráfica para navegar sobre las imágenes de Lucene. Ahora cuenta con un plug-in para navegar por los índices en un cluster Hadoop.

    Lucene y muchos de sus descendientes son parte del proyecto Apache.

    Peter Wayner, InfoWorld (EE.UU.)

  • Avro

    Cuando los trabajos de Hadoop necesitan compartir datos, se puede utilizar cualquier base de datos. Avro es un sistema de serialización que agrupa los datos junto con un esquema para entenderlo. Cada paquete viene con una estructura de datos JSON que explica cómo se pueden analizar los datos. Este encabezado especifica la estructura de los datos hasta la parte superior, evitando la necesidad de escribir las etiquetas adicionales en los datos para marcar los campos. El resultado puede ser considerablemente más compacto que los formatos tradicionales, como XML o JSON, cuando los datos son regulares.

    La ilustración muestra un esquema Avro para un archivo con tres campos diferentes: nombre, número favorito, y color favorito. Avro es otro proyecto Apache con las API y el código en Java, C + +, Python y otros idiomas.

    Peter Wayner, InfoWorld (EE.UU.)

  • Oozie

    Romper un trabajo en pasos simplifica todo. Si rompes tu proyecto en varios trabajos de Hadoop, Oozie, protegido por la licencia de Apache, está listo para comenzar en la secuencia correcta. No tendrá que cuidar la pila, a la espera que un puesto de trabajo finalice antes de iniciar otro. Oozie gestiona un flujo de trabajo especificado como un DAG (gráfico a cíclico dirigido por sus siglas en inglés). (Los gráficos cíclicos son bucles sin fin, y son trampas para las computadoras). Solo programe Oozie DAG y vaya a almorzar. La imagen de la izquierda muestra un diagrama de flujo de la documentación de Oozie.

    Peter Wayner, InfoWorld (EE.UU.)

  • GIS Tools

    El mundo es un lugar muy grande y trabajar con mapas geográficos es un gran trabajo para clusters que ejecutan Hadoop. Las herramientas GIS (Sistemas de Información Geográfica, por sus siglas en inglés) para el proyecto Hadoop han adaptado algunas de las mejores herramientas basadas en Java para la comprensión de la información geográfica con el fin de que se ejecute en Hadoop. Sus bases de datos pueden manejar consultas geográficas mediante coordenadas en lugar de cadenas. El código puede desplegar las herramientas GIS para calcular en tres dimensiones. La parte más difícil es averiguar cuando la palabra "mapa" se refiere a una cosa plana que representa el mundo y cuando "mapa" se refiere al primer paso de un trabajo Hadoop. La imagen de la izquierda muestra varios niveles de las herramientas desde la documentación.

    Peter Wayner, InfoWorld (EE.UU.)

  • Flume

    La recopilación de todos los datos a menudo es tan trabajosa como analizarla o almacenarla. Flume es un proyecto de Apache que despacha "agentes" para que recojan información que se almacena en el HDFS. Un agente podría estar recogiendo los archivos de registro, llamando a la API de Twitter, o raspando un sitio web. Estos agentes son provocados por los acontecimientos y se pueden encadenar. Luego los datos están listos para su análisis.

    Peter Wayner, InfoWorld (EE.UU.)

  • SQL en Hadoop

    Si desea ejecutar una consulta rápida ad-hoc de todos esos datos que se sientan en su gran clúster, podría escribir un nuevo trabajo Hadoop que podría tomar un poco más de tiempo. Después de que los programadores comenzaron a hacer esto muy a menudo, empezaron suspirando por las antiguas bases de datos SQL, lo que podría responder a las preguntas cuando se plantean el relativamente simple lenguaje de SQL. Rascaron esa herida, y ahora hay una serie de herramientas que surgen de diversas empresas. Todas ofrecen un camino más rápido a las respuestas.

    Algunas de las más notables incluyen: HAWQ, Impalla, Drill, Stinger, y Tajo. Hay casi suficiente para otra presentación.

    Peter Wayner, InfoWorld (EE.UU.)

  • Clouds

    Muchas de las plataformas en la nube están luchando para atraer empleos de Hadoop, ya que pueden ser un paso natural para el modelo de negocio flexible que alquila las máquinas a cada minuto. Las empresas pueden girar miles de máquinas para crujir un gran sistema en un corto período de tiempo en lugar de comprar bastidores permanentes de las máquinas que se tomen días o incluso semanas para hacer el mismo cálculo. Algunas compañías, como Amazon, están agregando una capa adicional de abstracción al aceptar solo el archivo JAR lleno de rutinas de software. Todo lo demás está configurado y programado por la nube. La imagen de la izquierda muestra algunas computadoras del Flickr de Martin Abegglen.

    Peter Wayner, InfoWorld (EE.UU.)

  • Spark

    El futuro ya está llegando. Para algunos algoritmos, Hadoop puede ser lento, ya que generalmente se basa en los datos almacenados en el disco. Eso es aceptable cuando se están procesando archivos de registro que solo se leen una vez, pero toda esa carga puede ser un trabajo duro cuando se está accediendo a los datos una y otra vez, como es común en algunos programas de inteligencia artificial. Spark es la próxima generación. Funciona como Hadoop, pero con los datos que se almacenan en el caché en la memoria. La ilustración de la izquierda, desde la documentación de Apache, muestra lo mucho más rápido que se puede ejecutar en las situaciones adecuadas.

    Peter Wayner, InfoWorld (EE.UU.)

Llegamos a ustedes gracias a:

FOTO REPORTAJES

Más »
12 utilidades que le pueden dar más control sobre su PC

12 utilidades que le pueden dar más control sobre su PC

Monitoree y gestione todos los aspectos de su PC de Windows.
Primer vistazo: Samsung Galaxy S8

Primer vistazo: Samsung Galaxy S8

Samsung ha lanzado su nuevo teléfono inteligente Android, su buque insignia, el Galaxy S8 -dele un vistazo.
Muy buenas aplicaciones de Google que no sabía que necesitaba

Muy buenas aplicaciones de Google que no sabía que necesitaba

Todos los teléfonos Android vienen con un grupo de aplicaciones preinstaladas de Google, pero éstas las tendrá que descargar de Google Play.
8 herramientas de prueba para desarrolladores de aplicaciones móviles

8 herramientas de prueba para desarrolladores de aplicaciones móviles

Están surgiendo herramientas y servicios de nube para ayudarle a que sus aplicaciones operen sin problemas en todos los dispositivos.