복붙노트

[HADOOP] 스파크의 HiveContext가 내부적으로 어떻게 작동합니까?

HADOOP

스파크의 HiveContext가 내부적으로 어떻게 작동합니까?

Spark를 처음 사용했습니다. HiveContext를 사용하여 하이브에 연결하고 HiveQL을 실행할 수있었습니다. 나는 그것을 실행하고 그것은 효과가있다.

Spark가 spark 작업을 통해 Spark을 수행하는지 여부는 의심 스럽습니다. 즉, HiveContext를 사용하여 HDFS에서 해당 하이브 테이블 파일에 액세스하는 것입니다

또는

내부적으로 하이브를 호출하여 쿼리를 실행합니까?

해결법

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

    1.아니, 스파크는 하이브를 쿼리 실행을 부르지 않습니다. Spark은 하이브에서 메타 데이터를 읽고 Spark 엔진 내에서 쿼리를 실행합니다. Spark은 촉매, 텅스텐과 같은 구성 요소를 포함하고있어 쿼리를 최적화하고 더 빠른 결과를 제공하는 자체 SQL 실행 엔진을 갖추고 있습니다. 스파이크의 하이브와 실행 엔진의 메타 데이터를 사용하여 쿼리를 실행합니다.

    아니, 스파크는 하이브를 쿼리 실행을 부르지 않습니다. Spark은 하이브에서 메타 데이터를 읽고 Spark 엔진 내에서 쿼리를 실행합니다. Spark은 촉매, 텅스텐과 같은 구성 요소를 포함하고있어 쿼리를 최적화하고 더 빠른 결과를 제공하는 자체 SQL 실행 엔진을 갖추고 있습니다. 스파이크의 하이브와 실행 엔진의 메타 데이터를 사용하여 쿼리를 실행합니다.

    하이브의 가장 큰 장점 중 하나는 그것이 메가 스토어 (metastore)라는 것입니다. 이 시스템은 hadoop eco 시스템의 많은 구성 요소에 대한 단일 메타 스토어 역할을합니다.

    질문에 따라 HiveContext를 사용하면 metastore db 및 모든 하이브 메타 데이터에 액세스 할 수 있습니다. 하이브 메타 데이터는 보유한 데이터 유형, 데이터의 위치, 직렬화 및 비 직렬화, 압축 코덱, 열 , 데이터 유형 및 문자 그대로 테이블과 데이터에 대한 모든 세부 정보를 제공합니다. 스파크가 데이터를 이해하기에 충분합니다.

    전반적으로 Spark는 기본 데이터에 대한 완벽한 세부 정보를 제공하는 메타 스토어 만 필요로하며 일단 메타 데이터가 있으면 실행 엔진을 통해 요청한 쿼리를 실행합니다. Hive는 MapReduce를 사용하므로 Spark보다 느립니다. 따라서 하이브로 돌아가서 하이브에서 실행하도록 요청할 필요는 없습니다.

    귀하의 질문에 대한 답변을 알려주십시오.

  2. from https://stackoverflow.com/questions/35869003/how-hivecontext-of-spark-internally-works by cc-by-sa and MIT license