自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)倉庫Hive vs 準實時分析系統(tǒng)Impala

大數(shù)據(jù) 數(shù)據(jù)倉庫
Impala是用于處理存儲在Hadoop集群中的大量數(shù)據(jù)的MPP(大規(guī)模并行處理)SQL查詢引擎。它是一個用C++和Java編寫的開源軟件。與其他Hadoop的SQL引擎相比,它提供了高性能和低延遲。

[[342552]]

一、什么是Hive?

Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務進行運行。Hive支持HSQL,是一種類SQL。

也由于這種機制導致Hive最大的缺點是慢。MapReduce調(diào)度本身只適合批量,長周期任務,類似查詢這種要求短平快的業(yè)務,代價太高。

二、什么是Impala?

Impala是用于處理存儲在Hadoop集群中的大量數(shù)據(jù)的MPP(大規(guī)模并行處理)SQL查詢引擎。它是一個用C++和Java編寫的開源軟件。與其他Hadoop的SQL引擎相比,它提供了高性能和低延遲。

換句話說,Impala是性能最高的SQL引擎(提供類似RDBMS的體驗),它提供了訪問存儲在Hadoop分布式文件系統(tǒng)中的數(shù)據(jù)的最快方法。

三、Hive vs Impala

Impala與Hive都是構(gòu)建在Hadoop之上的數(shù)據(jù)查詢工具,各有不同的側(cè)重適應面,但從客戶端使用來看Impala與Hive有很多的共同之處,如數(shù)據(jù)表元數(shù)據(jù)、ODBC/JDBC驅(qū)動、SQL語法、靈活的文件格式、存儲資源池等。Impala與Hive在Hadoop中的關(guān)系如下圖所示。

 

數(shù)據(jù)倉庫Hive vs 準實時分析系統(tǒng)Impala

Hive適合于長時間的批處理查詢分析,而Impala適合于實時交互式SQL查詢,Impala給數(shù)據(jù)分析人員提供了快速實驗、驗證想法的大數(shù)據(jù)分析工具。可以先使用Hive進行數(shù)據(jù)轉(zhuǎn)換處理,之后使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進行快速的數(shù)據(jù)分析。

Impala沒有使用 MapReduce進行并行計算,雖然MapReduce是非常好的并行計算框架,但它更多的面向批處理模式,而不是面向交互式的SQL執(zhí)行。與 MapReduce相比:Impala把整個查詢分成一執(zhí)行計劃樹,而不是一連串的MapReduce任務。在分發(fā)執(zhí)行計劃后,Impala使用拉式獲取數(shù)據(jù)的方式獲取結(jié)果,把結(jié)果數(shù)據(jù)組成按執(zhí)行樹流式傳遞匯集,減少了把中間結(jié)果寫入磁盤的步驟,再從磁盤讀取數(shù)據(jù)的開銷。Impala使用服務的方式避免每次執(zhí)行查詢都需要啟動的開銷,即相比Hive沒了MapReduce啟動時間。

四、處理數(shù)據(jù)的方式

(1)Hive處理數(shù)據(jù)的方式

HiveQL通過CLI/Web UI或者thrift 、odbc 或 jdbc接口的外部接口提交,經(jīng)過complier編譯器,運用Metastore中的元數(shù)據(jù)進行類型檢測和語法分析,生成一個邏輯計劃(logical plan),然后通過簡單的優(yōu)化處理,產(chǎn)生一個以有向無環(huán)圖DAG數(shù)據(jù)結(jié)構(gòu)形式展現(xiàn)的MapReduce任務。

 

數(shù)據(jù)倉庫Hive vs 準實時分析系統(tǒng)Impala

(2)Impala處理數(shù)據(jù)的方式

每當用戶使用提供的任何接口發(fā)起查詢時,集群中的Impalads之一就會接受該查詢。 此Impalad被視為該特定查詢的協(xié)調(diào)程序。

在接收到查詢后,查詢協(xié)調(diào)器使用Hive元存儲中的表模式驗證查詢是否合適。 然后,它從HDFS名稱節(jié)點(NameNode)收集關(guān)于執(zhí)行查詢所需的數(shù)據(jù)的位置的信息,并將該信息發(fā)送到其他Impalad以便執(zhí)行查詢。

所有其他Impala守護程序讀取指定的數(shù)據(jù)塊并處理查詢。 一旦所有守護程序完成其任務,查詢協(xié)調(diào)器將收集結(jié)果并將其傳遞給用戶。

 

數(shù)據(jù)倉庫Hive vs 準實時分析系統(tǒng)Impala

黃色部分是 Imapla模塊,藍色部分為運行 Impala 依賴的其他模塊。Impala 整體分為兩部分:StateStore 和 Impalad。

StateStore 是 Impala 的一個子服務,用來監(jiān)控集群中各個節(jié)點的健康狀況,提供節(jié)點注冊,錯誤檢測等功能。

Impala Daemon 進程是運行在集群每個節(jié)點上的守護進程,每個節(jié)點上這個進程名稱為Impalad。

 

[[342553]]

Impalad 運行在 DataNode 節(jié)點上,主要有兩個作用 :

  • 一是協(xié)調(diào)Client提交的 Query 的執(zhí)行,給其他Impalad分配任務,收集其他Impalad的執(zhí)行結(jié)果進行匯總;
  • 二是這個Impalad也會執(zhí)行其他Impalad給其分配的任務,執(zhí)行這部分任務主要就是對本地HDFS和HBase中的數(shù)據(jù)進行操作。

Impala中表的元數(shù)據(jù)存儲借用的是Hive的,也就是表的元數(shù)據(jù)信息存儲在Hive的Metastore中。

位于HDFS數(shù)據(jù)節(jié)點DataNode上的每個Impalad進程,都具有如下幾個模塊:

  • Query Planner;
  • Query Coordinator;
  • Query Exec Engine;

Query Planner 接收來自SQL APP和ODBC的SQL語句,解釋成功執(zhí)行計劃。Query Coordinator將執(zhí)行計劃進行優(yōu)化和拆分,形成執(zhí)行計劃片段,調(diào)度這些片段分發(fā)到各個節(jié)點上,由各個節(jié)點上的Query Exec Engine 負責執(zhí)行,最后返回中間結(jié)果,這些中間結(jié)果經(jīng)過聚集之后,最終返回給用戶。

 

[[342554]]

 

 

責任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2021-04-15 07:40:44

數(shù)據(jù)倉庫Hive環(huán)境搭建

2013-12-03 10:20:35

開源SQL查詢系統(tǒng)

2019-05-24 11:51:18

BI數(shù)據(jù)倉庫數(shù)據(jù)分析

2016-11-08 09:16:54

數(shù)據(jù)倉庫優(yōu)化

2016-08-31 14:41:31

大數(shù)據(jù)實時分析算法分類

2019-08-19 14:24:39

數(shù)據(jù)分析Spark操作

2018-03-15 08:50:46

Hive-數(shù)據(jù)存儲

2019-06-06 14:08:37

數(shù)據(jù)倉庫數(shù)據(jù)分析數(shù)據(jù)報表

2016-12-21 12:46:47

數(shù)據(jù)倉庫SQLHive

2017-02-28 09:21:56

HadoopHive數(shù)據(jù)倉庫

2014-01-22 11:22:44

華為HANA一體機FusionCube大數(shù)據(jù)分析

2021-09-01 10:03:44

數(shù)據(jù)倉庫云數(shù)據(jù)倉庫數(shù)據(jù)庫

2016-06-13 14:38:46

開源Skydive

2024-12-16 08:00:00

Snowflake數(shù)據(jù)平臺

2023-08-23 15:33:15

數(shù)據(jù)倉庫數(shù)據(jù)分析

2025-03-25 10:49:24

2022-06-28 09:47:05

數(shù)據(jù)倉庫

2025-02-06 08:54:54

2023-09-05 16:30:53

數(shù)據(jù)倉庫數(shù)據(jù)分析

2024-10-18 08:17:09

Doris數(shù)據(jù)倉庫
點贊
收藏

51CTO技術(shù)棧公眾號