成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

一、概述 

1.1簡(jiǎn)介

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

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

 

1.2優(yōu)勢(shì)

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

1.3主要特點(diǎn)

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

二、Impala架構(gòu)

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

Impala server 是一個(gè)分布式的大規(guī)模并行處理(MPP)的數(shù)據(jù)庫(kù)引擎, 它由運(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)程的名字稱(chēng)為impalad。主要負(fù)責(zé)讀寫(xiě)數(shù)據(jù),接受 impala-shell,Hue, JDBC或者ODBC的查詢(xún)請(qǐng)求,與集群中的其他節(jié)點(diǎn)分布式并行工作,并將本節(jié)點(diǎn)的查詢(xún)結(jié)果返回給中心協(xié)調(diào)者節(jié)點(diǎn)(central coordinator)。

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

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

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

對(duì)impala 2.9或者更高版本,可以控制哪一個(gè)節(jié)點(diǎn)為查詢(xún)協(xié)調(diào)器( query coordinators ),也可以控制哪一個(gè)節(jié)點(diǎn)為查詢(xú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)程的名稱(chēng)為statestored。一個(gè)impala集群只需要一個(gè)statestored進(jìn)程,如果impala節(jié)點(diǎn)由于硬件故障、網(wǎng)絡(luò)錯(cuò)誤、軟件問(wèn)題或者其他的原因?qū)е鹿?jié)點(diǎn)不可用,statestore將確保這條信息及時(shí)地傳達(dá)到所有的impalad進(jìn)程節(jié)點(diǎn)上,當(dāng)有新的查詢(xún)請(qǐng)求時(shí) ,impalad進(jìn)程節(jié)點(diǎn)將不會(huì)把查詢(xún)請(qǐng)求放松到不可用的節(jié)點(diǎn)上。

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

對(duì)于負(fù)載平衡和高可用性都適用于impalad守護(hù)進(jìn)程。statestore和catalog進(jìn)程對(duì)高可用性沒(méi)有特殊要求,因?yàn)榧幢氵@些守護(hù)進(jìn)程存在問(wèn)題,也不會(huì)導(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語(yǔ)句會(huì)引起元數(shù)據(jù)變化時(shí),catalog服務(wù)會(huì)將這些變化推送到其他的impalad進(jìn)程節(jié)點(diǎn)上。catalog服務(wù)對(duì)應(yīng)的進(jìn)程名稱(chēng)為catalogd,一個(gè)impala集群只需要一個(gè)catalogd進(jìn)程 。由于所有的請(qǐng)求都是通過(guò)statestore進(jìn)程發(fā)送過(guò)來(lái)的,所以建議讓statestore和catalog運(yùn)行在同一個(gè)節(jié)點(diǎn)上。

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

 

三、Impala查詢(xún)的執(zhí)行過(guò)程 

3.1Impala查詢(xún)過(guò)程圖

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

3.2Impala執(zhí)行查詢(xún)的具體過(guò)程

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

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

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

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

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

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

 

四、Impala與Hive的比較 

4.1Impala與Hive對(duì)比圖

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

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

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

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

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

 

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

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

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

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

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

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

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

廣告

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

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
清水河县| 兴和县| 色达县| 秭归县| 长顺县| 麻江县| 普格县| 秭归县| 成安县| 开江县| 汝城县| 扬州市| 天津市| 大余县| 阿鲁科尔沁旗| 贡觉县| 云梦县| 永年县| 乡城县| 邢台市| 沛县| 澄城县| 惠来县| 柯坪县| 新沂市| 肇源县| 星子县| 禹州市| 安远县| 西安市| 澄江县| 比如县| 醴陵市| 永吉县| 西青区| 定结县| 阳江市| 香河县| 富蕴县| 泸溪县| 玛曲县|