欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Impala的組件和架構(gòu)有哪些

本篇內(nèi)容主要講解“Impala的組件和架構(gòu)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Impala的組件和架構(gòu)有哪些”吧! 

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蘆溪,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

一、概述 

1.1簡介

Impala是由Cloudera公司開發(fā)的新型查詢系統(tǒng),能夠?qū)Υ鎯υ贖DFS、HBase以及S3上的數(shù)據(jù)進(jìn)行快速的交互式SQL查詢。另外,impala與Hive使用了統(tǒng)一的存儲系統(tǒng)、同樣的元數(shù)據(jù)庫、SQL語法(Hive SQL)、ODBC驅(qū)動(dòng)和用戶交互接口(Hue),Impala對實(shí)時(shí)的或者面向批處理的查詢提供了一個(gè)統(tǒng)一的平臺,Impala在性能上比Hive高出3~30倍。

Impala是用于查詢大數(shù)據(jù)的工具的補(bǔ)充,Impala不是取代構(gòu)建在MapReduce之上的批處理框架,比如Hive。Hive和其他的基于MapReduce的框架適合處理長時(shí)間運(yùn)行的批處理作業(yè),比如涉及到批處理的ETL類型的作業(yè)。

 

1.2優(yōu)勢

  • 使用的是數(shù)據(jù)科學(xué)家和分析師熟悉的SQL接口
  • 能查詢大數(shù)據(jù)集
  • 是集群環(huán)境中的分布式查詢,便于擴(kuò)展和使用廉價(jià)商用硬件
  • 能夠在不同的分析引擎之前共享數(shù)據(jù),比如可以通過pig寫數(shù)據(jù),使用Hive轉(zhuǎn)換數(shù)據(jù),再使用impala查詢數(shù)據(jù)。impala能夠讀寫hive中的表,使用impala對Hive生成的數(shù)據(jù)進(jìn)行分析,實(shí)現(xiàn)簡單的數(shù)據(jù)交換
  • 單一系統(tǒng)用于大數(shù)據(jù)處理和分析,因此可以避免成本高昂的建模和ETL.
 

1.3主要特點(diǎn)

  • 支持Hive查詢語言(HiveQL)最常見的SQL-92功能,包括 SELECT, JOIN和聚合函數(shù)
  • 支持HDFS, HBase和S3存儲, 包括:
    • HDFS 文件格式: delimited text files, Parquet, Avro, SequenceFile,和 RCFile.
    • 壓縮: Snappy, GZIP, Deflate, BZIP.
  • 常見的數(shù)據(jù)訪問接口,包括JDBC driver、ODBC driver
  • 支持impala-shell命令行接口
  • Kerberos授權(quán)
 

二、Impala架構(gòu)

為了避免延遲,impala繞過MapReduce,采用了與商用并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎,可以直接與HDFS和HBase進(jìn)行交互查詢,性能上比Hive要快。

Impala server 是一個(gè)分布式的大規(guī)模并行處理(MPP)的數(shù)據(jù)庫引擎, 它由運(yùn)行在集群中特定主機(jī)上的不同守護(hù)進(jìn)程組成。其架構(gòu)圖如下圖所示:

Impala的組件和架構(gòu)有哪些  
 

2.1Impala Daemon

這個(gè)進(jìn)程是運(yùn)行在集群每個(gè)DataNode節(jié)點(diǎn)上的守護(hù)進(jìn)程,是impala的核心組件。在每個(gè)節(jié)點(diǎn)上這個(gè)進(jìn)程的名字稱為impalad。主要負(fù)責(zé)讀寫數(shù)據(jù),接受 impala-shell,Hue, JDBC或者ODBC的查詢請求,與集群中的其他節(jié)點(diǎn)分布式并行工作,并將本節(jié)點(diǎn)的查詢結(jié)果返回給中心協(xié)調(diào)者節(jié)點(diǎn)(central coordinator)。

我們可以向運(yùn)行在DataNode上的任何impalad進(jìn)程提交一個(gè)查詢,提交查詢的這個(gè)節(jié)點(diǎn)將作為這個(gè)查詢的“協(xié)調(diào)者節(jié)點(diǎn)”(coordinator)為這個(gè)查詢提供服務(wù)。其他節(jié)點(diǎn)的運(yùn)算結(jié)果會被傳輸?shù)絽f(xié)調(diào)者節(jié)點(diǎn),協(xié)調(diào)者節(jié)點(diǎn)將最終的運(yùn)算結(jié)果返回。當(dāng)使用 mpala-shell命令進(jìn)行功能性測試的時(shí)候,為了方便起見,我們總是會連接到同一個(gè)節(jié)點(diǎn)上的impalad。但是對于生產(chǎn)環(huán)境中的impala集群而言,必須要考慮到各個(gè)節(jié)點(diǎn)的負(fù)載均衡,建議使用JDBC/ODBC接口以輪詢(round-robin)的方式提交到不同的impalad進(jìn)程上。

為了了解其他節(jié)點(diǎn)的健康狀況和負(fù)載,Impalad進(jìn)程會一直與 statestore保持通信,用以確保哪個(gè)節(jié)點(diǎn)是健康的并且可以接受任務(wù)的。

當(dāng)impala集群中創(chuàng)建,修改或者刪除了對象,或者進(jìn)行了INSERT/LOAD DATAT操作,catalogd進(jìn)程會向所有的節(jié)點(diǎn)廣播消息,以保證每個(gè)impalad節(jié)點(diǎn)都能夠及時(shí)地了解整個(gè)集群中對象元數(shù)據(jù)的最新狀態(tài)。后臺進(jìn)程間的通信最大限度的降低了對 REFRESH/INVALIDATE METADATA命令的依賴。(但是對于和impala1.2版本之前的節(jié)點(diǎn)通信,還是需要顯示指定)

對impala 2.9或者更高版本,可以控制哪一個(gè)節(jié)點(diǎn)為查詢協(xié)調(diào)器( query coordinators ),也可以控制哪一個(gè)節(jié)點(diǎn)為查詢協(xié)調(diào)器(query executors), 能夠提高大型集群上高并發(fā)工作負(fù)載的可擴(kuò)展性。

 

2.2Impala Statestore

statestore檢查集群中impalad進(jìn)程節(jié)點(diǎn)的健康狀況,并不斷地將健康狀況結(jié)果轉(zhuǎn)發(fā)給所有的impalad進(jìn)程節(jié)點(diǎn)。statestore進(jìn)程的名稱為statestored。一個(gè)impala集群只需要一個(gè)statestored進(jìn)程,如果impala節(jié)點(diǎn)由于硬件故障、網(wǎng)絡(luò)錯(cuò)誤、軟件問題或者其他的原因?qū)е鹿?jié)點(diǎn)不可用,statestore將確保這條信息及時(shí)地傳達(dá)到所有的impalad進(jìn)程節(jié)點(diǎn)上,當(dāng)有新的查詢請求時(shí) ,impalad進(jìn)程節(jié)點(diǎn)將不會把查詢請求放松到不可用的節(jié)點(diǎn)上。

由于statestore的目的是在集群故障時(shí)對impalad進(jìn)程節(jié)點(diǎn)同步信息,所以對于一個(gè)正常運(yùn)行的impala集群來說,它并不是一個(gè)關(guān)鍵進(jìn)程。如果statestore不可用,impalad進(jìn)程節(jié)點(diǎn)之間仍然可以相互協(xié)調(diào)正常對外提供分布式查詢。在statestore不可用的情況下,impalad進(jìn)程節(jié)點(diǎn)失敗,只是會讓集群不再那么強(qiáng)健。當(dāng)statestore恢復(fù)正常時(shí),它重新與impalad進(jìn)程節(jié)點(diǎn)建立通信,恢復(fù)對集群的監(jiān)控功能。

對于負(fù)載平衡和高可用性都適用于impalad守護(hù)進(jìn)程。statestore和catalog進(jìn)程對高可用性沒有特殊要求,因?yàn)榧幢氵@些守護(hù)進(jìn)程存在問題,也不會導(dǎo)致數(shù)據(jù)丟失。如果這些守護(hù)進(jìn)程因中斷而變得不可用,則可以停止impala服務(wù),刪除impala StateStore和impala Catalog角色,將角色添加到不同的主機(jī)上,并重新啟動(dòng)impala服務(wù)。

 

2.3Impala Catalog Service

當(dāng)impala集群中執(zhí)行的SQL語句會引起元數(shù)據(jù)變化時(shí),catalog服務(wù)會將這些變化推送到其他的impalad進(jìn)程節(jié)點(diǎn)上。catalog服務(wù)對應(yīng)的進(jìn)程名稱為catalogd,一個(gè)impala集群只需要一個(gè)catalogd進(jìn)程 。由于所有的請求都是通過statestore進(jìn)程發(fā)送過來的,所以建議讓statestore和catalog運(yùn)行在同一個(gè)節(jié)點(diǎn)上。

catalog服務(wù)大大地減少了對 REFRESH / INVALIDATE METADATA 語句的元數(shù)據(jù)同步的需求。在創(chuàng)建和刪除表的過程中,catalogd進(jìn)程負(fù)責(zé)連接元數(shù)據(jù)庫并進(jìn)行元數(shù)據(jù)更新操作,從而確保不必執(zhí)行REFRESH / INVALIDATE METADATA這樣的元數(shù)據(jù)同步語句。但是,如果通過Hive執(zhí)行了創(chuàng)建表 、加載數(shù)據(jù)等操作,則在impala中執(zhí)行查詢之前需要先執(zhí)行 REFRESH或者INVALIDATE METADATA 命令。

 

三、Impala查詢的執(zhí)行過程 

3.1Impala查詢過程圖

Impala的組件和架構(gòu)有哪些  
 

3.2Impala執(zhí)行查詢的具體過程

第0步,當(dāng)用戶提交查詢前,Impala先創(chuàng)建一個(gè)負(fù)責(zé)協(xié)調(diào)客戶端提交的查詢的Impalad進(jìn)程,該進(jìn)程會向Impala State Store提交注冊訂閱信息,State Store會創(chuàng)建一個(gè)statestored進(jìn)程,statestored進(jìn)程通過創(chuàng)建多個(gè)線程來處理Impalad的注冊訂閱信息。

第1步,用戶通過CLI客戶端提交一個(gè)查詢到impalad進(jìn)程,Impalad的Query Planner對SQL語句進(jìn)行解析,生成解析樹;然后,Planner把這個(gè)查詢的解析樹變成若干PlanFragment,發(fā)送到Query Coordinator

第2步,Coordinator通過從MySQL元數(shù)據(jù)庫中獲取元數(shù)據(jù),從HDFS的名稱節(jié)點(diǎn)中獲取數(shù)據(jù)地址,以得到存儲這個(gè)查詢相關(guān)數(shù)據(jù)的所有數(shù)據(jù)節(jié)點(diǎn)。

第3步,Coordinator初始化相應(yīng)impalad上的任務(wù)執(zhí)行,即把查詢?nèi)蝿?wù)分配給所有存儲這個(gè)查詢相關(guān)數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)。

第4步,Query Executor通過流式交換中間輸出,并由Query Coordinator匯聚來自各個(gè)impalad的結(jié)果。

第5步,Coordinator把匯總后的結(jié)果返回給CLI客戶端。

 

四、Impala與Hive的比較 

4.1Impala與Hive對比圖

Impala的組件和架構(gòu)有哪些  
 

4.2Hive與Impala的相同點(diǎn)

  • Hive與Impala使用相同的存儲數(shù)據(jù)池,都支持把數(shù)據(jù)存儲于HDFS和HBase中

  • Hive與Impala使用相同的元數(shù)據(jù)

  • Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執(zhí)行計(jì)劃

 

4.3Hive與Impala的不同點(diǎn)

  • Hive適合于長時(shí)間的批處理查詢分析,而Impala適合于實(shí)時(shí)交互式SQL查詢

  • Hive依賴于MapReduce計(jì)算框架,Impala把執(zhí)行計(jì)劃表現(xiàn)為一棵完整的執(zhí)行計(jì)劃樹,直接分發(fā)執(zhí)行計(jì)劃到各個(gè)Impalad執(zhí)行查詢

  • Hive在執(zhí)行過程中,如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證查詢能順序執(zhí)行完成,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時(shí),不會利用外存,所以Impala目前處理查詢時(shí)會受到一定的限制

到此,相信大家對“Impala的組件和架構(gòu)有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站標(biāo)題:Impala的組件和架構(gòu)有哪些
標(biāo)題鏈接:http://chinadenli.net/article30/podjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、微信公眾號、商城網(wǎng)站、外貿(mào)建站、網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)