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

從不同的角度來認(rèn)識(shí)和理解Impala的架構(gòu)設(shè)計(jì)

大數(shù)據(jù) 數(shù)據(jù)分析
我們知道,在實(shí)時(shí)性要求不是很高的應(yīng)用場(chǎng)景中,比如,月度統(tǒng)計(jì)報(bào)表生成等,我們基于傳統(tǒng)的Hadoop MapReduce來處理海量大數(shù)據(jù)(包括使用Hive),在各方面表現(xiàn)都還不錯(cuò),只需要離線處理數(shù)據(jù),然后存儲(chǔ)結(jié)果即可。

我們知道,在實(shí)時(shí)性要求不是很高的應(yīng)用場(chǎng)景中,比如,月度統(tǒng)計(jì)報(bào)表生成等,我們基于傳統(tǒng)的Hadoop MapReduce來處理海量大數(shù)據(jù)(包括使用Hive),在各方面表現(xiàn)都還不錯(cuò),只需要離線處理數(shù)據(jù),然后存儲(chǔ)結(jié)果即可。但是如果在一些實(shí)時(shí)性要求相對(duì)較高的應(yīng)用場(chǎng)景中,哪怕處理時(shí)間能夠在原有的基礎(chǔ)有大幅度地減少,也能很好地提升用戶體驗(yàn)。對(duì)于大數(shù)據(jù)的實(shí)時(shí)性要求,其實(shí)是相對(duì)的,比如,傳統(tǒng)使用MapReduce計(jì)算框架處理PB級(jí)別的查詢分析請(qǐng)求,可能耗時(shí)30分鐘甚至更多,但是如果能夠使這個(gè)延遲大大降低,如3分鐘計(jì)算出結(jié)果,這是很令人震撼的。Impala就是基于這樣的需求驅(qū)動(dòng)而出現(xiàn)的。
Impala是Cloudera開發(fā)的一款用來進(jìn)行大數(shù)據(jù)實(shí)時(shí)查詢分析的開源工具,它能夠?qū)崿F(xiàn)通過我們熟悉的傳統(tǒng)關(guān)系數(shù)據(jù)庫的SQL風(fēng)格來操作大數(shù)據(jù),數(shù)據(jù)可以是存儲(chǔ)到HDFS或HBase中的。
下面,我們從不同的角度來認(rèn)識(shí)和理解Cloudera Impala:

設(shè)計(jì)目標(biāo)

官網(wǎng)給出的介紹是,使用Impala來實(shí)現(xiàn)SQL on Hadoop,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的實(shí)時(shí)查詢分析,它的優(yōu)勢(shì)有如下幾點(diǎn):

  • 快速

可以方便地執(zhí)行SQL語句,在數(shù)秒內(nèi)返回查詢分析結(jié)果。
這一點(diǎn),其實(shí)還要依賴于你在HDFS或HBase上存儲(chǔ)的數(shù)據(jù)的規(guī)模,依賴于你對(duì)Impala系統(tǒng)的配置調(diào)優(yōu)情況,可能還依賴于你寫的SQL語句的執(zhí)行效率。

  • 靈活

可以直接查詢存儲(chǔ)在HDFS上的原生數(shù)據(jù),也可以查詢經(jīng)過優(yōu)化設(shè)計(jì)而存儲(chǔ)的數(shù)據(jù),只要數(shù)據(jù)的格式它們能夠兼容MapReduce、Hive、Pig等等。

  • 整合&開放

可以非常容易地與Hadoop系統(tǒng)整合,并使用Hadoop生態(tài)系統(tǒng)的資源和優(yōu)勢(shì),也不需要將數(shù)據(jù)遷移到特定的存儲(chǔ)系統(tǒng)就能滿足查詢分析的要求。

  • 可伸縮性

可以很好地與一些BI應(yīng)用系統(tǒng)協(xié)同工作,如Microstrategy、Tableau、Qlikview,等等。

支持特性

Impala支持的特性,主要包括如下幾點(diǎn):

  • 對(duì) ANSI-92 SQL標(biāo)準(zhǔn)的支持

Impala支持ANSI-92 SQL所有子集,包括CREATE、ALTER、SELECT、INSERT、JOIN、GROUP BY以及子查詢。它還支持分區(qū)JOIN、常用的聚合函數(shù)(SUM、COUNT、MAX、MIN、AVG等等)、topN查詢。你使用這些語句時(shí),可以像使用關(guān)系數(shù)據(jù)庫中使用的SQL語句一樣去設(shè)計(jì),很容易上手。

  • 數(shù)據(jù)來源與數(shù)據(jù)格式

Impala可以操作HDFS、HBase中存儲(chǔ)的數(shù)據(jù),支持如下HDFS的支持文件格式:Text file、SequenceFile、RCFile、Avro file、Parquet,支持的壓縮格式有:Snappy、GZIP、Deflate、BZIP,其中Snappy壓縮格式的性能更好一些。

  • 支持的數(shù)據(jù)訪問接口

主要包括Hive所支持的如下接口:JDBC Driver、ODBC Driver、Hue Beeswax、Cloudera Impala Query UI.,另外,還可以通過CLI接口(也就是Impala Shell)訪問。

架構(gòu)設(shè)計(jì)要點(diǎn)

Impala的架構(gòu)設(shè)計(jì)視圖,如圖所示:


上面可以看出,位于Datanode上的每個(gè)impalad進(jìn)程,都具有Query Planner、Query Coordinator、Query Exec Engine這幾個(gè)組件,每個(gè)Impala節(jié)點(diǎn)在功能集合上是對(duì)等的,也就是說,任何一個(gè)節(jié)點(diǎn)都能接收外部查詢請(qǐng)求。當(dāng)有一個(gè)節(jié)點(diǎn)發(fā)生故障后,其他節(jié)點(diǎn)仍然能夠接管,這還要得益于,在HDFS上,數(shù)據(jù)的副本是冗余的,只要數(shù)據(jù)能夠取到,某些掛掉的impalad進(jìn)程所在節(jié)點(diǎn)的數(shù)據(jù),在整個(gè)HDFS中只要還存在副本(impalad進(jìn)程正常的節(jié)點(diǎn)),還是可以提供計(jì)算的。除非,當(dāng)多個(gè)impalad進(jìn)程掛掉了,恰好此時(shí)的查詢請(qǐng)求要操作的數(shù)據(jù)所在的節(jié)點(diǎn),都沒有存在impalad進(jìn)程,這是肯定是無法計(jì)算了。
Cloudera Impala在實(shí)際應(yīng)用場(chǎng)景中所處的位置,如圖所示:


上圖展示了Impala方案的相關(guān)的各種組件,簡(jiǎn)單說明如下:

  • 客戶端

有三類客戶端可以與Impala進(jìn)行交互:基于驅(qū)動(dòng)程序的客戶端(ODBC Driver和JDBC Driver,其中JDBC Driver支持Hive1與Hive2風(fēng)格的驅(qū)動(dòng)形式);Hue接口,可以通過Hue Beeswax接口來與Impala進(jìn)行交互;Impala Shell命令行接口,類似關(guān)系數(shù)據(jù)庫提供一些命令行即可,可以直接使用SQL語句與Impala交互。

  • Hive Metastore

Impala使用Hive Metastore來存儲(chǔ)一些元數(shù)據(jù),為Impala所使用,通過存儲(chǔ)的元數(shù)據(jù),Impala可以更好地知道整個(gè)集群中數(shù)據(jù)以及節(jié)點(diǎn)的狀態(tài),從而實(shí)現(xiàn)集群并行計(jì)算,對(duì)外部提供查詢分析服務(wù)。

  • Cloudera Impala

Impala會(huì)在HDFS集群的Datanode上啟動(dòng)進(jìn)程,協(xié)調(diào)位于集群上的多個(gè)Impala進(jìn)程(impalad),以及執(zhí)行查詢。在Impala架構(gòu)中,每個(gè)Impala節(jié)點(diǎn)都可以接收來自客戶端的查詢請(qǐng)求,然后負(fù)責(zé)解析查詢,生成查詢計(jì)劃,并進(jìn)行優(yōu)化,協(xié)調(diào)查詢請(qǐng)求在其他的多個(gè)Impala節(jié)點(diǎn)上并行執(zhí)行,最后有負(fù)責(zé)接收查詢請(qǐng)求的Impala節(jié)點(diǎn)來匯總結(jié)果,響應(yīng)客戶端。

  • HBase和HDFS

HBase和HDFS存儲(chǔ)著實(shí)際需要查詢的大數(shù)據(jù)。

總結(jié)

Cloudera官網(wǎng)所言,使用Impala比使用Hive能提高3~90的效率,我們可以參考Cloudera的官網(wǎng)博客。我相信,使用Impala比使用Hive能大大提升計(jì)算性能,這是真實(shí)的。Impala從發(fā)布到現(xiàn)在也不過一年左右時(shí)間,它還在發(fā)展之中,能有這樣的表現(xiàn)我還是感覺很欣慰,至少讓我們看到了一些商業(yè)系統(tǒng)能夠?qū)崿F(xiàn)的功能已經(jīng)在開源項(xiàng)目中落地。
在我們使用Impala的過程中,我總結(jié)一下遇到的相關(guān)問題:

  • SQL解析

我發(fā)現(xiàn)Impala目前在SQL解析方面還有優(yōu)化的余地,當(dāng)前的問題,一個(gè)是SQL解析速度很慢,另一個(gè)是如果SQL比較復(fù)雜的話存在硬解析的問題,非常耗時(shí)。雖然和現(xiàn)在更加成熟的關(guān)系數(shù)據(jù)庫Oracle、MySQL等還有一定差距,但是我相信這些只是時(shí)間問題。

  • 穩(wěn)定性

可能是因?yàn)橐蕾囉贖ive的原因,通過Thrift接口來與后端進(jìn)行交互,并發(fā)性比較差。當(dāng)并發(fā)稍微高一點(diǎn)點(diǎn)的時(shí)候,就會(huì)出現(xiàn)impalad進(jìn)程掛掉的問題,有時(shí)候可能還會(huì)出現(xiàn)類似的僵尸進(jìn)程。

責(zé)任編輯:張燕妮 來源: 簡(jiǎn)單之美
相關(guān)推薦

2019-02-01 14:45:41

前端

2018-04-20 08:37:23

災(zāi)難恢復(fù)數(shù)據(jù)備份

2020-12-02 13:24:07

強(qiáng)化學(xué)習(xí)算法

2012-06-07 10:45:12

軟件架構(gòu)設(shè)計(jì)原則

2012-06-07 10:25:35

架構(gòu)設(shè)計(jì)服務(wù)層軟件設(shè)計(jì)

2022-07-26 12:33:38

架構(gòu)設(shè)計(jì)場(chǎng)景

2022-07-22 10:09:28

架構(gòu)設(shè)計(jì)

2022-07-29 11:06:47

架構(gòu)開發(fā)

2025-04-15 04:00:00

2023-12-13 08:31:23

2014-01-06 11:23:54

Mesos設(shè)計(jì)架構(gòu)

2010-03-22 11:10:28

企業(yè)級(jí)交換機(jī)

2021-10-11 09:53:41

架構(gòu)設(shè)計(jì)分層

2023-02-03 09:52:10

開發(fā)者框架GoFrame

2023-05-12 08:06:46

Kubernetes多云架構(gòu)

2011-04-08 17:03:19

Java架構(gòu)

2010-01-03 20:52:27

2024-02-26 00:00:00

Nginx服務(wù)器HTTP

2009-07-06 10:36:41

敏捷開發(fā)

2021-11-08 06:57:35

Redis架構(gòu)設(shè)計(jì)
點(diǎn)贊
收藏

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