복붙노트

[HADOOP] 맵리 듀스 작업을 기본 호출하지 않는 하이브 명령에 대한

HADOOP

맵리 듀스 작업을 기본 호출하지 않는 하이브 명령에 대한

나의 이해는 하이브는 기본 맵리 듀스 프로그램을 호출하여 데이터베이스 관련 작업을 수행 할 수있는 SQL과 같은 언어이다. 그러나, 나는 몇 가지 하이브는 맵리 듀스 작업을 호출하지 않는 명령 것을 배웠다. 나는이 명령이 무엇인지 알고하는 것이 궁금하고, 왜 그들이 맵리 듀스 작업을 호출 할 필요가 없습니다.

해결법

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

    1.당신은 하이브는 데이터를 처리하기 위해 배경에 MR 작업을 사용하여, 권리이다. 당신이 하이브 쿼리 같은 SQL을 발사 할 때, 배경에 다양 MR 작업으로 변환하고 당신에게 결과를 제공합니다.

    당신은 하이브는 데이터를 처리하기 위해 배경에 MR 작업을 사용하여, 권리이다. 당신이 하이브 쿼리 같은 SQL을 발사 할 때, 배경에 다양 MR 작업으로 변환하고 당신에게 결과를 제공합니다.

    MR 작업을 필요 나던 거의 쿼리를 이루어야한다고들한다. 에 대한 예 :

    LIMIT 테이블 (10)로부터 SELECT *;

    위의 쿼리에서 보면 우리는 어떤 데이터 처리를 필요 없어요. 우리가 필요로하는 모든 테이블에서 몇 행을 읽기 위해 단지이다.

    따라서 위 하이브 쿼리는 MR 작업을 발생하지 않습니다

    그러나 우리는 약간 위의 쿼리를 수정합니다.

    테이블 SELECT COUNT (*);

    그것은 MR 작업을 실행됩니다. 우리는 신속하게 우리를 위해 그것을 할 것이 쿼리 및 MR 작업에 대한 모든 데이터를 읽을 필요가 있기 때문에 (병렬 처리)

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

    2.하이브 테이블이 HDFS에서 파일의 형태로 저장되어 있기 때문에, 처리 시간과 노력이 맵리 듀스 호출을 피하고 직접 전체 파일 또는 일부를 가져 오는하여 '선택 *' '* 제한 선택'등의 작업에 대한 하이브로 저장됩니다 HDFS에서 파일을 사용자에게 표시.

    하이브 테이블이 HDFS에서 파일의 형태로 저장되어 있기 때문에, 처리 시간과 노력이 맵리 듀스 호출을 피하고 직접 전체 파일 또는 일부를 가져 오는하여 '선택 *' '* 제한 선택'등의 작업에 대한 하이브로 저장됩니다 HDFS에서 파일을 사용자에게 표시.

    어쨌든,이 기본 동작은 모든 작업을위한 프로그램을지도-감소 호출 하이브의 site.xml hive.fetch.task.conversion 속성을 수정하여 변경할 수 있습니다.

  3. from https://stackoverflow.com/questions/29337451/regarding-the-hive-commands-that-do-not-invoke-underlying-mapreduce-jobs by cc-by-sa and MIT license