복붙노트

[HADOOP] 돼지 대 하이브 대 네이티브지도 감소

HADOOP

돼지 대 하이브 대 네이티브지도 감소

나는 돼지, 하이브 추상화가 무엇인지에 대한 기본적인 이해를했습니다. 그러나 Hive, Pig 또는 기본 맵 축소가 필요한 시나리오에 대해서는 명확한 아이디어가 없습니다.

나는 Hive가 구조화 된 처리를위한 것이고 Pig가 구조화되지 않은 처리를위한 것이라는 점을 기본적으로 지적한 몇 가지 기사를 읽었습니다. 언제 네이티브 맵 축소가 필요합니까? 돼지 또는 하이브를 사용하여 해결할 수없는 몇 가지 시나리오를 지적 할 수 있지만 기본 맵은 줄입니까?

해결법

  1. ==============================

    1.중첩 된 if ... else .. 구조체가 많은 복잡한 분기 논리는 표준 MapReduce에서 구현하기가 쉽고 빠르며 Pangool을 사용할 수있는 구조화 된 데이터를 처리하기 위해 JOIN과 같은 작업을 단순화합니다. 또한 표준 MapReduce는 데이터 처리 흐름에 필요한 MapReduce 작업의 수를 최소화하기 위해 완벽하게 제어 할 수 있으므로 성능으로 변환됩니다. 그러나 변경 사항을 코딩하고 도입하는 데 더 많은 시간이 필요합니다.

    중첩 된 if ... else .. 구조체가 많은 복잡한 분기 논리는 표준 MapReduce에서 구현하기가 쉽고 빠르며 Pangool을 사용할 수있는 구조화 된 데이터를 처리하기 위해 JOIN과 같은 작업을 단순화합니다. 또한 표준 MapReduce는 데이터 처리 흐름에 필요한 MapReduce 작업의 수를 최소화하기 위해 완벽하게 제어 할 수 있으므로 성능으로 변환됩니다. 그러나 변경 사항을 코딩하고 도입하는 데 더 많은 시간이 필요합니다.

    Apache Pig는 구조화 된 데이터에도 적합하지만 데이터의 BAG (키에 그룹화 된 모든 행)로 작업 할 수있는 장점은 다음과 같이 구현하는 것이 더 간단합니다.

    Hive는 임의 (ad-hoc) 쿼리에 더 적합하지만, 주된 이점은 데이터를 저장하고 분할하는 엔진이 있다는 것입니다. 그러나 그 테이블은 Pig 또는 Standard MapReduce에서 읽을 수 있습니다.

    한 가지 더, Hive와 Pig는 계층 적 데이터로 작업하기에 적합하지 않습니다.

  2. ==============================

    2.짧은 대답 - 우리는 데이터를 처리하려는 방식에 대해 매우 깊은 수준의 세밀한 제어가 필요할 때 MapReduce가 필요합니다. 때로는 Pig 및 Hive 쿼리와 관련하여 정확히 필요한 것을 표현하는 것이 매우 편리합니다.

    짧은 대답 - 우리는 데이터를 처리하려는 방식에 대해 매우 깊은 수준의 세밀한 제어가 필요할 때 MapReduce가 필요합니다. 때로는 Pig 및 Hive 쿼리와 관련하여 정확히 필요한 것을 표현하는 것이 매우 편리합니다.

    Pig 또는 Hive를 통해 MapReduce를 사용할 수있는 것은 완전히 불가능합니다. 돼지와 하이브가 제공하는 유연성의 수준으로 어떻게 든 목표를 달성 할 수는 있지만 그다지 원활하지 않을 수 있습니다. 당신은 UDF를 작성하거나 무언가를하고 그것을 달성 할 수 있습니다.

    이러한 도구의 사용법과 같은 명확한 구별은 없습니다. 그것은 전적으로 귀하의 특정 유스 케이스에 달려 있습니다. 데이터와 처리 종류에 따라 요구 사항에 맞는 도구를 더 잘 결정해야합니다.

    편집하다 :

    언젠가 전에 나는 지진 데이터를 수집하고 그것에 대한 분석을 실행해야만했던 유스 케이스를 가졌다. 이 데이터를 보관하는 파일의 형식은 다소 이상합니다. 데이터의 일부는 EBCDIC으로 인코딩되었지만 나머지 데이터는 바이너리 형식이었습니다. 그것은 기본적으로 \ n 또는 어떤 것과 같은 분리 문자가없는 평면 바이너리 파일이었습니다. 돼지 또는 하이브를 사용하여 이러한 파일을 처리하는 몇 가지 방법을 찾는 데 어려움을 겪었습니다. 그 결과 나는 MR과 합의해야했다. 초기에는 시간이 걸렸지 만 기본 템플릿을 준비하고 나면 MR이 신속하게 진행됨에 따라 점차 매끄럽게되었습니다.

    그래서 이전에 말한 것처럼 기본적으로 사용 사례에 따라 다릅니다. 예를 들어, 데이터 집합의 각 레코드를 반복하는 작업은 돼지 (foreach)에서 매우 쉽지만 foreach가 필요한 경우에는 어떻게해야합니까 ?? 따라서 데이터를 처리하는 방식에 대해 "그"수준의 제어가 필요할 때 MR이 더 적합합니다.

    또 다른 상황은 데이터가 행 기반이 아닌 계층 구조이거나 데이터가 매우 체계적이지 않은 경우 일 수 있습니다.

    Pig / Hive를 사용하는 대신 MR을 사용하여 작업 체인 및 작업 병합과 관련된 메타 패턴 문제를 쉽게 해결할 수 있습니다.

    때로는 돼지 / 하이브를 사용하는 것과 비교하여 일부 xyz 도구를 사용하여 특정 작업을 수행하는 것이 매우 편리합니다. IMHO, MR은 그러한 상황에서도 더 나은 것으로 나타났습니다. 예를 들어 BigData에 대한 통계 분석이 필요한 경우 Hadoop 스트리밍과 함께 사용되는 R이 가장 좋은 옵션 일 것입니다.

    HTH

  3. ==============================

    3.Mapreduce :

    Mapreduce :

    Strengths:
          works both on structured and unstructured data.
          good for writing complex business logic.
    
    Weakness:
         long development type
         hard to achieve join functionality
    

    하이브 :

    Strengths:
         less development time.
         suitable for adhoc analysis.
         easy for joins
    
    Weakness :
         not easy for complex business logic.
         deals only structured data.
    

    돼지

    Strengths :
          Structured and unstructured data.
          joins are easily written.
    
    Weakness:
         new language to learn.
         converted into mapreduce.
    
  4. ==============================

    4.하이브

    하이브

    장점 :

    SQL 같은 데이터베이스 사용자는 그것을 좋아합니다. 구조화 된 데이터를 잘 지원합니다. 현재 데이터베이스 스키마와 구조를 지원합니다. 동시 다중 사용자, 다중 세션 시나리오를 지원합니다. 더 큰 커뮤니티 지원. 하이브, 하이버 서버, 하이버 서버 2, 임팔라, 센트리 이미

    단점 : 데이터가 커지면 성능이 저하되고 메모리는 흐름 문제보다 커집니다. 캔트는 그걸로 많은 것을 할 수 있습니다. 계층 적 데이터는 하나의 도전입니다. 구조화되지 않은 데이터에는 udf와 같은 구성 요소가 필요합니다. 다중 기술의 조합은 대용량 데이터 등의 경우 UTDF를 사용하는 악몽 동적 부분이 될 수 있습니다.

    돼지: 장점 : 훌륭한 스크립트 기반 데이터 흐름 언어.

    단점 :

    구조화되지 않은 데이터에는 udf와 같은 구성 요소가 필요합니다. 큰 커뮤니티 지원이 아닙니다.

    MapReudce : 장점 : 당신이 구현하고자하는 조인의 종류가 몇 줄의 코드로 구현할 수 있다는 것을 이해한다면 "조인 기능을 얻기가 어렵다"는 것에 동의하지 마십시오. 대부분의 경우 MR은 더 나은 성과를 산출합니다. 계층 적 데이터에 대한 MR 지원은 특히 나무와 유사한 구조를 구현합니다. 데이터 파티셔닝 / 인덱싱시 제어력 향상. 직업 체인.

    단점 : 더 나은 성능 등을 얻으려면 api를 잘 알아야합니다. 코드 / 디버그 / 유지 관리

  5. ==============================

    5.Hadoop Map Reduce가 Hive 또는 PIG보다 선호되는 시나리오

    Hadoop Map Reduce가 Hive 또는 PIG보다 선호되는 시나리오

    돼지 / 하이브 (pig / hive)의 장점 :

    돼지 대 하이브 비교를위한이 포스트를보십시오.

  6. ==============================

    6.PIG와 HIVE를 사용하여 우리가 할 수있는 모든 일은 MR을 사용하여 달성 할 수 있습니다 (때로는 시간이 많이 걸릴 것입니다). PIG와 HIVE는 밑에 MR / SPARK / TEZ를 사용합니다. MR이 할 수있는 모든 일은 Hive와 PIG에서 가능하거나 불가능할 수 있습니다.

    PIG와 HIVE를 사용하여 우리가 할 수있는 모든 일은 MR을 사용하여 달성 할 수 있습니다 (때로는 시간이 많이 걸릴 것입니다). PIG와 HIVE는 밑에 MR / SPARK / TEZ를 사용합니다. MR이 할 수있는 모든 일은 Hive와 PIG에서 가능하거나 불가능할 수 있습니다.

  7. ==============================

    7.여기에 큰 비교가 있습니다. 모든 유스 케이스 시나리오를 지정합니다.

    여기에 큰 비교가 있습니다. 모든 유스 케이스 시나리오를 지정합니다.

  8. from https://stackoverflow.com/questions/17950248/pig-vs-hive-vs-native-map-reduce by cc-by-sa and MIT license