[HADOOP] Hadoop, HBase, Hive 및 Pig를 언제 사용합니까?
HADOOPHadoop, HBase, Hive 및 Pig를 언제 사용합니까?
Hadoop 또는 HBase 또는 Hive를 사용하면 어떤 이점이 있습니까?
내 이해에서 HBase는 map-reduce 사용을 피하고 HDFS 위에 컬럼 기반 스토리지를 가지고 있습니다. Hive는 Hadoop과 HBase를위한 sql-like 인터페이스입니다.
Hive가 돼지와 어떻게 비교되는지 알고 싶습니다.
해결법
-
==============================
1.MapReduce는 컴퓨팅 프레임 워크 일뿐입니다. HBase는 그것과 아무 관련이 없습니다. 즉 MapReduce 작업을 작성하여 HBase에 데이터를 효율적으로 넣거나 가져올 수 있습니다. 또는 데이터를 넣거나 가져 오기 위해 Java와 같은 다른 HBase API를 사용하여 순차 프로그램을 작성할 수 있습니다. 그러나 우리는 거대한 양의 데이터를 처리하기 위해 Hadoop, HBase 등을 사용하므로별로 의미가 없습니다. 일반적인 순차 프로그램을 사용하면 데이터가 너무 많을 때 매우 비효율적입니다.
MapReduce는 컴퓨팅 프레임 워크 일뿐입니다. HBase는 그것과 아무 관련이 없습니다. 즉 MapReduce 작업을 작성하여 HBase에 데이터를 효율적으로 넣거나 가져올 수 있습니다. 또는 데이터를 넣거나 가져 오기 위해 Java와 같은 다른 HBase API를 사용하여 순차 프로그램을 작성할 수 있습니다. 그러나 우리는 거대한 양의 데이터를 처리하기 위해 Hadoop, HBase 등을 사용하므로별로 의미가 없습니다. 일반적인 순차 프로그램을 사용하면 데이터가 너무 많을 때 매우 비효율적입니다.
질문의 첫 부분으로 돌아 가면 Hadoop은 기본적으로 분산 파일 시스템 (HDFS) + 계산 또는 처리 프레임 워크 (MapReduce)의 두 가지입니다. 다른 모든 FS와 마찬가지로 HDFS도 스토리지를 제공하지만 복제로 인해 높은 처리량과 데이터 손실 위험이 낮은 내결함성을 제공합니다. 그러나 FS가되어 HDFS는 임의의 읽기 및 쓰기 액세스가 없습니다. 여기가 HBase의 모습입니다. Google의 BigTable을 모델로하여 배포되고 확장 가능한 대형 데이터 저장소입니다. 데이터를 키 / 값 쌍으로 저장합니다.
하이브로 간다. 기존 Hadoop 클러스터 위에 데이터웨어 하우징 기능을 제공합니다. 이와 함께 SQL 배경에서 오는 경우를 대비하여 작업을 더 쉽게 해주는 SQL과 같은 인터페이스를 제공합니다. 하이브에 테이블을 만들고 거기에 데이터를 저장할 수 있습니다. 이와 함께 기존 HBase 테이블을 하이브에 매핑하고 운영 할 수 있습니다.
Pig는 기본적으로 방대한 양의 데이터를 매우 쉽고 빠르게 처리 할 수있는 데이터 흐름 언어입니다. 돼지는 기본적으로 돼지 통역사와 언어 인 PigLatin의 두 부분으로 구성됩니다. PigLatin에 Pig 스크립트를 작성하고 Pig 인터프리터를 사용하여 처리합니다. 돼지는 우리 삶을 훨씬 쉽게 만들어줍니다. 그렇지 않으면 MapReduce를 작성하는 것이 항상 쉽지 않습니다. 사실 어떤 경우에는 실제로 고통이 될 수 있습니다.
얼마 전 하둡 생태계의 여러 도구를 간단히 비교 한 기사를 썼습니다. 깊이있는 비교는 아니지만 시작하는 데 도움이 될 수있는 각 도구에 대한 간단한 소개입니다. (내 답변에 추가하기 만하면됩니다.)
Hive와 Pig 쿼리는 모두 MapReduce 작업으로 변환됩니다.
HTH
-
==============================
2.나는 최근에 우리 회사에서 Hive Data 플랫폼을 구현했으며, 한 사람의 팀 이었기 때문에 1 인자로 이야기 할 수 있습니다.
나는 최근에 우리 회사에서 Hive Data 플랫폼을 구현했으며, 한 사람의 팀 이었기 때문에 1 인자로 이야기 할 수 있습니다.
나는 다음과 같은 옵션을 벤치마킹했다.
HBase는지도와 같습니다. 키를 알고 있으면 즉시 값을 얻을 수 있습니다. 그러나 Hbase만으로는 적합하지 않은 Hbase의 정수 키가 1000000에서 2000000 사이인지 알고 싶을 경우.
데이터를 집계하고 롤업하고 행 전체에서 분석 한 다음 하이브를 고려하십시오.
잘하면이 도움이됩니다.
하이브는 실제로 정말로 잘 흔들어 놓습니다 ... 알아요, 저는 12 개월 동안 살았습니다 ... HBase도 그렇습니다 ...
-
==============================
3.Hadoop은 간단한 프로그래밍 모델을 사용하여 컴퓨터 클러스터 전체에 대규모 데이터 세트를 분산 처리 할 수있게 해주는 프레임 워크입니다.
Hadoop은 간단한 프로그래밍 모델을 사용하여 컴퓨터 클러스터 전체에 대규모 데이터 세트를 분산 처리 할 수있게 해주는 프레임 워크입니다.
Hadoop에는 4 개의 기본 모듈이 있습니다.
계속하기 전에 세 가지 유형의 데이터가 있음을 유의합시다.
처리 할 데이터의 유형에 따라 적절한 기술을 선택해야합니다.
Hadoop의 일부인 더 많은 프로젝트 :
하이브 대 PIG 비교는이 기사와이 SE 질문에서 내 다른 게시물에서 찾을 수 있습니다.
HBASE는지도 축소를 대체하지 않습니다. HBase는 확장 가능한 분산 데이터베이스 및 Map Reduce는 분산 된 데이터 처리를위한 프로그래밍 모델입니다. Map Reduce는 처리중인 HBASE의 데이터에 적용될 수 있습니다.
HIVE / HBASE를 구조화 / 반 구조화 된 데이터로 사용하고 Hadoop Map Reduce로 처리 할 수 있습니다.
SQOOP를 사용하여 전통적인 RDBMS 데이터베이스 인 Oracle, SQL Server 등에서 구조화 된 데이터를 가져 와서 Hadoop Map Reduce로 처리 할 수 있습니다
FLUME을 사용하여 구조화되지 않은 데이터를 처리하고 Hadoop Map Reduce로 처리 할 수 있습니다.
Hadoop 사용 사례를 살펴보십시오.
Hive는 일정 기간 동안 수집 된 데이터를 분석적으로 쿼리하는 데 사용해야합니다. 예를 들어 경향을 계산하고 웹 사이트 로그를 요약하지만 실시간 쿼리에는 사용할 수 없습니다.
HBase는 빅 데이터의 실시간 질의에 적합합니다. Facebook은 메시징 및 실시간 분석을 위해 Facebook을 사용합니다.
PIG를 사용하여 데이터 흐름을 구성하고, 예약 된 작업을 실행하고, 대량의 데이터를 처리하고, 집계 / 요약하고 관계 데이터베이스 시스템에 저장할 수 있습니다. 애드혹 분석에 적합합니다.
Hive는 임시 데이터 분석에 사용될 수 있지만 PIG와 달리 모든 구조화되지 않은 데이터 형식을 지원할 수는 없습니다.
-
==============================
4.RDBMS로 작업하고 전체 테이블 스캔 또는 색인 액세스와 같이 사용할 대상을 선택해야하지만 그 중 하나만 선택해야합니다. 전체 표 스캔을 선택하면 하이브를 사용하십시오. 인덱스 액세스 인 경우 - HBase.
RDBMS로 작업하고 전체 테이블 스캔 또는 색인 액세스와 같이 사용할 대상을 선택해야하지만 그 중 하나만 선택해야합니다. 전체 표 스캔을 선택하면 하이브를 사용하십시오. 인덱스 액세스 인 경우 - HBase.
-
==============================
5.Hadoop 대 Cassandra / HBase의 비교를 위해이 글을 읽으십시오.
Hadoop 대 Cassandra / HBase의 비교를 위해이 글을 읽으십시오.
기본적으로 HBase는 확장 성과 함께 읽기 및 쓰기 작업을 신속하게 수행 할 수 있습니다. 얼마나 빠르고 확장 성이 좋습니까? Facebook은 사용자 상태, 사진, 채팅 메시지 등을 관리하기 위해 페이스 북을 사용합니다. HBase는 너무 빠르며 Hive 자체의 데이터 저장소로 HBase를 사용하기 위해 Facebook에서 스택을 개발 한 경우가 있습니다.
Where As Hive는 Data Warehousing 솔루션에 가깝습니다. SQL과 유사한 구문을 사용하여 Hive 내용을 쿼리하여 Map Reduce 작업을 수행 할 수 있습니다. 빠른 트랜잭션 시스템에 적합하지 않습니다.
-
==============================
6.나는 람다 (Lambda) 아키텍처에서 실시간 및 일괄 처리를 처리했다. 실시간 처리는 센서를 통한 화재 경보 전송 또는 은행 거래의 경우 사기 탐지의 경우 신속한 결정이 필요한 곳에서 필요합니다. 일괄 처리는 BI 시스템에 공급할 수있는 데이터를 요약하는 데 필요합니다.
나는 람다 (Lambda) 아키텍처에서 실시간 및 일괄 처리를 처리했다. 실시간 처리는 센서를 통한 화재 경보 전송 또는 은행 거래의 경우 사기 탐지의 경우 신속한 결정이 필요한 곳에서 필요합니다. 일괄 처리는 BI 시스템에 공급할 수있는 데이터를 요약하는 데 필요합니다.
우리는 위의 어플리케이션을 위해 Hadoop 생태계 기술을 사용했습니다.
실시간 처리
Apache Storm : 스트림 데이터 처리, 규칙 적용
HBase : 실시간 대시 보드를 제공하는 Datastore
일괄 처리 Hadoop : 엄청난 양의 데이터를 처리합니다. 360도 개요 또는 이벤트에 컨텍스트 추가. Pig, MR, Spark, Hive, Shark 같은 인터페이스 나 프레임 워크는 컴퓨팅에 도움이됩니다. 이 계층에는 Oozie가 좋은 옵션 인 스케줄러가 필요합니다.
이벤트 처리 계층
Apache Kafka는 센서에서 고속 이벤트를 소비하는 첫 번째 계층이었습니다. Kafka는 Linkedin 커넥터를 통해 실시간 및 일괄 분석 데이터 흐름을 제공합니다.
-
==============================
7.깊이있는 이해
깊이있는 이해
하둡
Hadoop은 Apache Foundation의 오픈 소스 프로젝트입니다. 이것은 원래 2005 년 Doug Cutting이 개발 한 Java로 작성된 프레임 워크입니다. 이것은 텍스트 검색 엔진 인 Nutch의 배포를 지원하기 위해 만들어졌습니다. Hadoop은 Google의 Map Reduce 및 Google File System Technologies를 기반으로합니다.
Hadoop의 특징
Hadoop의 버젼들
다음 두 가지 버전의 Hadoop을 사용할 수 있습니다.
Hadoop 1.0
두 가지 주요 부분이 있습니다.
1. 데이터 저장 프레임 워크
Hadoop 분산 파일 시스템 (HDFS)이라는 범용 파일 시스템입니다.
HDFS는 스키마가 없습니다.
단순히 데이터 파일을 저장하기 때문에 이러한 데이터 파일은 거의 모든 형식으로 저장됩니다.
아이디어는 가능한 한 원래 형식에 가까운 파일을 저장하는 것입니다.
이를 통해 비즈니스 단위와 조직은 구현할 수있는 것에 지나치게 걱정하지 않고도 필요한 유연성과 민첩성을 얻을 수 있습니다.
2. 데이터 처리 프레임 워크
이것은 MapReduce로서 처음으로 대중화 된 간단한 함수형 프로그래밍 모델입니다.
기본적으로 MAP 및 REDUCE라는 두 가지 기능을 사용하여 데이터를 처리합니다.
"Mappers"는 키 - 값 쌍을 가져 와서 중간 데이터 (키 - 값 쌍의 또 다른 목록)를 생성합니다.
"Reducers"는이 입력에 따라 출력 데이터를 생성합니다.
이 두 기능은 서로 고립되어 작동하므로 외장형 병렬 처리, 오류 방지 및 확장 가능한 방식으로 처리가 고도로 분산 될 수 있습니다.
Hadoop 1.0의 한계
Hadoop 클러스터 안팎으로 이동되는 데이터로 인한 프로세스 비효율을 초래하는 옵션은 없었습니다.
Hadoop 2.0
Hadoop 2.0에서 HDFS는 계속 데이터 스토리지 프레임 워크입니다.
그러나 Yet Another Resource Negotiator (Yet Another Resource Negotiator)라는 새롭고 개별적인 자원 관리 프레임 워크가 추가되었습니다.
YARN은 병렬 작업으로 나눌 수있는 모든 응용 프로그램을 지원합니다.
YARN은 제출 된 애플리케이션의 하위 작업 할당을 조정함으로써 애플리케이션의 유연성, 확장 성 및 효율성을 더욱 향상시킵니다.
Job Tracker 대신 응용 프로그램 마스터를 사용하고 새 노드 관리자가 관리하는 자원에서 응용 프로그램을 실행하여 작동합니다.
ApplicationMaster는 MapReduce뿐만 아니라 모든 애플리케이션을 실행할 수 있습니다.
즉, 일괄 처리뿐만 아니라 실시간 처리도 지원합니다. MapReduce는 더 이상 유일한 데이터 처리 옵션이 아닙니다.
하둡의 장점
그것은 원래의 데이터를 저장합니다. 데이터를 입력하거나 데이터를 저장하는 동안 구조가 필요하지 않습니다. HDFS는 스키마가 적습니다. 구조가 원시 데이터에 부과되는 데이터를 처리해야하는 경우가 나중에 있습니다.
그것은 확장 가능합니다. Hadoop은 병렬로 작동하는 저렴한 수백 대의 서버에 매우 큰 데이터 세트를 저장하고 배포 할 수 있습니다.
실패하면 복원력이 있습니다. Hadoop은 내결함성입니다. 데이터 복제는 모든 노드에 데이터가 전송 될 때마다 동일한 데이터가 클러스터의 다른 노드에 복제되어 노드 장애 발생시 항상 사용할 수있는 다른 데이터 복사본이 있음을 의미합니다.
유연합니다. Hadoop의 주요 장점 중 하나는 구조화, 비 구조화 또는 반 구조화 된 모든 종류의 데이터에서 작동 할 수 있다는 것입니다. 또한 "데이터를 코드로 이동"패러다임으로 인해 Hadoop에서 처리 속도가 매우 빠릅니다.
하둡 생태계
다음은 하둡 생태계의 구성 요소입니다.
HDFS : Hadoop 분산 파일 시스템. 데이터 파일을 원래 형식에 최대한 가깝게 저장합니다.
HBase : Hadoop의 데이터베이스이며 RDBMS와 잘 비교됩니다. 대형 테이블을위한 구조화 된 데이터 저장을 지원합니다.
하이브 (Hive) : 표준 ANSI SQL과 매우 유사한 언어를 사용하여 대규모 데이터 세트를 분석 할 수 있습니다. 이는 SQL에 익숙한 누구나 Hadoop 클러스터의 데이터에 액세스 할 수 있어야 함을 의미합니다.
돼지 : 데이터 흐름 언어를 이해하기 쉽습니다. Hadoop을 사용하면 대규모 데이터 세트를 분석하는 데 도움이됩니다. 돼지 스크립트는 Pig 인터프리터에 의해 MapReduce 작업으로 자동 변환됩니다.
ZooKeeper : 분산 응용 프로그램을위한 조정 서비스입니다.
Oozie : Apache Hadoop 작업을 관리하기위한 워크 플로 일정 시스템입니다.
Mahout : 확장 가능한 기계 학습 및 데이터 마이닝 라이브러리입니다.
Chukwa : 대용량 분산 시스템을 관리하기위한 데이터 수집 시스템입니다.
Sqoop : Hadoop과 관계형 데이터베이스와 같은 구조화 된 데이터 저장소간에 대량 데이터를 전송하는 데 사용됩니다.
Ambari : Hadoop 클러스터를 프로비저닝, 관리 및 모니터링하기위한 웹 기반 도구입니다.
하이브
Hive는 Hadoop에서 구조화 된 데이터를 처리하기위한 데이터웨어 하우스 인프라 도구입니다. 빅 데이터를 요약하기 위해 Hadoop 위에 상주하며 조회 및 분석이 용이합니다.
하이브는 그렇지 않다.
하이브의 특징
하이브 아키텍처
하이브 아키텍처에는 다음 구성 요소가 포함되어 있습니다.
-
==============================
8.먼저 Hadoop이 RDBMS보다 빠른 대안으로 만들어 졌음을 분명히해야합니다. RDBMS에서 많은 시간이 걸린 매우 빠른 속도로 많은 양의 데이터를 처리합니다.
먼저 Hadoop이 RDBMS보다 빠른 대안으로 만들어 졌음을 분명히해야합니다. RDBMS에서 많은 시간이 걸린 매우 빠른 속도로 많은 양의 데이터를 처리합니다.
이제는 두 가지 용어를 알아야합니다.
지난 몇 년 동안 많은 양의 데이터가 생성되었으며 데이터가 대부분 구조화되지 않았기 때문에 HADOOP가 탄생했습니다. 주로 RDBMS를 사용하여 처리 할 수없는 많은 양의 데이터에 사용되었습니다. 실시간으로 비교적 작은 데이터에는 사용할 수 없지만 최신 버전에서는 단점을 제거 할 수 있다는 단점이있었습니다.
더 나아 가기 전에 새로운 도구가 이전 도구에 결함이있을 때 만들어 짐을 알려드립니다. 따라서, 이전 도구의 문제점을 극복하기 위해 작성된 도구가 표시됩니다.
Hadoop은 단순히 Mapreduce와 HDFS의 두 가지로 말할 수 있습니다. Mapreduce는 처리가 이루어지는 곳이며 HDFS는 데이터가 저장되는 DataBase입니다. 이 구조는 WORM 주체 즉, 한번 쓰고 여러 번 읽습니다. 따라서 HDFS에 데이터를 저장 한 후에는 변경할 수 없습니다. 이로 인해 NASEQL 제품인 HBASE가 만들어졌고, 데이터를 한 번 작성한 후에도 데이터를 변경할 수 있습니다.
그러나 시간이 흐르면서 하둡은 많은 단점을 가지고 있으며,이를 위해 하둡 구조에서 다른 환경을 만들었습니다. PIG와 HIVE는 두 가지 보편적 인 예입니다.
HIVE는 SQL 배경을 가진 사람들을 위해 만들어졌습니다. 작성된 조회는 HIVEQL로 명명 된 SQL과 유사합니다. HIVE는 완전히 구조화 된 데이터를 처리하기 위해 개발되었습니다. 구조화되지 않은 데이터에는 사용되지 않습니다.
반면에 PIG는 자체 검색어 언어, 즉 PIG LATIN을 가지고 있습니다. 구조화 된 데이터와 구조화되지 않은 데이터 모두에 사용할 수 있습니다.
HIVE를 사용할 때와 PIG를 사용할 때의 차이점으로 이동하면서 PIG 건축가 이외의 다른 사람은 말할 수 없다고 생각합니다. 링크를 클릭하십시오 : https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html
-
==============================
9.몇 마디로 대답하겠습니다.
몇 마디로 대답하겠습니다.
Hadoop은 다른 모든 도구로 구성된 생태계입니다. 따라서 Hadoop을 비교할 수는 없지만 MapReduce를 비교할 수는 있습니다.
다음은 몇 센트입니다.
-
==============================
10.돼지 : 파일 처리 및 데이터 정리가 더 좋습니다. 예 : null 값 제거, 문자열 처리, 불필요한 값 하이브 : 정리 된 데이터 쿼리
돼지 : 파일 처리 및 데이터 정리가 더 좋습니다. 예 : null 값 제거, 문자열 처리, 불필요한 값 하이브 : 정리 된 데이터 쿼리
-
==============================
11.1. 우리는 대형 데이터 (i.s.structured, Unstructured and Semistructured data)를 txt, csv와 같은 형식 파일 형식으로 저장하기 위해 Hadoop을 사용하고 있습니다.
1. 우리는 대형 데이터 (i.s.structured, Unstructured and Semistructured data)를 txt, csv와 같은 형식 파일 형식으로 저장하기 위해 Hadoop을 사용하고 있습니다.
2. 우리가 데이터에서 원주 형 업데이트를 원하면 Hbase 도구를 사용하고 있습니다.
3. 하이브의 경우 구조화 된 형식의 빅 데이터를 저장하고 있습니다. 그 외에도 우리는 그 데이터에 대한 분석을 제공하고 있습니다.
4. 돼지는 돼지 라틴어를 사용하여 모든 형식 (구조, 반 구조 및 비 구조)의 데이터를 분석하는 도구입니다.
-
==============================
12.돼지의 클렌징 데이터는 매우 쉽습니다. 돼지를 통해 데이터를 정리하고 하이브를 통해 데이터를 처리 한 다음 나중에 hdfs로 업로드하는 것이 좋습니다.
돼지의 클렌징 데이터는 매우 쉽습니다. 돼지를 통해 데이터를 정리하고 하이브를 통해 데이터를 처리 한 다음 나중에 hdfs로 업로드하는 것이 좋습니다.
-
==============================
13.Hive, Hbase 및 Pig w.r.t 사용 다른 프로젝트에서 내 실시간 경험.
Hive, Hbase 및 Pig w.r.t 사용 다른 프로젝트에서 내 실시간 경험.
하이브는 주로 다음 용도로 사용됩니다.
돼지는 주로 다음 용도로 사용됩니다 :
Hbase가 주로 사용됩니다.
from https://stackoverflow.com/questions/13911501/when-to-use-hadoop-hbase-hive-and-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Hadoop YARN에서 'mapreduce.map.memory.mb'와 'mapred.map.child.java.opts'의 관계는 무엇입니까? (0) | 2019.05.31 |
---|---|
[HADOOP] MapReduce 정렬 알고리즘은 어떻게 작동합니까? (0) | 2019.05.31 |
[HADOOP] spark-submit을 통해 추가 병을 Spark에 전달 (0) | 2019.05.31 |
[HADOOP] 돼지 - 발견 된 인터페이스 org.apache.hadoop.mapreduce.JobContext, 그러나 클래스가 예상됩니다. (0) | 2019.05.31 |
[HADOOP] hadoop 작업에 외부 항아리를 추가하는 방법? (0) | 2019.05.31 |