대용량의 빅데이터를 분석해야 할 때 single machie 메모리 기반인 프로그램들은  메모리 full 나서 아예 데이터를 load를 못하거나겨우 load를 했어도 분산병렬처리가 안되어서 연산 시간이 매우 오래걸리는 경우로 힘들다.


MapReduce로 분산병렬처리를 할때Hadoop MapReduce가 Java 로 되어있다보니 java나 python을 통하여 driver , mapper, reducer를 프로그래밍하게 된다. 하지만 이는 Data Scientist입장에서는 배우기 힘든 언어이고, 따라서 분석의 비효율을 낳게 된다. 그래서 나온것이 페이스북의 Hive와 야후의 Pig이다. 이는 각각 SQL과 Perl이랑 비슷하여  Data Scientist들에게 쉬운 분석환경을 제공한다. 그 중 Hive는 Structued Data를 분석하는 용으로 쓰인다. Hive를 쓸 줄 알면 대용량 데이터 전처리하는데 아주 요긴하다. SQL을 알고 있으면 배우기도 쉽기에 기존 DW를 Big Data로 porting할 때 Hive를 사용하면 생산성이 올라간다.그리고 local에서와 HDFS에서 DBMS를 옮기기 위해서는 sqoop을 이용해서 옮긴다. 그럼 자세히 알아보도록하자. 



아파치 하이브(Apache Hive)

하둡에서 동작하는 데이터 웨어하우스(Data Warehouse) 인프라 구조로서 데이터 요약질의 및 분석 기능을 제공한다초기에는 페이스북에서 개발되었지만 넷플릭스등과 같은 회사에서 사용되고 있으며 개발되고 있다.

아파치 하이브는 아파치 HDFS이나 아파치 HBase와 같은 데이터 저장 시스템에 저장되어 있는 대용량 데이터 집합들을 분석한다. HiveQL 이라고 불리는 SQL같은 언어를 제공하며 맵리듀스의 모든 기능을 지원한다쿼리를 빠르게 하기위해 비트맵 인덱스를 포함하여 인덱스 기능을 제공한다.

기본적으로 하이브는 메타데이터를 내장된 아파치 더비(Derby) 데이터 베이스 안에 저장한다그렇지만 MySQL과 같은 다른 서버/클라이언트 데이터 베이스를 사용할 수 있는 선택권을 제공한다현재 TEXTFILE, SEQUENCEFILE, ORC 그리고 RCFILE등 4개의 파일 포맷을 지원한다.


피그(Pig)

대용량 데이터 집합을 분석하기 위한 플랫폼으로 아파치 하둡(Apache Hadoop)을 이용하여 맵리듀스(MapReduce)를 사용하기 위한 높은 수준의 스크립트 언어와 이를 위한 인프라로 구성되어 있다.


현재, 피그의 인프라 구조 계층은 컴파일러로 구성되어 있으며 대용량 병렬처리를 위한 맵리듀스 프로그램의 데이터 변환 순서를 만든다. 피그의 언어 계층은 현재 피그 라틴이라 불리는 텍스트 기반의 언어로 이루어져 있다. 이것의 주요 특징은 프그래밍하기가 쉬우며, 최적화 할 수 있는 방법을 제공하고 사용자가 특수 목적을 위한 자신의 함수를 만들 수 있는 확장성을 제공한다는 것이다.


피그는 처음에 야후 연구소에서 2006년경에 매우 커다란 데이터 집합들을 처리하기 위한 맵리듀스 쟙들을 계획하지 않고 필요할 때 생성하고 처리하기 위한 방법을 연구하는 목적으로 개발되었다. 2007년에 아파치 소프트웨어 재단으로 옮겨졌다.


스쿱(Sqoop)

구조화된 관계형 데이터 베이스와 아파치 하둡간의 대용량 데이터들을 효율적으로 변환하여 주는 명령 줄 인터페이스(Command-Line Interface) 애플리케이션이다


 오라클 또는 MySQL같은 관계형 데이터 베이스에서 하둡 분산 파일 시스템으로 데이터들을 가져와서 그 데이터들을 하둡 맵리듀스로 변환을 하고그 변환된 데이터들을 다시 관계형 데이터 베이스로 내보낼 수 있다


 스쿱은 데이터의 가져오기와 내보내기를 맵리듀스를 통해 처리하여 장애 허용 능력뿐만 아니라 병렬 처리가 가능하게 한다스쿱은 2012년 3월 최상위 아파치 프로젝트가 되었다.

'Hadoop ecosystem > MapReduce' 카테고리의 다른 글

Indexing  (0) 2018.04.14
InputType  (0) 2018.04.14
MapReduce 3  (1) 2018.04.09
MapReduce 2  (0) 2017.05.03
Map Reduce 1  (0) 2017.05.02

+ Recent posts