HBase의 장점, 단점 및 성능 병목 현상
HBase 아키텍처는 항상 "단일 실패 지점” 기능이 있으며 이와 관련된 예외 처리 메커니즘이 없습니다.
여기에서는 HBase의 장단점과 성능 병목 현상이 무엇인지 알아봅니다.
HBase의 성능 병목 현상
- 모든 프로덕션 환경에서 HBase는 5000개 이상의 노드 클러스터로 실행되고, Hmaster만이 모든 슬레이브 리전 서버에 대한 마스터 역할을 합니다. Hmaster가 다운되면 오랜 시간이 지난 후에야 복구할 수 있습니다. 클라이언트가 리전 서버에 연결할 수 있더라도 말입니다. 다른 마스터를 갖는 것은 가능하지만 하나만 활성화됩니다. 메인 Hmaster가 다운되면 두 번째 Hmaster를 활성화하는 데 오랜 시간이 걸립니다. 따라서 Hmaster는 성능 병목 현상입니다.
- HBase에서는 교차 데이터 작업 및 조인 작업을 구현할 수 없지만 다음을 사용하여 조인 작업을 구현할 수 있습니다. MapReduce, 설계 및 개발에 많은 시간이 소요될 것입니다. 테이블 조인 작업은 HBase에서 수행하기 어렵습니다. 일부 사용 사례에서는 HBase에 있는 테이블과 관련된 조인 작업을 만드는 것이 불가능합니다.
- RDBMS 외부 소스의 데이터를 HBase 서버로 마이그레이션하려면 HBase에 새로운 디자인이 필요합니다. 그러나 이 과정에는 많은 시간이 소요됩니다.
- HBase는 쿼리하기가 정말 어렵습니다. HBase를 일부와 통합해야 할 수도 있습니다. SQL 같은 레이어 아파치 HBase에서 데이터를 트리거하는 쿼리를 작성할 수 있는 phoenix. HBase 위에 Apache Phoenix를 두는 것은 정말 좋습니다.
- HBase의 또 다른 단점은 테이블에 둘 이상의 인덱싱을 가질 수 없으며 행 키 열만 기본 키로 작동한다는 것입니다. 따라서 두 개 이상의 필드를 검색하거나 Row key 이외의 필드를 검색하려는 경우 성능이 저하됩니다. 이 문제는 MapReduce 코드를 작성하고 아파치 SOLR 그리고 아파치 피닉스와 함께.
- 다양한 사용자가 HBase의 데이터에 액세스할 수 있도록 보안이 느리게 개선됩니다.
- HBase는 부분 키를 완전히 지원하지 않습니다.
- HBase는 테이블당 하나의 기본 정렬만 허용합니다.
- HBase에 대용량 바이너리 파일을 저장하는 것은 매우 어렵습니다.
- HBase의 저장으로 인해 실시간 쿼리 및 정렬이 제한됩니다.
- 키 값을 사용하여 테이블 내용을 검색하는 측면에서 키 조회 및 범위 조회는 실시간으로 수행되는 쿼리를 제한합니다.
- 기본 인덱싱은 HBase에 없습니다. 프로그래머는 HBase에서 인덱싱 기능을 수행하기 위해 여러 줄의 코드 또는 스크립트를 정의해야 합니다.
- 하드웨어 요구 사항 및 메모리 블록 할당 측면에서 비용이 많이 듭니다.
- 분산 클러스터 환경(NameNode, DataNode용 각 서버 등)의 경우 더 많은 서버를 설치해야 합니다. 주 키퍼및 지역 서버)
- 성능 면에서는 높은 메모리 머신이 필요합니다.
- 비용과 유지 관리 측면에서도 더 높습니다.
HBase의 장점
여기서는 HBase의 장점/이점이 무엇인지 알아봅니다.
- HDFS 파일 스토리지 위에 대용량 데이터 세트를 저장할 수 있으며 HBase 테이블에 있는 수십억 개의 행을 집계하고 분석합니다.
- HBase에서는 데이터베이스를 공유할 수 있습니다.
- Opera데이터 읽기 및 처리와 같은 작업은 기존 관계형 모델에 비해 시간이 적게 소요됩니다.
- 무작위 읽기 및 쓰기 작업
- 온라인 분석 작업에는 HBase가 광범위하게 사용됩니다.
- 예: ATM 기계의 실시간 데이터 업데이트와 같은 뱅킹 애플리케이션에서 HBase를 사용할 수 있습니다.
HBase의 단점
HBase의 중요한 단점/제한 사항은 다음과 같습니다.
- HBase를 기존 모델의 대체품으로 완전히 사용할 수는 없습니다. 기존 모델 기능 중 일부는 HBase에서 지원할 수 없습니다.
- HBase는 SQL과 같은 기능을 수행할 수 없습니다. SQL 구조를 지원하지 않으므로 쿼리 최적화 프로그램이 포함되어 있지 않습니다.
- HBase는 CPU와 메모리 집약적이며 대규모 순차적 입력 또는 출력 액세스가 있는 반면 Map Reduce 작업은 주로 고정 메모리로 입력 또는 출력이 바인딩됩니다. Map-reduce 작업과 통합된 HBase는 예측할 수 없는 대기 시간을 초래합니다.
- HBase는 pig와 통합되어 있으며 하이브 작업으로 인해 클러스터에서 시간 메모리 문제가 발생합니다.
- 공유 클러스터 환경에서는 HBase CPU 요구 사항에 할당하기 위해 노드당 더 적은 작업 슬롯이 필요합니다.

