Hadoop의 Apache Pig 아키텍처: 기능, 애플리케이션, 실행 흐름
게시 됨: 2020-06-26목차
Apache Pig가 인기 있는 이유
Hadoop은 빅 데이터를 분석하고 처리하기 위해 Map Reduce를 사용합니다. Map Reduce는 Java로 작성된 프로그램입니다. 그러나 개발자는 이러한 긴 Java 코드를 작성하고 유지 관리하는 것이 어렵다고 생각합니다. Apache Pig를 사용하면 개발자는 복잡한 Java 코드를 사용하지 않고도 대규모 데이터 세트를 빠르게 분석하고 처리할 수 있습니다. Yahoo 연구원이 개발한 Apache Pig는 광범위한 데이터 세트에서 Map Reduce 작업을 실행하고 개발자가 데이터를 효율적으로 처리할 수 있는 쉬운 인터페이스를 제공합니다.
Apache Pig는 Java 프로그래밍을 이해하지 못하는 사람들에게 도움이 되었습니다. 오늘날 Apache Pig는 유연성을 제공하고 코드 복잡성을 줄이며 노력이 덜 필요하기 때문에 개발자들 사이에서 매우 인기가 있습니다. 초보자이고 데이터 과학에 대해 더 자세히 알고 싶다면 최고의 대학에서 제공하는 데이터 과학 과정을 확인하십시오.
Map Reduce 대 Apache Pig
다음 표에는 Map Reduce와 Apache Pig의 차이점이 요약되어 있습니다.
아파치 돼지 | 맵 리듀스 |
스크립팅 언어 | 컴파일된 언어 |
더 높은 수준의 추상화 제공 | 낮은 수준의 추상화 제공 |
몇 줄의 코드 필요(10줄의 코드로 200줄의 Map Reduce 코드를 요약할 수 있음) | 더 광범위한 코드 필요(더 많은 코드 라인) |
개발 시간과 노력이 덜 필요합니다. | 더 많은 개발 시간과 노력이 필요합니다. |
낮은 코드 효율성 | Apache Pig와 비교하여 더 높은 코드 효율성 |
아파치 피그 기능
Apache Pig는 다음 기능을 제공합니다.
- 프로그래머가 더 적은 줄의 코드를 작성할 수 있습니다. 프로그래머는 Pig Latin 언어를 사용하여 단 10줄로 200줄의 Java 코드를 작성할 수 있습니다.
- Apache Pig 다중 쿼리 접근 방식은 개발 시간을 단축합니다.
- Apache pig에는 조인, 필터, 정렬, 로드, 그룹 등과 같은 작업을 수행하기 위한 풍부한 데이터 세트가 있습니다.
- Pig 라틴 언어는 SQL과 매우 유사합니다. 좋은 SQL 지식을 가진 프로그래머는 Pig 스크립트를 쉽게 작성할 수 있습니다.
- 프로그래머가 더 적은 줄의 코드를 작성할 수 있습니다. 프로그래머는 Pig Latin 언어를 사용하여 단 10줄로 200줄의 Java 코드를 작성할 수 있습니다.
- Apache Pig는 정형 및 비정형 데이터 분석을 모두 처리합니다.
Apache Pig 애플리케이션
Apache Pig 애플리케이션 중 일부는 다음과 같습니다.
- 대용량 데이터 처리
- 대규모 데이터 세트에서 빠른 프로토타이핑 및 임시 쿼리 지원
- 검색 플랫폼에서 데이터 처리 수행
- 시간에 민감한 데이터 로드 처리
- 통신 회사에서 사용자 통화 데이터 정보를 익명화하기 위해 사용합니다.
아파치 돼지 란 무엇입니까?
맵 리듀스는 프로그램이 맵 및 리듀스 단계로 변환되어야 합니다. 모든 데이터 분석가가 Map Reduce에 익숙하지 않았기 때문에 Apache pig는 격차를 메우기 위해 Yahoo 연구원에 의해 도입되었습니다. Pig는 높은 수준의 추상화를 제공하고 프로그래머가 복잡한 Map Reduce 프로그램을 작성하는 데 더 적은 시간을 할애할 수 있도록 하는 Hadoop 위에 구축되었습니다. 돼지는 약어가 아닙니다. 그것은 가축의 이름을 따서 명명되었습니다. 동물 돼지가 무엇이든 먹듯이 Pig는 모든 종류의 데이터에 대해 작업할 수 있습니다.
원천
Hadoop의 Apache Pig 아키텍처
Apache Pig 아키텍처 는 Pig Latin 스크립트를 사용하여 방대한 데이터 세트를 처리하고 분석하는 Pig Latin 인터프리터로 구성됩니다. 프로그래머는 Pig Latin 언어를 사용하여 Hadoop 환경에서 대규모 데이터 세트를 분석합니다. Apache pig에는 조인, 필터, 정렬, 로드, 그룹 등과 같은 다양한 데이터 작업을 수행하기 위한 풍부한 데이터 세트가 있습니다.
프로그래머는 특정 작업을 수행하기 위해 Pig 스크립트를 작성하기 위해 Pig 라틴 언어를 사용해야 합니다. Pig는 이러한 Pig 스크립트를 일련의 Map-Reduce 작업으로 변환하여 프로그래머의 작업을 용이하게 합니다. Pig Latin 프로그램은 UDF, 임베디드 및 Grunt 쉘과 같은 다양한 메커니즘을 통해 실행됩니다.
Apache Pig 아키텍처 는 다음과 같은 주요 구성 요소로 구성됩니다.
- 파서
- 옵티마이저
- 컴파일러
- 실행 엔진
- 실행 모드
이 모든 Pig 구성 요소를 자세히 연구해 보겠습니다.
돼지 라틴어 스크립트
Pig 스크립트는 원하는 결과를 생성하기 위해 Pig 실행 환경에 제출됩니다.
다음 방법 중 하나를 사용하여 Pig 스크립트를 실행할 수 있습니다.
- 그런트 쉘
- 스크립트 파일
- 임베디드 스크립트
파서
파서는 모든 Pig Latin 문 또는 명령을 처리합니다. Parser는 구문 검사, 유형 검사와 같은 Pig 문에 대한 여러 검사를 수행하고 DAG(Directed Acyclic Graph) 출력을 생성합니다. DAG 출력은 스크립트의 모든 논리 연산자를 노드로, 데이터 흐름을 에지로 나타냅니다.

옵티마이저
파싱 작업이 완료되고 DAG 출력이 생성되면 출력이 옵티마이저로 전달됩니다. 그런 다음 옵티마이저는 출력에 대해 분할, 병합, 프로젝션, 푸시다운, 변환, 재정렬 등의 최적화 활동을 수행합니다. 옵티마이저는 추출된 데이터를 처리하고 푸시다운 및 프로젝션 활동을 수행하여 불필요한 데이터 또는 열을 생략하고 쿼리 성능을 향상시킵니다. .
컴파일러
컴파일러는 최적화 프로그램에서 생성된 출력을 일련의 Map Reduce 작업으로 컴파일합니다. 컴파일러는 자동으로 Pig 작업을 Map Reduce 작업으로 변환하고 실행 순서를 재정렬하여 성능을 최적화합니다.
실행 엔진
위의 모든 작업을 수행한 후 이러한 Map Reduce 작업은 실행 엔진에 제출된 다음 Hadoop 플랫폼에서 실행되어 원하는 결과를 생성합니다. 그런 다음 DUMP 문을 사용하여 화면에 결과를 표시하거나 STORE 문을 사용하여 HDFS (Hadoop Distributed File System)에 결과를 저장할 수 있습니다.
실행 모드
Apache Pig는 로컬 및 Map Reduce의 두 가지 실행 모드에서 실행됩니다. 실행 모드의 선택은 데이터가 저장된 위치와 Pig 스크립트를 실행하려는 위치에 따라 다릅니다. 데이터를 로컬(단일 머신) 또는 분산 Hadoop 클러스터 환경에 저장할 수 있습니다.
- 로컬 모드 – 데이터 세트가 작은 경우 로컬 모드를 사용할 수 있습니다. 로컬 모드에서 Pig는 로컬 호스트 및 파일 시스템을 사용하여 단일 JVM에서 실행됩니다. 이 모드에서는 모든 파일이 로컬 호스트에 설치되어 실행되기 때문에 병렬 매퍼 실행이 불가능합니다. pig -x local 명령을 사용하여 로컬 모드를 지정할 수 있습니다 .
- 맵 축소 모드 – Apache Pig는 기본적으로 맵 축소 모드를 사용합니다. Map Reduce 모드에서 프로그래머는 HDFS(Hadoop Distributed File System) 에 이미 저장된 데이터에 대해 Pig Latin 문을 실행합니다. pig -x mapreduce 명령을 사용하여 Map-Reduce 모드를 지정할 수 있습니다 .
원천
돼지 라틴 데이터 모델
Pig 라틴 데이터 모델을 사용하면 Pig는 모든 종류의 데이터를 처리할 수 있습니다. Pig Latin 데이터 모델은 완전히 중첩되어 정수, 부동 소수점과 같은 원자 및 맵 및 튜플과 같은 비원자 복합 데이터 유형을 모두 처리할 수 있습니다.
데이터 모델을 심층적으로 이해해 보겠습니다.
- Atom – Atom 은 문자열 형식으로 저장된 단일 값이며 숫자와 문자열로 사용할 수 있습니다. Pig의 원자 값은 integer, double, float, 바이트 배열 및 char 배열입니다. 단일 원자 값은 필드라고도 합니다.
예: "Kiara" 또는 27
- 튜플 – 튜플은 정렬된 필드 집합(모든 유형)을 포함하는 레코드입니다. 튜플은 RDBMS(관계형 데이터베이스 관리 시스템) 의 행과 매우 유사합니다.
예를 들어 (키아라, 27)
- Bag – 원자는 문자열 형식으로 저장된 단일 값이며 숫자와 문자열로 사용할 수 있습니다. Pig의 원자 값은 integer, double, float, 바이트 배열 및 char 배열입니다. 단일 원자 값은 필드라고도 합니다.
예: {(Kiara, 27), (Kehsav, 45)}
- 맵 – 키-값 쌍 세트를 맵이라고 합니다. 키는 고유해야 하며 char 배열 유형이어야 합니다. 그러나 값은 모든 종류가 될 수 있습니다.
예: [이름#키아라, 나이#27]
- 관계 – 튜플의 백을 관계라고 합니다.
돼지 잡의 실행 흐름
다음 단계에서는 Pig 작업의 실행 흐름을 설명합니다.
- 개발자는 Pig 라틴어 언어를 사용하여 Pig 스크립트를 작성하고 로컬 파일 시스템에 저장합니다.
- Pig 스크립트를 제출한 후 Apache Pig는 컴파일러와의 연결을 설정하고 출력으로 일련의 Map Reduce 작업을 생성합니다.
- Pig 컴파일러는 HDFS에서 원시 데이터를 수신하여 작업을 수행하고 Map Reduce 작업이 완료된 후 결과를 HDFS에 저장합니다.
또한 읽기: Apache Pig 자습서
결론
이 블로그에서는 Apache Pig 아키텍처 , Pig 구성 요소, Map Reduce와 Apache Pig의 차이점, Pig 라틴 데이터 모델 및 Pig 작업의 실행 흐름에 대해 배웠습니다.
Apache Pig는 쉬운 인터페이스가 있는 플랫폼을 제공하고 코드 복잡성을 줄이며 효율적으로 결과를 얻을 수 있도록 도와주기 때문에 프로그래머에게 도움이 됩니다. Yahoo, eBay, LinkedIn 및 Twitter는 Pig를 사용하여 대용량 데이터를 처리하는 회사입니다.
Apache Pig, 데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍, 업계 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 경영자 PG 프로그램을 확인하십시오. 전문가, 업계 멘토와의 1:1 학습, 최고의 기업과의 400시간 이상의 학습 및 직업 지원.
Apache Pig의 기능은 무엇입니까?
Apache Pig는 대규모 데이터 세트 처리에 사용되는 매우 높은 수준의 도구 또는 플랫폼입니다. 데이터 분석 코드는 Pig Latin이라는 고급 스크립팅 언어를 사용하여 개발되었습니다. 첫째, 프로그래머는 데이터를 특정 맵으로 처리하고 작업을 줄이기 위해 Pig Latin 스크립트를 작성할 것입니다. Apache Pig에는 매우 유용한 도구가 되는 많은 기능이 있습니다.
1. 정렬, 조인, 필터 등과 같은 다양한 작업을 수행할 수 있는 풍부한 연산자 세트를 제공합니다.
2. Apache Pig는 배우고, 읽고, 쓰기 쉽기 때문에 SQL 프로그래머에게 유익한 것으로 간주됩니다.
3. 사용자 정의 기능과 프로세스를 쉽게 만들 수 있습니다.
4. 모든 프로세스 또는 기능에 더 적은 수의 코드 라인이 필요합니다.
5. 사용자가 구조화되지 않은 데이터와 구조화된 데이터를 모두 분석할 수 있습니다.
6. Join 및 Split 작업은 수행하기가 매우 쉽습니다.
Apache Pig에서 사용 가능한 실행 모드는 무엇입니까?
Apache Pig는 두 가지 다른 모드에서 실행할 수 있습니다.
1. 로컬 모드 - 모든 파일이 이 모드에서 로컬 파일 시스템과 로컬 호스트에서 설치되고 실행됩니다. 일반적으로 이 모드는 테스트 목적으로 사용됩니다. 여기에서는 HDFS나 Hadoop이 필요하지 않습니다.
2. MapReduce 모드 - MapReduce 모드에서 Apache Pig는 Hadoop 파일 시스템(HDFS)에 이미 존재하는 데이터를 로드하고 처리하는 데 사용됩니다. MapReduce 작업은 데이터 처리를 위해 Pig Latin 문을 실행하려고 할 때마다 백엔드에서 호출됩니다. HDFS에 이미 존재하는 데이터에 대해 특정 작업을 수행합니다.
Apache Pig의 주요 애플리케이션은 무엇입니까?
Apache Pig는 Java 프로그래밍을 능숙하게 이해할 수 없었던 모든 프로그래머에게 유익한 것으로 판명되었습니다. Apache Pig의 가장 좋은 점은 유연성을 제공하고 다른 플랫폼보다 적은 노력이 필요하며 코드의 복잡성을 줄인다는 것입니다.
Apache Pig의 주요 애플리케이션은 다음과 같습니다.
1. 데이터세트에서 대량의 데이터 처리
2. 샘플링을 사용하여 분석적 통찰력이 필요한 모든 곳에서 유용합니다.
3. 웹 크롤링 및 검색 로그 형태의 대용량 데이터 세트 수집용
4. 대용량 데이터셋 처리 알고리즘의 프로토타이핑에 필요