문제
최근에 출시된 (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive는 성능 측면에서 HBase와 비교됩니다.Hive에서 사용하는 SQL과 유사한 인터페이스는 우리가 구현한 HBase API보다 훨씬 더 좋습니다.
해결책
Hive에 대해 많은 것을 찾기가 어렵지만 이것을 찾았습니다. 단편 HBase를 선호하는 Hive 사이트(굵게 추가됨):
Hive는 일괄 처리 시스템인 Hadoop을 기반으로 합니다.따라서 이 시스템은 그렇지 않습니다. 쿼리에 대한 낮은 지연 시간을 약속할 수 없습니다..여기서의 패러다임은 엄격하게 작업을 제출하고 실시간 쿼리와 달리 작업이 완료되면 알림을 받는 것입니다.결과적으로 훨씬 적은 양의 데이터에 대해 분석이 수행되지만 반복 간 응답 시간이 몇 분 미만으로 분석이 훨씬 더 반복적으로 진행되는 Oracle과 같은 시스템과 비교해서는 안됩니다. Hive 쿼리의 경우 가장 작은 작업에 대한 응답 시간은 5~10분 정도일 수 있으며 대규모 작업의 경우 몇 시간까지 걸릴 수도 있습니다.
HBase와 HyperTable은 모두 성능에 관한 것이므로(Google의 BigTable을 모델로 함) 기능을 희생하고 학습 곡선이 더 높다는 점에서(예: 조인이나 SQL이 없음) 확실히 Hive보다 훨씬 빠른 것처럼 들립니다. -같은 구문).
다른 팁
어떤 관점에서 보면 Hive는 다섯 가지 주요 구성 요소로 구성됩니다.SQL과 유사한 문법 및 파서, 쿼리 플래너, 쿼리 실행 엔진, 메타데이터 저장소 및 열 형식 스토리지 레이아웃입니다.주요 초점은 데이터 웨어하우스 스타일의 분석 워크로드이므로 키별로 짧은 대기 시간으로 값을 검색할 필요가 없습니다.
HBase에는 자체 메타데이터 저장소와 열 형식 스토리지 레이아웃이 있습니다.HBase 테이블을 통해 HiveQL 쿼리를 작성할 수 있으므로 HBase가 Hive의 문법과 파서, 쿼리 플래너 및 쿼리 실행 엔진을 활용할 수 있습니다.보다 http://wiki.apache.org/hadoop/Hive/HBaseIntegration 상세 사항은.
Hive는 분석 도구입니다.pig와 마찬가지로 맵 축소를 활용하여 잠재적으로 엄청난 양의 데이터를 임시 일괄 처리하도록 설계되었습니다.테라바이트를 생각해 보세요.관계형 데이터베이스에서 그런 일을 한다고 상상해 보세요...
HBase는 BigTable을 기반으로 하는 컬럼 기반 키 값 저장소입니다.HBase를 통해 맵 축소 작업을 실행할 수는 있지만 쿼리 자체를 수행할 수는 없습니다.주요 사용 사례는 키별로 행을 가져오거나 행 범위를 검색하는 것입니다.주요 기능은 열 '패밀리'에 대한 행 키 범위를 검색할 때 데이터 지역성을 가질 수 있다는 것입니다.
내가 아는 바로는 Hive가 Pig에 더 가깝습니다.Hive는 SQL과 유사하고 Pig는 스크립트 기반입니다.Hive는 쿼리 최적화 및 실행 엔진으로 인해 더 복잡한 것으로 보이며 최종 사용자가 스키마 매개변수(파티션 등)를 지정해야 합니다.둘 다 텍스트 파일 또는 시퀀스 파일을 처리하려고 합니다.
HBase는 키 값 데이터 저장 및 검색을 위한 것입니다. 해당 키 값 쌍(행)을 스캔하거나 필터링할 수 있습니다.(키, 값) 행에 대해서는 쿼리를 수행할 수 없습니다.
최신 Hive 릴리스에서는 다음과 같이 작은 업데이트가 필요한 많은 사항이 변경되었습니다. 이제 Hive와 HBase가 통합되었습니다..이것이 의미하는 바는 Hive를 HBase 데이터 저장소에 대한 쿼리 계층으로 사용할 수 있다는 것입니다.이제 사람들이 대체 HBase 인터페이스를 찾고 있다면 Pig는 정말 좋은 방법도 제공합니다. HBase 데이터 로드 및 저장.게다가, 그것은 다음과 같습니다 클라우데라 임팔라 HBase를 기반으로 상당한 성능의 Hive 기반 쿼리를 제공할 수 있습니다.기존 Hive 설정에 비해 쿼리 속도가 최대 45배 더 빠르다고 주장됩니다.
Hive와 HBase는 서로 다른 용도로 사용됩니다. 목적.
하이브:
장점:
- 아파치 하이브 는 데이터 웨어하우스 인프라 위에 세워진 하둡.
- 저장된 데이터를 쿼리할 수 있습니다. HDFS 분석을 위해 HQL, SQL과 유사한 언어, 이는 일련의로 변환됩니다. 지도 축소 작업
- 실행만 됩니다 일괄 프로세스 하둡에서.
- 그것은 JDBC 호환, 기존 SQL 기반 도구와도 통합됩니다.
- 하이브 지원 파티션
- 지원합니다 데이터의 분석적 쿼리 일정 기간 동안 수집된
단점:
- 현재 업데이트 문을 지원하지 않습니다.
- 파일과 디렉터리를 열에 매핑하기 위해 사전 정의된 스키마가 제공되어야 합니다.
H베이스:
장점:
- 확장 가능한, 분산 데이터베이스 대규모 테이블에 대한 구조화된 데이터 스토리지를 지원하는
- 그것은 제공한다 무작위, 실시간 읽기/쓰기 액세스 당신의 빅데이터에.HBase 작업은 MapReduce 작업이 아닌 데이터베이스에서 실시간으로 실행됩니다.
- 그것은 지원한다 파티션 테이블로, 테이블은 열 그룹으로 추가로 분할됩니다.
- 수평으로 확장 Hadoop을 활용해 엄청난 양의 데이터를
- 저장하거나 검색할 때 데이터에 대한 키 기반 액세스를 제공합니다.그것 추가 또는 업데이트 지원 행.
- 지원 버슨 데이터.
단점:
- HBase 쿼리는 학습이 필요한 사용자 정의 언어로 작성됩니다.
- HBase는 ACID를 완전히 준수하지 않습니다.
- 복잡한 액세스 패턴(예: 조인)에는 사용할 수 없습니다.
- 또한 대규모 배치 MapReduce를 수행할 때 HDFS를 완전히 대체할 수는 없습니다.
요약:
Hive는 분석 쿼리에 사용할 수 있고 HBase는 실시간 쿼리에 사용할 수 있습니다.데이터는 Hive에서 HBase로 읽고 다시 쓸 수도 있습니다.
Hive와 Hbase를 비교하기 위해 아래 정의를 기억하고 싶습니다.
트랜잭션을 처리하도록 설계된 데이터베이스는 분석을 처리하도록 설계되지 않았습니다.분석을 잘 할 수 있는 구조가 아닙니다.반면에 데이터웨어 하우스는 분석을 빠르고 쉽게 만들 수 있도록 구성되어 있습니다.
Hive는 장기 실행 ETL 작업에 적합한 Hadoop을 기반으로 구축된 데이터 웨어하우스 인프라입니다.Hbase는 실시간 트랜잭션을 처리하도록 설계된 데이터베이스입니다.