Разработчик | Apache Software Foundation |
---|---|
Предварительный выпуск | 0.7.1 / 14 марта 2016 г.; 4 года назад (2016-03-14) |
Репозиторий | Репозиторий Хама |
Написано на | Java |
Операционная система | Кросс-платформенная |
Тип | Распределенные вычисления, массовая синхронная параллельная |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | hama.apache.org |
Apache Hama - это среда распределенных вычислений на основе по методам массовых синхронных параллельных вычислений для массовых научных вычислений, например, матричных, графических и сетевых алгоритмов. Это проект верхнего уровня в рамках Apache Software Foundation. Он был создан Эдвардом Дж. Юном, который назвал его (сокращение от «Hadoop Matrix») и был вдохновлен платформой для крупномасштабных графических вычислений Pregel от Google, описанной в 2010 году. Хама также означает hippopotamus на корейском языке (하마), следуя тенденции называть проекты Apache именами животных и зоологии (например, Apache Pig ).
Hama состоит из трех основных компонентов: BSPMaster, GroomServers и Zookeeper.
BSPMaster отвечает за:
Мастер BSP и несколько groom запускаются сценарием. Затем мастер bsp запускает сервер RPC для серверов очистки. Серверы Groom запускаются с экземпляром BSPPeer и прокси RPC для связи с мастером bsp. После запуска каждый groom периодически отправляет контрольное сообщение, в котором указывается состояние его сервера groom, включая максимальную емкость задачи, неиспользуемую память и так далее.
Каждый раз, когда мастер BSP получает контрольное сообщение, он обновляет статус сервера groom - мастер bsp использует статус серверов groom, чтобы эффективно назначать задачи бездействующим серверам groom - и возвращает ответ пульса, который содержит назначенные задачи и другие действия, которые должен выполнить сервер очистки. На данный момент у нас есть планировщик заданий FIFO и очень простые алгоритмы назначения задач.
Сервер очистки (сокращенно называемый groom) - это процесс, который выполняет задачи BSP, назначенные BSPMaster. Каждый клиент связывается с BSPMaster, и он берет на себя поставленные задачи и сообщает о своем статусе с помощью периодических совмещений с BSPMaster. Каждый groom разработан для работы с HDFS или другими распределенными хранилищами. По сути, сервер очистки и узел данных должны работать на одном физическом узле.
Zookeeper используется для управления эффективной барьерной синхронизацией BSPPeers.