標籤:http io 使用 ar strong 資料 sp art 問題
轉自: http://www.csdn.net/article/2013-12-04/2817707-Impala-Big-Data-Engine
大資料處理是雲端運算中非常重要的領域,自Google公司提出MapReduce分散式處理架構以來,以Hadoop為代表的開源軟體受到越來越多公司的重視和青睞。本文將講述Hadoop系統中的一個新成員:Impala。
Impala架構分析
Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL 語義,能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料。已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是 MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,Impala的最大特點也是最大賣點就是它的快速。那麼Impala如 何實現大資料的快速查詢呢?在回答這個問題前,需要先介紹Google的Dremel系統,因為Impala最開始是參照 Dremel系統進行設計的。
Dremel是Google的互動式資料分析系統,它構建於Google的GFS(Google File System)等系統之上,支撐了Google的資料分析服務BigQuery等諸多服務。Dremel的技術亮點主要有兩個:一是實現了嵌套型資料的列 儲存;二是使用了多層查詢樹,使得任務可以在數千個節點上並存執行和彙總結果。列儲存在關係型資料庫中並不陌生,它可以減少查詢時處理的資料量,有效提升 查詢效率。Dremel的列儲存的不同之處在於它針對的並不是傳統的關係資料,而是嵌套結構的資料。Dremel可以將一條條的嵌套結構的記錄轉換成列存 儲形式,查詢時根據查詢條件讀取需要的列,然後進行條件過濾,輸出時再將列組裝成嵌套結構的記錄輸出,記錄的正向和反向轉換都通過高效的狀態機器實現。另 外,Dremel的多層查詢樹則借鑒了分布式搜尋引擎的設計,查詢樹的根節點負責接收查詢,並將查詢分發到下一層節點,底層節點負責具體的資料讀取和查詢 執行,然後將結果返回上層節點。關於Dremel技術實現上的更多資訊,可以參閱【註:Google Dremel原理:如何能3秒分析1PB,網址為http://www.yankay.com/google-dremel-rationale/】。
大資料學習筆記