Apache Hama
| 개발자 | 아파치 소프트웨어 재단 |
|---|---|
| 미리보기 버전 | 0.7.1
/ 2016년 3월 14일 |
| 저장소 | Hama 저장소 |
| 프로그래밍 언어 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 종류 | 분산 컴퓨팅, 벌크 동기 병렬 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | hama |
Apache Hama는 행렬, 그래프 알고리즘, 네트워크 알고리즘과 같은 대규모 과학적 계산을 위한 벌크 동기 병렬 컴퓨팅 기법 기반의 분산 컴퓨팅 프레임워크이다.[1] 원래 하둡의 하위 프로젝트였으나,[2] 2012년에 아파치 소프트웨어 재단의 최상위 프로젝트가 되었다. 이 프로젝트는 에드워드 J. 윤(Edward J. Yoon)이 만들었으며,[3] 명칭은 "Hadoop Matrix Algebra"의 약자이다.[4] 또한 하마(Hama)는 윤 씨의 모국어인 한국어로 하마를 뜻하기도 하는데,[5] 이는 아파치 프로젝트의 이름을 동물이나 동물학 관련 용어(예: 아파치 피그)로 짓는 관례를 따른 것이다. Hama는 2010년에 발표된 구글의 대규모 그래프 컴퓨팅 프레임워크인 Pregel에서 영감을 받았다.[6] 그래프 알고리즘을 실행할 때 Hama는 하둡보다 50배 높은 성능 향상을 보였다.[7]
2020년 4월에 은퇴하였으며,[8] 프로젝트 자원은 아파치 애틱(Apache Attic)의 일부로 제공된다. 윤 씨는 도입이 저조했던 이유로 인스톨레이션, 확장성, 그리고 어려운 API 프로그래밍 모델을 꼽았다.[9]
아키텍처
Hama는 세 가지 주요 구성 요소인 BSPMaster, GroomServers, Zookeeper로 이루어져 있다.[10]
BSPMaster
BSPMaster는 다음의 역할을 담당한다:
- 그룸 서버(groom server) 상태 유지
- 클러스터 내 슈퍼스텝 제어
- 작업 진행 정보 유지
- 작업 스케줄링 및 그룸 서버에 태스크 할당
- 그룸 서버 간 실행 클래스 배포
- 결함 제어
- 사용자에게 클러스터 제어 인터페이스 제공
BSP 마스터와 다수의 그룸은 스크립트에 의해 시작된다. 이후 BSP 마스터는 그룸 서버를 위한 RPC 서버와 함께 시작된다. 그룸 서버는 BSPPeer 인스턴스와 BSP 마스터에 연결하기 위한 RPC 프록시로 시작된다. 시작 후, 각 그룸은 최대 태스크 용량, 사용되지 않은 메모리 등을 포함한 그룸 서버 상태를 담은 하트비트 메시지를 주기적으로 전송한다.
BSP 마스터는 하트비트 메시지를 수신할 때마다 그룸 서버의 상태를 최신으로 유지한다. BSP 마스터는 그룸 서버의 상태를 활용하여 유휴 상태인 그룸 서버에 태스크를 할당하며, 할당된 태스크 및 기타 수행할 작업을 포함한 하트비트 응답을 그룸 서버에 반환한다. 현재 BSP 마스터는 FIFO 작업 스케줄러와 간단한 태스크 할당 알고리즘을 사용한다.
GroomServer
그룸 서버(약칭 그룸)는 BSPMaster에 의해 할당된 BSP 태스크를 수행하는 프로세스이다. 각 그룸은 BSPMaster에 연결하여 할당된 태스크를 가져오고, 주기적인 피기백(piggyback)을 통해 상태를 보고한다. 각 그룸은 HDFS나 다른 분산 저장소에서 실행되도록 설계되었다. 기본적으로 그룸 서버와 데이터 노드는 하나의 물리적 노드에서 실행되어야 한다.
Zookeeper
주키퍼(Zookeeper)는 BSPPeer들의 효율적인 장벽 동기화(barrier synchronisation)를 관리하는 데 사용된다.
같이 보기
각주
- ↑ “Apache Hama”. 《Project web site》. 2013년 9월 20일에 확인함.
- ↑ Seo, Sangwon; Yoon, Edward (2010). 《Hama: An efficient matrix computation with the mapreduce framework》 (PDF). 2010 IEEE Second International Conference on Cloud Computing Technology and Science. IEEE.
- ↑ Apache Hama Proposal
- ↑ Di, Liping (2023년 7월 24일). 《Remote Sensing Big Data》. 스프링거 네이처. 180쪽. ISBN 9783031339325.
- ↑ “하마 - 위키낱말사전”. 《ko.wiktionary.org》. 2019년 2월 21일에 확인함.
- ↑ Grzegorz Malewicz; Matthew H. Austern; Aart J.C Bik; James C. Dehnert; Ilan Horn; Naty Leiser; Grzegorz Czajkowski (2010). 〈Pregel: a system for large-scale graph processing〉. 《Proceedings of the 2010 ACM SIGMOD International Conference on Management of data》. 135–146쪽. doi:10.1145/1807167.1807184. ISBN 9781450300322.
- ↑ Elser, Benedikt; Montresor, Alberto (2013). 《An Evaluation Study of BigData Frameworks for Graph Processing》 (PDF). 2013 IEEE International Conference on Big Data. IEEE.
- ↑ Apache Hama - Apache Attic
- ↑ Jungblut, Thomas; Yoon, Edward; Lin, Chia-Hung Lin (2020년 11월 14일). “Apache Hama - why it didn't become successful”. 《thomasjungblut.com》. 2023년 12월 14일에 확인함.
- ↑ Apache Hama Architecture
외부 링크
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.