成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從不同的角度來認識和理解Impala的架構設計

大數據 數據分析
我們知道,在實時性要求不是很高的應用場景中,比如,月度統計報表生成等,我們基于傳統的Hadoop MapReduce來處理海量大數據(包括使用Hive),在各方面表現都還不錯,只需要離線處理數據,然后存儲結果即可。

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

設計目標

官網給出的介紹是,使用Impala來實現SQL on Hadoop,實現對海量數據的實時查詢分析,它的優勢有如下幾點:

  • 快速

可以方便地執行SQL語句,在數秒內返回查詢分析結果。
這一點,其實還要依賴于你在HDFS或HBase上存儲的數據的規模,依賴于你對Impala系統的配置調優情況,可能還依賴于你寫的SQL語句的執行效率。

  • 靈活

可以直接查詢存儲在HDFS上的原生數據,也可以查詢經過優化設計而存儲的數據,只要數據的格式它們能夠兼容MapReduce、Hive、Pig等等。

  • 整合&開放

可以非常容易地與Hadoop系統整合,并使用Hadoop生態系統的資源和優勢,也不需要將數據遷移到特定的存儲系統就能滿足查詢分析的要求。

  • 可伸縮性

可以很好地與一些BI應用系統協同工作,如Microstrategy、Tableau、Qlikview,等等。

支持特性

Impala支持的特性,主要包括如下幾點:

  • 對 ANSI-92 SQL標準的支持

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

  • 數據來源與數據格式

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

  • 支持的數據訪問接口

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

架構設計要點

Impala的架構設計視圖,如圖所示:


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


上圖展示了Impala方案的相關的各種組件,簡單說明如下:

  • 客戶端

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

  • Hive Metastore

Impala使用Hive Metastore來存儲一些元數據,為Impala所使用,通過存儲的元數據,Impala可以更好地知道整個集群中數據以及節點的狀態,從而實現集群并行計算,對外部提供查詢分析服務。

  • Cloudera Impala

Impala會在HDFS集群的Datanode上啟動進程,協調位于集群上的多個Impala進程(impalad),以及執行查詢。在Impala架構中,每個Impala節點都可以接收來自客戶端的查詢請求,然后負責解析查詢,生成查詢計劃,并進行優化,協調查詢請求在其他的多個Impala節點上并行執行,最后有負責接收查詢請求的Impala節點來匯總結果,響應客戶端。

  • HBase和HDFS

HBase和HDFS存儲著實際需要查詢的大數據。

總結

Cloudera官網所言,使用Impala比使用Hive能提高3~90的效率,我們可以參考Cloudera的官網博客。我相信,使用Impala比使用Hive能大大提升計算性能,這是真實的。Impala從發布到現在也不過一年左右時間,它還在發展之中,能有這樣的表現我還是感覺很欣慰,至少讓我們看到了一些商業系統能夠實現的功能已經在開源項目中落地。
在我們使用Impala的過程中,我總結一下遇到的相關問題:

  • SQL解析

我發現Impala目前在SQL解析方面還有優化的余地,當前的問題,一個是SQL解析速度很慢,另一個是如果SQL比較復雜的話存在硬解析的問題,非常耗時。雖然和現在更加成熟的關系數據庫Oracle、MySQL等還有一定差距,但是我相信這些只是時間問題。

  • 穩定性

可能是因為依賴于Hive的原因,通過Thrift接口來與后端進行交互,并發性比較差。當并發稍微高一點點的時候,就會出現impalad進程掛掉的問題,有時候可能還會出現類似的僵尸進程。

責任編輯:張燕妮 來源: 簡單之美
相關推薦

2019-02-01 14:45:41

前端

2018-04-20 08:37:23

災難恢復數據備份

2020-12-02 13:24:07

強化學習算法

2012-06-07 10:25:35

架構設計服務層軟件設計

2012-06-07 10:45:12

軟件架構設計原則

2022-07-26 12:33:38

架構設計場景

2022-07-22 10:09:28

架構設計

2022-07-29 11:06:47

架構開發

2025-04-15 04:00:00

2014-01-06 11:23:54

Mesos設計架構

2023-12-13 08:31:23

2023-02-03 09:52:10

開發者框架GoFrame

2010-03-22 11:10:28

企業級交換機

2021-10-11 09:53:41

架構設計分層

2023-05-12 08:06:46

Kubernetes多云架構

2011-04-08 17:03:19

Java架構

2024-08-09 08:01:38

2010-01-03 20:52:27

2019-03-20 09:30:31

2024-02-26 00:00:00

Nginx服務器HTTP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品观看 | 在线成人一区 | 成人毛片在线视频 | 亚洲一区二区三区在线免费观看 | 亚洲不卡av在线 | 欧美不卡一区二区三区 | 精品综合久久 | 日韩精品一区二区三区第95 | 国产精品久久久久久久久久久免费看 | 亚洲一区在线日韩在线深爱 | 91看片| www.887色视频免费 | 在线免费黄色小视频 | 欧美一区二区在线观看 | 久久另类视频 | 在线观看视频亚洲 | 欧美黄色录像 | 欧美激情一区 | 一区二区三区高清 | 少妇一区在线观看 | 久久久国产精品一区 | 日韩精品视频在线免费观看 | 国产一级在线观看 | 亚州激情 | 在线欧美视频 | 精品视频免费 | 91精品国产综合久久婷婷香蕉 | 男人的天堂久久 | 日韩欧美一区二区三区 | 欧美成视频 | 色.com| 91视视频在线观看入口直接观看 | 黄a在线播放 | 色婷婷亚洲一区二区三区 | 欧美日韩亚 | 欧美午夜久久 | 在线视频一区二区 | 国产精品99999999 | 黄色国产视频 | 爱草在线 | 久久精品国产一区 |