Jump to content

Apache Hama

From Alfawiki
Adapted from the English Wikipedia article Apache Hama, available under CC BY-SA 4.0Updated 9 August 2025
Apache Hama
Company typeOpen source software project
IndustryDistributed computing, Cloud infrastructure
Founded2012
FounderEdward J. Yoon
DefunctApril 2020
FateRetired, assets transferred to Apache Attic
ProductsDistributed computing platform utilizing bulk synchronous parallel methodology
Websitehama.apache.org

Apache Hama is a distributed computing platform utilizing bulk synchronous parallel methodology, designed for extensive scientific calculations involving matrices, graphs, and network algorithms. Initially developed as a sub-project under Hadoop, it was elevated to an Apache Software Foundation top-level project in 2012. The framework was developed by Edward J. Yoon, who coined the name as a contraction of "Hadoop Matrix Algebra" and also drew inspiration from the Korean term for hippopotamus (하마). Following Apache's tradition of animal-inspired project names such as Apache Pig, Hama's design was influenced by Google's Pregel graph processing system introduced in 2010. Performance benchmarks revealed that Hama could outperform Hadoop by as much as fifty times when running graph algorithms.

The initiative was officially retired in April 2020, with its assets transferred to the Apache Attic. Yoon cited factors like the complexity of installation, constraints on scalability, and a challenging programming paradigm as reasons behind its limited widespread use.

Architecture

Hama's architecture consists of three core elements: BSPMaster, GroomServers, and Zookeeper.

BSPMaster

The BSPMaster component oversees the status of groom servers, directs supersteps within the cluster, monitors job execution progress, schedules tasks, allocates workloads to groom servers, manages fault tolerance, and provides the cluster control interface. It runs an RPC server to facilitate communication with groom servers that host BSPPeer processes and periodically send heartbeat signals containing information such as task capacity and memory usage. BSPMaster updates server information upon receiving these heartbeats and distributes tasks using a FIFO job scheduling approach combined with straightforward task assignment techniques.

GroomServer

GroomServers are responsible for carrying out BSP tasks assigned by BSPMaster. They maintain continuous communication with BSPMaster to obtain new assignments and report their operational status. Typically deployed on the same physical machines as data nodes, groom servers are compatible with HDFS or alternative distributed storage systems.

Zookeeper

Zookeeper is employed to enable effective barrier synchronization among BSPPeers.

See also

External links