복붙노트

[HADOOP] S3 위치로 하이브에 외부 테이블을 만들면 데이터가 전송됩니까?

HADOOP

S3 위치로 하이브에 외부 테이블을 만들면 데이터가 전송됩니까?

Amazon S3 소스 위치가있는 Hive (Hadoop)의 외부 테이블을 만들 때 로컬 Hadoop HDFS로 전송되는 데이터는 다음과 같습니다.

S3 읽기에 대해 여기에 드는 비용은 얼마입니까? HDFS로 데이터를 전송하는 데 단일 비용이 들거나 데이터 전송 비용이 없지만 Hive에서 만든 MapReduce 작업이이 외부 테이블에서 실행될 때 읽기 비용이 발생합니다.

예제 외부 테이블 정의는 다음과 같습니다.

CREATE EXTERNAL TABLE mydata (key STRING, value INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '='
LOCATION 's3n://mys3bucket/';

해결법

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

    1.지도 작업은 S3에서 직접 데이터를 읽습니다. Map과 Reduce 단계 사이에 데이터가 로컬 파일 시스템에 기록되고 mapreduce 작업 (여러 작업이 필요한 쿼리에서) 사이에 임시 데이터가 HDFS에 기록됩니다.

    지도 작업은 S3에서 직접 데이터를 읽습니다. Map과 Reduce 단계 사이에 데이터가 로컬 파일 시스템에 기록되고 mapreduce 작업 (여러 작업이 필요한 쿼리에서) 사이에 임시 데이터가 HDFS에 기록됩니다.

    S3 읽기 비용이 걱정된다면 HDFS에 저장된 다른 테이블을 만들고 S3 테이블에서 HDFS 테이블로 한 번 복사하는 것이 좋습니다.

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

    2.쿼리 (MR 작업)가 데이터에 액세스 할 때 데이터가 hadoop 노드로 전송됩니다. 외부 테이블 만들기는 Hive 메타 데이터 만 변경하고 절대로 실제 데이터를 이동하지 마십시오.

    쿼리 (MR 작업)가 데이터에 액세스 할 때 데이터가 hadoop 노드로 전송됩니다. 외부 테이블 만들기는 Hive 메타 데이터 만 변경하고 절대로 실제 데이터를 이동하지 마십시오.

  3. from https://stackoverflow.com/questions/13624665/when-you-create-an-external-table-in-hive-with-an-s3-location-is-the-data-transf by cc-by-sa and MIT license