Hadoop, HBase, Hive 및 Pig를 언제 사용해야합니까?


185

Hadoop 또는 HBase 또는 Hive 를 사용하면 어떤 이점이 있습니까? 있습니까?

내가 이해 한 바에 따르면 HBase 는 map-reduce 사용을 피하고 HDFS 위에 열 지향 스토리지를 가지고 있습니다. HiveHadoopHBase를 위한 SQL과 유사한 인터페이스입니다 .

또한 HivePig 와 어떻게 비교 되는지 알고 싶습니다 .


하둡 : 하둡 분산 파일 시스템 + 계산 처리 모델 MapReduce. HBase : 키-값 저장 장치로 거의 실시간으로 읽고 쓸 수 있습니다. Hive : SQL과 같은 구문을 사용하여 HDFS에서 데이터를 추출하는 데 사용됩니다. Pig : ETL 작성을위한 데이터 플로우 언어입니다.
dbustosp

답변:


348

MapReduce는 단지 컴퓨팅 프레임 워크입니다 입니다. HBase는 아무 관련이 없습니다. 즉, MapReduce 작업을 작성하여 HBase에 데이터를 효율적으로 넣거나 가져올 수 있습니다. 또는 Java와 같은 다른 HBase API를 사용하여 순차 프로그램을 작성하여 데이터를 넣거나 가져올 수 있습니다. 그러나 우리는 Hadoop, HBase 등을 사용하여 엄청난 양의 데이터를 처리하므로 그다지 의미가 없습니다. 데이터가 너무 크면 정상적인 순차 프로그램을 사용하는 것이 비효율적입니다.

질문의 첫 번째 부분으로 되돌아 가면 Hadoop은 기본적으로 분산 파일 시스템 (HDFS) + 계산 또는 처리 프레임 워크 (MapReduce)의 두 가지 입니다. 다른 모든 FS와 마찬가지로 HDFS는 스토리지를 제공하지만 처리량은 높고 데이터 손실 위험은 낮습니다 (복제 때문에). 그러나 FS 인 HDFS에는 임의 읽기 및 쓰기 액세스 권한이 없습니다 . HBase가 등장하는 곳입니다. 그것은 A의 분산, 확장 성, 빅 데이터 저장소 구글의 빅 테이블을 모델. 데이터를 키 / 값 쌍으로 저장합니다.

하이브에옵니다. 기존 Hadoop 클러스터 위에 데이터 웨어 하우징 기능을 제공 합니다. 이와 함께 SQL과 유사한 인터페이스를 제공하므로 SQL 배경에서 오는 경우 작업을 더 쉽게 할 수 있습니다. Hive에서 테이블을 생성하고 거기에 데이터를 저장할 수 있습니다. 이와 함께 기존 HBase 테이블을 Hive에 매핑하고 작업 할 수도 있습니다.

Pig는 기본적으로 엄청난 양의 데이터를 매우 쉽고 빠르게 처리 할 수 있는 데이터 흐름 언어 입니다. Pig는 기본적으로 Pig InterpreterPigLatin 언어 의 두 부분으로 구성 됩니다 . PigLatin에서 Pig 스크립트를 작성하고 Pig 인터프리터를 사용하여 처리합니다. 돼지는 우리 삶을 훨씬 쉽게 만들어줍니다. 그렇지 않으면 MapReduce를 쓰는 것이 항상 쉬운 것은 아닙니다. 실제로 어떤 경우에는 실제로 고통이 될 수 있습니다.

나는 얼마 전에 Hadoop 생태계의 여러 도구를 간단히 비교 하는 기사를 작성했습니다 . 심도있는 비교가 아니라 시작하는 데 도움이되는 각 도구에 대한 짧은 소개입니다. (내 답변에 추가해야합니다. 자체 홍보는 의도하지 않았습니다)

Hive 및 Pig 쿼리는 모두 후드 아래에서 MapReduce 작업으로 변환됩니다.

HTH


당신에 대해 이야기하는 것을 잊지 yarn하둡 생태계 :(에.
Kenry 산체스에게

53

나는 최근에 회사에서 Hive Data 플랫폼을 구현했으며 한 사람이 된 팀이므로 첫 번째 사람과 대화 할 수 있습니다.

객관적인

  1. 350 개 이상의 서버에서 매일 웹 로그 파일을 수집하여 언어와 같은 SQL을 통해 매일 쿼리 가능
  2. MySQL 을 통해 생성 된 일일 집계 데이터 를 Hive로 바꾸려면
  3. Hive 에서 쿼리를 통해 사용자 지정 보고서 작성

아키텍처 옵션

다음 옵션을 벤치마킹했습니다.

  1. 하이브 + HDFS
  2. Hive + HBase- 쿼리가 너무 느려서이 옵션을 덤프했습니다.

디자인

  1. 일일 로그 파일이 HDFS 로 전송되었습니다
  2. MR 작업은 이러한 로그 파일과 출력 파일을 HDFS로 구문 분석했습니다.
  3. HDFS 위치를 가리키는 파티션과 위치가있는 Hive 테이블 만들기
  4. 백그라운드에서 MR 작업을 실행하고 집계 데이터를 생성하는 Hive 쿼리 스크립트를 작성하십시오 ( SQL 과 다른 경우 HQL 이라고 함 ).
  5. Daily Oozie Coordinator로 예약 된 모든 단계를 Oozie 워크 플로에 추가

요약

HBase는지도와 같습니다. 키를 알고 있으면 즉시 가치를 얻을 수 있습니다. 당신은 1000000과 2000000 사이에 얼마나 많은 정수 키 HBase를 알고 싶은 경우에 적합하지 않습니다 그 HBase를 에만 .

집계, 롤업, 행 전체에서 분석해야하는 데이터가있는 경우 Hive 를 고려하십시오 .

잘하면 이것이 도움이됩니다.

하이브는 실제로 바위입니다 ... 나는 그것을 12 개월 동안 살았습니다 ... HBase도 마찬가지입니다 ...


1
HBase는 HDFS에 데이터를 저장하는 NonSQL 데이터베이스입니다. 빅 데이터에 대한 임의의 실시간 읽기 / 쓰기 액세스가 필요할 때 사용됩니다.
루트 루프

28

Hadoop 은 간단한 프로그래밍 모델을 사용하여 컴퓨터 클러스터에서 대규모 데이터 세트를 분산 처리 할 수있는 프레임 워크입니다.

하둡에는 4 가지 주요 모듈이 있습니다.

  1. Hadoop Common : 다른 Hadoop 모듈을 지원하는 공통 유틸리티입니다.

  2. HDFS ™ (Hadoop Distributed File System ) : 애플리케이션 데이터에 대한 높은 처리량 액세스를 제공하는 분산 파일 시스템.

  3. Hadoop YARN : 작업 예약 및 클러스터 리소스 관리를위한 프레임 워크입니다.

  4. Hadoop MapReduce : 대용량 데이터 세트의 병렬 처리를위한 YARN 기반 시스템.

계속 진행하기 전에 세 가지 유형의 데이터가 있습니다.

  • 구조화 : 구조화 된 데이터는 강력한 스키마를 가지며 쓰기 및 읽기 작업 중에 스키마가 검사됩니다. 예 : Oracle, MySQL Server 등과 같은 RDBMS 시스템의 데이터

  • 비정형 : 데이터 구조가 없으며 웹 서버 로그, 전자 메일, 이미지 등 어떤 형태 일 수 있습니다.

  • 반 구조화 : 데이터는 엄격하게 구조화되어 있지 않지만 일부 구조를 가지고 있습니다. 예를 들어 XML 파일.

처리 할 데이터 유형에 따라 올바른 기술을 선택해야합니다.

하둡의 일부인 더 많은 프로젝트 :

  • HBase ™ : 대형 테이블에 대한 구조화 된 데이터 스토리지를 지원하는 확장 가능하고 분산 된 데이터베이스입니다.

  • Hive ™ : 데이터 요약 및 임시 쿼리를 제공하는 데이터웨어 하우스 인프라입니다.

  • Pig ™ : 병렬 계산을위한 고급 데이터 흐름 언어 및 실행 프레임 워크.

Hive Vs PIG 비교는이 기사 와이 SE 질문의 다른 게시물에서 찾을 수 있습니다 .

HBASE 는 Map Reduce를 대체하지 않습니다. HBase 는 확장 가능한 분산 데이터베이스 및 Map Reduce 이며 는 데이터의 분산 처리를위한 프로그래밍 모델입니다. 맵 감소는 처리시 HBASE의 데이터에 작용할 수 있습니다.

구조적 / 반 구조적 데이터에 HIVE / HBASE 를 사용 하고 Hadoop Map Reduce로 처리 할 수 ​​있습니다.

SQOOP 를 사용 하여 기존 RDBMS 데이터베이스 Oracle, SQL Server 등에서 구조화 된 데이터를 가져 와서 Hadoop Map Reduce로 처리 할 수 ​​있습니다.

FLUME 를 사용하여 비정형 데이터를 처리하고 Hadoop Map Reduce로 처리 할 수 있습니다.

Hadoop 사용 사례를 살펴보십시오 .

일정 기간 동안 수집 된 데이터의 분석 쿼리에는 Hive를 사용해야합니다. 예 : 트렌드 계산, 웹 사이트 로그 요약, 실시간 쿼리에는 사용할 수 없습니다.

HBase 는 빅 데이터의 실시간 쿼리에 적합합니다. Facebook은 메시징 및 실시간 분석에 사용합니다.

PIG 는 데이터 흐름을 구성하고, 예약 된 작업을 실행하고, 많은 양의 데이터를 수집하고, 집계 / 요약하고 관계형 데이터베이스 시스템에 저장하는 데 사용할 수 있습니다. 임시 분석에 적합합니다.

Hive 는 임시 데이터 분석에 사용될 수 있지만 PIG와 달리 구조화되지 않은 모든 데이터 형식을 지원할 수는 없습니다.


Facebook은 더 이상 실시간 메시징 시스템에 오픈 소스 HBase를 사용하지 않습니다. 그들은 그것을 사내 [Myrocks 데이터베이스]로 교체했습니다. ( engineering.fb.com/core-data/… )
PPK

23

RDBMS에 대해 작업하고 전체 테이블 스캔 또는 인덱스 액세스 중 하나만 사용하도록 선택해야합니다.
전체 테이블 스캔을 선택한 경우 하이브를 사용하십시오. 인덱스 액세스 인 경우-HBase.


실제로 HBase에서 인덱싱 된 쿼리를 수행하면서 HQL을 사용하여 Hbase를 전체 검색 할 수 있도록 HBase에서 Hive를 빌드 할 수 있습니다. 그러나 이것이 전체 스캔에서 성능이 저하되는 것은 아닙니다.
FrostNovaZzz

HBase는 쓰기 지향 시스템으로, 데이터가 정렬되어 저장되지만 스캔시 최적이 아닙니다. 따라서 일부 범위를 스캔하는 것이 좋은 선택이지만 전체 스캔은 HDFS에서 직접 수행하는 것보다 훨씬 느릴 것입니다.
David Gruzman

5

Hadoop Vs Cassandra / HBase의 비교는이 게시물을 읽으십시오 .

기본적으로 HBase는 확장 성과 함께 매우 빠른 읽기 및 쓰기를 가능하게합니다. 얼마나 빠르고 확장 가능합니까? Facebook 은이를 사용하여 사용자 상태, 사진, 채팅 메시지 등을 관리합니다. HBase는 너무 빠릅니다. 때때로 HBase를 Hive의 데이터 저장소로 사용하기 위해 Facebook에서 스택을 개발했습니다.

As Hive는 데이터웨어 하우징 솔루션과 유사합니다. SQL과 유사한 구문을 사용하여 Hive 컨텐츠를 쿼리하여 Map Reduce 작업을 수행 할 수 있습니다. 빠른 트랜잭션 시스템에는 적합하지 않습니다.


5

Lambda 아키텍처 처리 실시간 및 배치로드 작업을했습니다. 센서를 통해 화재 경보를 보내거나 은행 거래의 사기를 감지하는 경우 빠른 결정을 내려야하는 경우 실시간 처리가 필요합니다. BI 시스템에 공급할 수있는 데이터를 요약하려면 일괄 처리가 필요합니다.

우리는 하둡 을 사용했다위의 애플리케이션에는 에코 시스템 기술을 .

실시간 처리

Apache Storm : 스트림 데이터 처리, 규칙 애플리케이션

HBase : 실시간 대시 보드를 제공하기위한 데이터 저장소

배치 처리 Hadoop : 엄청난 양의 데이터를 합니다. 360도 개요 또는 이벤트에 컨텍스트 추가. Pig, MR, Spark, Hive, Shark와 같은 인터페이스 또는 프레임 워크는 컴퓨팅에 도움이됩니다. 이 레이어에는 Oozie가 좋은 스케줄러가 필요합니다.

이벤트 처리 계층

Apache Kafka는 센서에서 고속 이벤트를 소비하는 최초의 계층이었습니다. Kafka는 Linkedin 커넥터를 통해 실시간 및 배치 분석 데이터 흐름을 모두 제공합니다.


5

깊이 이해

하둡

HadoopApache재단 의 오픈 소스 프로젝트입니다 . 이 문서는 Java2005 년 Doug Cutting에서 개발 한으로 작성된 프레임 워크입니다 Nutch. 텍스트 검색 엔진의 배포를 지원하기 위해 만들어졌습니다 . Hadoop구글의Map Reduce 및 Google 파일 시스템 기술을 기초로 사용합니다.

하둡의 특징

  1. 상용 하드웨어를 사용하여 대량의 정형, 반 정형 및 비정형 데이터를 처리하도록 최적화되었습니다.
  2. 아키텍처를 공유하지 않았습니다.
  3. 데이터가 여러 컴퓨터에 복제되어 다운 된 경우에도 복제본을 저장하는 다른 시스템에서 데이터를 처리 할 수 ​​있습니다.
  4. Hadoop낮은 대기 시간이 아닌 높은 처리량을위한 것입니다. 대량의 데이터를 처리하는 일괄 작업입니다. 따라서 응답 시간이 즉각적이지 않습니다.
  5. 온라인 거래 처리 및 온라인 분석 처리를 보완합니다. 그러나 이는 대체품이 아닙니다.RDBMS .
  6. 작업을 병렬화 할 수 없거나 데이터 내에 종속성이있는 경우 좋지 않습니다.
  7. 작은 파일을 처리하는 데 좋지 않습니다. 대용량 데이터 파일 및 데이터 세트와 함께 가장 잘 작동합니다.

하둡 버전

Hadoop사용 가능한 버전은 두 가지가 있습니다.

  1. 하둡 1.0
  2. 하둡 2.0

하둡 1.0

두 가지 주요 부분이 있습니다.

1. 데이터 스토리지 프레임 워크

하둡 분산 파일 시스템 ( HDFS) 이라는 범용 파일 시스템 입니다.

HDFS 스키마가 없다

단순히 데이터 파일을 저장하며 이러한 데이터 파일은 거의 모든 형식 일 수 있습니다.

아이디어는 가능한 한 원래 형식에 가깝게 파일을 저장하는 것입니다.

결과적으로 비즈니스 부서와 조직은 구현할 수있는 것에 대해 너무 걱정하지 않고 필요한 유연성과 민첩성을 제공합니다.

2. 데이터 처리 프레임 워크

Google은 처음에로 널리 보급 한 간단한 기능적 프로그래밍 모델 MapReduce입니다.

그것은 본질적으로 두 가지 기능을 사용 MAP하고 REDUCE데이터를 처리합니다.

"매퍼"는 일련의 키-값 쌍을 가져 와서 중간 데이터 (키-값 쌍의 다른 목록)를 생성합니다.

그런 다음 "감속기"는이 입력에 작용하여 출력 데이터를 생성합니다.

두 기능은 서로 분리되어 작동하는 것처럼 보이므로 처리를 고도의 병렬, 내결함성 및 확장 가능한 방식으로 고도로 분산시킬 수 있습니다.

하둡 1.0의 한계

  1. 첫 번째 제한은 MapReduce프로그래밍 전문 지식 의 요구 사항이었습니다 .

  2. 로그 분석, 대규모 데이터 마이닝 프로젝트와 같은 작업에는 적합하지만 다른 종류의 프로젝트에는 적합하지 않은 배치 처리 만 지원했습니다.

  3. 한 가지 주요 제한 사항은과 Hadoop 1.0밀접하게 계산적으로 결합되어 MapReduce있다는 것인데, 이는 기존의 데이터 관리 공급 업체가 두 가지 의견을 남겼 음을 의미합니다.

    1. 또는 MapReduce에서 실행될 수 있도록 기능을 다시 작성하십시오.Hadoop

    2. HDFS외부 에서 데이터를 추출 하거나 외부 에서 처리하십시오 Hadoop.

데이터가 Hadoop클러스터 내외부로 이동하여 발생하는 프로세스 비 효율성으로 이어 졌으므로 옵션 중 어느 것도 실행 가능하지 않았습니다 .

하둡 2.0

이어 Hadoop 2.0, HDFS데이터 저장기구가되고.

그러나라는 새로운 별도의 자원 관리 프레임 워크 Y 등 같아 R의 esource N의 egotiater ( 원사 )를 첨가하고있다.

YARN은 병렬 작업으로 나눌 수있는 모든 응용 프로그램을 지원합니다.

YARN은 제출 된 응용 프로그램의 하위 작업 할당을 조정하여 응용 프로그램의 유연성, 확장 성 및 효율성을 더욱 향상시킵니다.

그것은함으로써 작동하는 응용 프로그램 마스터 의 장소에서 작업 추적기 , 새에 의해 지배 자원에 대한 응용 프로그램을 실행하는 노드 관리자 .

ApplicationMaster는뿐만 아니라 모든 응용 프로그램을 실행할 수 있습니다 MapReduce.

즉, 일괄 처리뿐만 아니라 실시간 처리도 지원합니다. MapReduce더 이상 유일한 데이터 처리 옵션이 아닙니다.

하둡의 장점

기본 데이터를 저장합니다. 데이터를 키잉하거나 데이터를 저장하는 동안 부과 된 구조는 없습니다. HDFS스키마가 적습니다. 나중에 데이터를 처리해야하는 경우에만 원시 데이터에 구조가 적용됩니다.

확장 가능합니다. Hadoop병렬로 작동하는 수백 개의 저렴한 서버에서 매우 큰 데이터 세트를 저장하고 배포 할 수 있습니다.

실패에 탄력적입니다. Hadoop내결함성입니다. 데이터 복제를 부지런히 수행합니다. 즉, 데이터가 임의의 노드로 전송 될 때마다 동일한 데이터가 클러스터의 다른 노드로 복제되므로 노드 장애 발생시 항상 사용할 수있는 데이터의 다른 사본이 있어야합니다.

유연합니다. 주요 장점 중 하나는 Hadoop구조화, 비 구조화 또는 반 구조화와 같은 모든 종류의 데이터로 작업 할 수 있다는 것입니다. 또한 Hadoop"코드를 데이터로 이동"패러다임으로 인해 처리 속도가 매우 빠릅니다 .

하둡 생태계

다음은 Hadoop생태계 의 구성 요소입니다 .

HDFS : Hadoop분산 파일 시스템. 데이터 파일을 가능한 한 원래 형식에 가깝게 저장합니다.

HBase : Hadoop의 데이터베이스이며 RDBMS. 대형 테이블에 대한 구조화 된 데이터 스토리지를 지원합니다.

Hive : standard와 매우 유사한 언어를 사용하여 대규모 데이터 세트를 분석 할 수 있습니다. 이는 ANSI SQL익숙한 사람이라면 누구나 클러스터의 SQL데이터에 액세스 할 수 있어야 함을 의미 Hadoop합니다.

Pig : 데이터 흐름 언어를 이해하기 쉽습니다. 이는 대규모 데이터 세트의 분석에 도움이됩니다 Hadoop. 인터프리터 Pig가 스크립트를 MapReduce작업 으로 자동 변환합니다 Pig.

ZooKeeper : 분산 응용 프로그램을위한 조정 서비스입니다.

Oozie : schedularApache Hadoop작업 을 관리 하는 워크 플로우 시스템 입니다.

Mahout : 확장 가능한 머신 러닝 및 데이터 마이닝 라이브러리입니다.

Chukwa : 대규모 분산 시스템 관리를위한 데이터 수집 시스템입니다.

Sqoop : Hadoop관계형 데이터베이스와 같은 구조화 된 데이터 저장소 간에 대량 데이터를 전송하는 데 사용 됩니다.

Ambari : Hadoop클러스터 프로비저닝, 관리 및 모니터링을위한 웹 기반 도구입니다 .

하이브

Hive에서 구조화 된 데이터를 처리하는 데이터웨어 하우스 인프라 도구입니다 Hadoop. 그것은 상단에있는 Hadoop빅 데이터를 요약하고 질의 쉽게 분석 할 수 있습니다.

하이브는 아닙니다

  1. 관계형 데이터베이스

  2. 온라인 거래 처리를위한 디자인 ( OLTP).

  3. 실시간 쿼리 및 행 수준 업데이트를위한 언어입니다.

하이브의 특징

  1. 데이터베이스에 스키마를 저장하고 데이터를 처리합니다 HDFS.

  2. 에 맞게 설계되었습니다 OLAP.

  3. 또는 SQL이라는 쿼리를위한 유형 언어를 제공 합니다 .HiveQLHQL

  4. 친숙하고 빠르며 확장 가능하며 확장 가능합니다.

하이브 아키텍처

Hive 아키텍처에는 다음 구성 요소가 포함되어 있습니다.

  1. 사용자 인터페이스 : 사용자와 사용자 간의 상호 작용을 생성 할 수 Hive있는 data warehouse인프라입니다 HDFS. Hive지원 하는 사용자 인터페이스 는 Hive Web UI, Hive 명령 줄 및 Hive HD Insight (Windows Server)입니다.

  2. MetaStore : 스키마 또는 테이블, 데이터베이스, 테이블의 열, 데이터 유형 및 매핑 을 저장할 Hive각각 database servers을 선택 합니다.MetadataHDFS

  3. HiveQL Process Engine :의 스키마 정보를 쿼리하는 HiveQL것과 유사 SQL합니다 Metastore. 기존의 MapReduce프로그램 접근 방식을 대체 한 것 중 하나입니다 . 대신 쓰는 MapReduceJava, 우리는에 대한 쿼리를 작성할 수 있습니다 MapReduce그것을 처리합니다.

  4. Exceution 엔진 :의 관련 부분 HiveQL처리 엔진과 MapReduce는 IS Hive실행 엔진. 실행 엔진은 쿼리를 처리하고와 동일한 결과를 생성합니다 MapReduce results. 의 맛을 사용합니다 MapReduce.

  5. HDFS 또는 HBase : Hadoop분산 파일 시스템 또는 파일 시스템 HBase에 데이터를 저장하는 데이터 저장 기술입니다.


1

우선 우리는 HadoopRDBMS에 대한보다 빠른 대안으로 만들어 졌음 을 분명히해야합니다 . RDBMS에서 이전에 많은 시간이 걸렸던 매우 빠른 속도로 많은 양의 데이터를 처리합니다.

이제 두 용어를 알아야합니다.

  1. 구조화 된 데이터 : 기존 RDBMS에서 사용 된 데이터이며 잘 정의 된 구조로 나뉩니다.

  2. 비정형 데이터 : 세계 데이터의 약 80 %가 비정형 또는 반 정형이라는 것을 이해하는 것이 중요합니다. 이는 원시 형식이며 RDMS를 사용하여 처리 할 수없는 데이터입니다. 예 : 페이스 북, 트위터 데이터. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

따라서 지난 몇 년 동안 많은 양의 데이터가 생성되었으며 데이터는 대부분 비정형 화되어 HADOOP을 낳았습니다. RDBMS를 사용하여 실현할 수없는 시간이 걸리는 매우 많은 양의 데이터에 주로 사용되었습니다. 상대적으로 작은 데이터에 실시간으로 사용할 수 없다는 단점이 있지만 새로운 버전에서는 단점을 제거했습니다.

계속 진행하기 전에 이전 도구에서 결함이 발견 될 때 새 빅 데이터 도구가 작성되었다고 말하고 싶습니다. 따라서 이전 도구의 문제를 극복하기 위해 어떤 도구가 생성되었는지 알 수 있습니다.

하둡 은 간단히 MapreduceHDFS의 두 가지로 말할 수 있습니다 . Mapreduce는 처리가 수행되는 위치이며 HDFS는 데이터가 저장되는 데이터베이스입니다. 이 구조는 WORM 교장, 즉 한 번 읽고 여러 번 쓴다. 따라서 HDFS에 데이터를 저장 한 후에는 변경할 수 없습니다. 이로 인해 데이터를 한 번 작성한 후에도 데이터를 변경할 수있는 NOSQL 제품인 HBASE 가 만들어졌습니다.

그러나 시간이 지남에 따라 Hadoop에는 많은 결함이 있으며이를 위해 Hadoop 구조에 대해 다른 환경을 만들었습니다. PIG와 HIVE가 인기있는 두 가지 예입니다.

HIVESQL 배경 지식을 가진 사람들을 위해 만들어졌습니다 . 작성된 쿼리는 이름이 HIVEQL 인 SQL과 유사합니다 . HIVE는 완전히 구조화 된 데이터 를 처리하기 위해 개발되었습니다 . ustructured 데이터에는 사용되지 않습니다.

반면에 PIG 는 자체 쿼리 언어, 즉 PIG LATIN을 가지고 있습니다. 이것은 모두 사용할 수 구조체 뿐만 아니라 구조적 데이터 .

HIVE 사용시기와 PIG 사용시기의 차이로 넘어 가서 PIG 아키텍트 이외의 다른 사람은 말할 수 없다고 생각합니다. 링크를 따르십시오 : https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


1

하둡 :

HDFS는 계산 처리 모델 Map-Reduce를 사용하는 Hadoop 분산 파일 시스템을 나타냅니다.

HBase :

HBase는 Key-Value 스토리지로, 거의 실시간으로 읽고 쓸 수 있습니다.

하이브 :

Hive는 SQL과 같은 구문을 사용하여 HDFS에서 데이터를 추출하는 데 사용됩니다. HQL 언어를 사용하십시오.

돼지:

Pig는 ETL을 작성하기위한 데이터 흐름 언어입니다. 스크립트 언어입니다.


0

몇 마디로 대답하려고 노력하겠습니다.

하둡은 다른 모든 도구로 구성된 에코 시스템입니다. 따라서 Hadoop은 비교할 수 없지만 MapReduce는 비교할 수 있습니다.

여기 몇 센트가 있습니다 :

  1. Hive : SQL이 필요로하는 SQL의 의미가 SQL에 의해 제공 될 수있는 가장 쉬운 방법은 Hive를 사용하는 것입니다. 다른 경우, 하이브를 사용할 때 서버가 특정 데이터 구조를 갖기를 원할 때입니다.
  2. Pig : Pig Latin에 익숙하고 더 많은 데이터 파이프 라인이 필요한 경우. 또한 데이터 구조가 부족합니다. 이 경우 Pig를 사용할 수 있습니다. 솔직히 사용 사례와 관련하여 Hive와 Pig 사이에는 큰 차이가 없습니다.
  3. MapReduce : SQL을 사용하여 문제를 해결할 수없는 경우 먼저 Hive & Pig 용 UDF를 작성하고 UDF가 문제를 해결하지 않으면 MapReduce를 통해 문제를 해결하는 것이 좋습니다.

0

Pig : 파일 처리 및 데이터 정리 예 : Null 값 제거, 문자열 처리, 불필요한 값 Hive : 정리 된 데이터에 대한 쿼리


0

1. 우리는 txt, csv와 같은 형식 파일 형식으로 대용량 데이터 (즉, 구조, 비 구조 및 반 구조 데이터)를 저장하기 위해 하둡을 사용하고 있습니다.

2. 데이터에 원주 형 업데이트를 원하면 Hbase 도구를 사용하고 있습니다.

3. Hive의 경우 빅 데이터를 구조화 된 형식으로 저장하고 해당 데이터에 대한 분석을 제공합니다.

4.Pig는 Pig latin 언어를 사용하여 모든 형식 (구조, 반 구조 및 비 구조)의 데이터를 분석하는 도구입니다.


0

Pig의 데이터 정리는 매우 쉽습니다. 적절한 접근 방법은 돼지를 통해 데이터를 정리 한 다음 하이브를 통해 데이터를 처리 한 다음 hdfs에 업로드하는 것입니다.


0

Hive, Hbase 및 Pig의 사용은 다른 프로젝트에서 실시간 경험을 얻었습니다.

Hive는 주로 다음 용도로 사용됩니다.

  • 기록 데이터를 분석해야하는 분석 목적

  • 특정 열을 기반으로 비즈니스 보고서 생성

  • 메타 데이터 정보와 함께 데이터를 효율적으로 관리

  • 버킷 팅 개념을 사용하여 자주 사용되는 특정 열의 테이블 조인

  • 파티셔닝 개념을 사용한 효율적인 저장 및 쿼리

  • 업데이트, 삭제 등과 같은 트랜잭션 / 행 수준 작업에는 유용하지 않습니다.

돼지는 주로 다음 용도로 사용됩니다.

  • 방대한 데이터에 대한 빈번한 데이터 분석

  • 방대한 데이터에서 집계 된 값 / 카운트 생성

  • 엔터프라이즈 급 핵심 성과 지표를 매우 자주 생성

Hbase가 주로 사용됩니다.

  • 실시간 데이터 처리

  • 복잡하고 중첩 된 스키마를 효율적으로 관리

  • 실시간 쿼리 및 빠른 결과

  • 컬럼을 통한 손쉬운 확장 성

  • 업데이트, 삭제 등과 같은 트랜잭션 / 행 수준 작업에 유용합니다.


0

이 질문에 대한 짧은 대답은-

Hadoop-분산 파일 시스템 및 프로그래밍 모델을 용이하게하는 프레임 워크로, 기존 방식에 비해 처리 시간이 매우 짧고 엄청난 크기의 데이터를 저장하고 분산 방식으로 데이터를 처리 할 수 ​​있습니다.

(HDFS-Hadoop 분산 파일 시스템) (맵 감소-분산 처리를위한 프로그래밍 모델)

Hive-Hadoop 분산 파일 시스템의 데이터를 매우 인기있는 SQL 방식으로 읽고 쓸 수있는 쿼리 언어입니다. Hive가 지원되지 않는 매우 복잡한 시나리오를 제외하고는 더 이상 Map-Reduce 프로그램을 작성할 필요가 없으므로 많은 비 프로그래밍 배경 지식을 가진 사람들이 더 쉽게 생활 할 수있었습니다.

Hbase-컬럼 형 NoSQL 데이터베이스입니다. Hbase의 기본 스토리지 계층은 다시 HDFS입니다. 이 데이터베이스의 가장 중요한 사용 사례는 수백만 개의 열이있는 수십억 개의 행을 저장할 수 있다는 것입니다. Hbase의 지연 시간이 짧은 기능은 분산 데이터를 통해 레코드를보다 빠르고 무작위로 액세스 할 수 있도록 도와 주며 Recommender Engines와 같은 복잡한 프로젝트에 유용합니다. 또한 레코드 수준 버전 관리 기능을 통해 사용자는 트랜잭션 데이터를 매우 효율적으로 저장할 수 있습니다 (이는 HDFS 및 Hive로 레코드를 업데이트하는 문제를 해결 함)

위의 3 가지 기능을 빠르게 이해하는 데 도움이되기를 바랍니다.


0

나는이 스레드가 특히 HBase와 Pig에 대해 특별히 정의되지 않았다고 생각합니다. Hadoop이 빅 데이터 레이크 구현을위한 분산 된 탄력적 인 파일 시스템의 선택이라고 생각하지만 HBase와 Hive 사이의 선택은 특히 잘 분리되어 있습니다.

마찬가지로 많은 유스 케이스에는 SQL과 비슷한 인터페이스 또는 No-SQL과 같은 인터페이스가 필요합니다. HBase를 기반으로 Phoenix를 사용하면 SQL과 같은 기능을 확실히 달성 할 수 있지만 성능, 타사 통합, 대시 보드 업데이트는 일종의 고통스러운 경험입니다. 그러나 수평 확장이 필요한 데이터베이스에는 탁월한 선택입니다.

Pig는 계산이나 ETL 파이프 라이닝과 같은 비 재귀 일괄 처리에 특히 탁월합니다 (어딘가에서 편안한 거리만큼 스파크를 능가하는 곳). 또한 높은 수준의 데이터 흐름 구현은 배치 쿼리 및 스크립팅에 탁월한 선택입니다. Pig와 Hive 사이의 선택은 클라이언트 또는 서버 측 스크립팅, 필요한 파일 형식 등의 필요성에 따라 결정됩니다. Pig는 Hive의 경우에는 사실이 아닌 Avro 파일 형식을 지원합니다. '절차 적 데이터 흐름 언어'와 '선언적 데이터 흐름 언어'의 선택은 또한 돼지와 하이브 사이의 선택에 대한 강력한 논증입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.