Impala 與Hive都是構建在Hadoop之上的數據查詢工具,但是各有不同側重,那麼我們爲什麼要同時使用這兩個工具呢?單獨使用Hive或者Impala不可以嗎?
一、介紹Impala和Hive
(1)Impala和Hive都是提供對HDFS/Hbase數據進行SQL查詢的工具,Hive會轉換成MapReduce,藉助於YARN進行調度從而實現對HDFS的數據的訪問,而Impala直接對HDFS進行數據查詢。但是他們都是提供如下的標準SQL語句,在機身裏運行。
(2)Apache Hive是MapReduce的高級抽象,使用HiveQL,Hive可以生成運行在Hadoop集羣的MapReduce或Spark作業。Hive最初由Facebook大約在2007年開發,現在是Apache的開源項目。
Apache Impala是高性能的專用SQL引擎,使用Impala SQL,因爲Impala無需藉助任何的框架,直接實現對數據塊的查詢,所以查詢延遲毫秒級。Impala受到Google的Dremel項目啓發,2012年由Cloudera開發,現在是Apache開源項目。
二、Impala和Hive有什麼不同?
(1)Hive有很多的特性:
1、對複雜數據類型(比如arrays和maps)和窗口分析更廣泛的支持
2、高擴展性
3、通常用於批處理
(2)Impala更快
1、專業的SQL引擎,提供了5x到50x更好的性能
2、理想的交互式查詢和數據分析工具
3、更多的特性正在添加進來
三、高級概述:
四、爲什麼要使用Hive和Impala?
1、爲數據分析人員帶來了海量數據分析能力,不需要軟件開發經驗,運用已掌握的SQL知識進行數據的分析。
2、比直接寫MapReduce或Spark具有更好的生產力,5行HiveQL/Impala SQL等同於200行或更多的Java代碼。
3、提供了與其他系統良好的互操作性,比如通過Java和外部腳本擴展,而且很多商業智能工具支持Hive和Impala。
五、Hive和Impala使用案例
(1)日誌文件分析
日誌是普遍的數據類型,是當下大數據時代重要的數據源,結構不固定,可以通過Flume和kafka將日誌採集放到HDFS,然後分析日誌的結構,根據日誌的分隔符去建立一個表,接下來運用Hive和Impala 進行數據的分析。例如:
(2)情感分析
很多組織使用Hive或Impala來分析社交媒體覆蓋情況。例如:
(3)商業智能
很多領先的BI工具支持Hive和Impala
看了Hive和Impala的作用及功效闡述,對於掌握Hadoop數據處理有着重要作用。大家在平常要多去積累和總結經驗,不斷提升技能水平。我自己平時除了總結自己的經驗教訓,還喜歡看別人分享的知識,取長補短,對於完善自己的知識架構有着重要作用。像“CSDN”論壇,“大數據cn”,“大數據時代學習中心”微信服務號都挺不錯,總之,努力汲取多方面知識,我們就會取得更大進步!