『壹』 impala可以獲取hdfs目錄下的數據嗎
如果和數據block不在同一個host上,那麼就是使用HDFSDataTransaferProtocol(不是正式的命名,意會即可)來讀,也就是一個二進制協議走TCP鏈接。
如果是在同一個host上,那麼是利用了HDFS中"short-circuit local reads"技術。簡單來說,從DataNode那邊獲取到所需數據的Meta信息,然後直接通過系統調用open/read來讀取。
『貳』 impala 理論
impala介紹
Cloudera Imapala是一款開源的MPP架構的SQL查詢引擎,它提供在hadoop環境上的低延遲、高並發的BI/數據分析,是一款開源、與Hadoop高度集成,靈活可擴展的查詢分析引擎,目標是基於SQL提供高並發的即席查詢。
與其他的查詢引擎系統(如presto、spark sql、hive sql)不同,Impala基於 C++ 和Java編寫,支持Hadoop生態下的多種組件集成(如HDFS、HBase、Metastore、YARN、Sentry等),支持多種文件格式的讀寫(如Parqeut、Avro、RCFile等)。
標準的mpp架構,massively-parallel query execution engine,支持在上百台機器的Hadoop集群上執行快速查詢,對底層的存儲系統解耦,不像資料庫要求那麼嚴格,不同的底層存儲可以聯合查詢。
impala在大數據應用處於什麼環節及作用
impala在大數據應用領域中處於數據分析環節,利用mpp架構實現高效數據查詢,下游應用系統使用impala也比較多,尤其在應用集市查詢數據倉庫的時候使用的較多。
impala架構體系
impala由statestore、catalog、impala daemon(impalad)組成。
impala任務執行流程
impala支持的文件格式
Impala可以對Hadoop中大多數格式的文件進行查詢,通過create table和insert的方式將一部分格式的數據載入到table中,但值得注意的是,有一些格式的數據它是無法寫入的(write to),對於Impala無法寫入的數據格式,通常是通過Hive建表,使用Hive進行數據的寫入,然後使用Impala來對這些保存好的數據執行查詢操作。
impala與hive對比
impala數據類型
海汼部落原創文章,原文鏈接:(http://hainiubl.com/topics/75548)