Apache Hama es un marco de computación distribuida basado en técnicas de computación paralela síncrona masiva para cálculos científicos masivos, por ejemplo, algoritmos de matrices , grafos y redes . [ 1 ] Originalmente un subproyecto de Hadoop , [ 2 ] se convirtió en un proyecto de nivel superior de la Apache Software Foundation en 2012. Fue creado por Edward J. Yoon, [ 3 ] quien lo nombró (abreviatura de "Hadoop Matrix Algebra"), [ 4 ] y Hama también significa hipopótamo en el idioma coreano nativo de Yoon (하마), [ 5 ] siguiendo la tendencia de nombrar los proyectos de Apache en honor a animales y zoología (como Apache Pig ). Hama se inspiró en el marco de computación de grafos a gran escala Pregel de Google descrito en 2010. [ 6 ] Al ejecutar algoritmos de grafos, Hama mostró un aumento de rendimiento cincuenta veces en relación con Hadoop. [ 7 ]
Retirado en abril de 2020, [ 8 ] los recursos del proyecto están disponibles como parte de Apache Attic. Yoon citó problemas de instalación , escalabilidad y un modelo de programación difícil [ 9 ] como razones de su falta de adopción.
Arquitectura
Hama consta de tres componentes principales: BSPMaster, GroomServers y Zookeeper. [ 10 ]
BSPMaster
BSPMaster es responsable de:
- Manteniendo el estado del servidor de peluquería
- Controlar los pasos adicionales en un clúster
- Mantener actualizada la información sobre el progreso del trabajo.
- Programación de trabajos y asignación de tareas para el mantenimiento de servidores
- Difusión de la clase de ejecución a través de los servidores de novios
- Fallo de control
- Proporcionar a los usuarios la interfaz de control del clúster.
El script inicia un servidor maestro BSP y varios servidores de mantenimiento. A continuación, el servidor maestro BSP inicia un servidor RPC para los servidores de mantenimiento. Estos últimos inician una instancia de BSPPeer y un proxy RPC para comunicarse con el servidor maestro BSP. Una vez iniciado, cada servidor de mantenimiento envía periódicamente un mensaje de latido que incluye el estado del servidor, como la capacidad máxima de tareas, la memoria no utilizada, etc.
Cada vez que el maestro BSP recibe un mensaje de latido, actualiza el estado del servidor de mantenimiento. El maestro BSP utiliza el estado de los servidores de mantenimiento para asignar tareas a los servidores inactivos y devuelve una respuesta de latido con las tareas asignadas y otras acciones que debe realizar cada servidor. Actualmente, el maestro BSP cuenta con un planificador de tareas FIFO y algoritmos sencillos de asignación de tareas.
GroomServer
Un servidor de mantenimiento (o simplemente "manejo") es un proceso que ejecuta las tareas BSP asignadas por BSPMaster. Cada servidor de mantenimiento se comunica con BSPMaster, recibe las tareas asignadas e informa de su estado mediante comunicaciones periódicas con BSPMaster. Cada servidor de mantenimiento está diseñado para ejecutarse con HDFS u otros sistemas de almacenamiento distribuido. Básicamente, un servidor de mantenimiento y un nodo de datos deben ejecutarse en un mismo nodo físico.
cuidador de animales
Zookeeper se utiliza para gestionar la sincronización eficiente de barreras de los BSPPeers.
Véase también
Referencias
- ↑ "Apache Hama" . Sitio web del proyecto . Consultado el 20 de septiembre de 2013 .
- ↑ Seo, Sangwon; Yoon, Edward (2010). Hama: Un cálculo matricial eficiente con el marco mapreduce (PDF) . 2010 IEEE Second International Conference on Cloud Computing Technology and Science. IEEE .
- ↑ Propuesta de Apache Hama
- ↑ Di, Liping (24 de julio de 2023). Teledetección y macrodatos . Springer Nature . pág. 180. ISBN 9783031339325.
- ↑ «하마 - 위키낱말사전» . ko.wiktionary.org (en coreano) . Consultado el 21 de febrero de 2019 .
- ↑ Grzegorz Malewicz; Matthew H. Austern; Aart JC Bik; James C. Dehnert; Ilan Horn; Naty Leiser; Grzegorz Czajkowski (2010). «Pregel: un sistema para el procesamiento de grafos a gran escala». Actas de la Conferencia Internacional ACM SIGMOD 2010 sobre Gestión de datos . págs. 135–146 . doi : 10.1145/1807167.1807184 . ISBN 9781450300322.
- ↑ Elser, Benedikt; Montresor, Alberto (2013). Un estudio de evaluación de marcos de Big Data para el procesamiento de grafos (PDF) . Conferencia Internacional IEEE de 2013 sobre Big Data. IEEE .
- ↑ Apache Hama - Ático Apache
- ↑ Jungblut, Thomas; Yoon, Edward; Lin, Chia-Hung Lin (14 de noviembre de 2020). "Apache Hama: por qué no tuvo éxito" . thomasjungblut.com . Consultado el 14 de diciembre de 2023 .
- ↑ Arquitectura Apache Hama
Enlaces externos
- Sitio web de Apache Hama
- Blog de Apache Hama
- Proyectos de la Apache Software Foundation
- Software libre programado en Java.
- computación en la nube
- Infraestructura en la nube
- Software que utiliza la licencia Apache.