天天看點

為什麼使用Hive和Impala

Impala 與Hive都是建構在Hadoop之上的資料查詢工具,但是各有不同側重,那麼我們為什麼要同時使用這兩個工具呢?單獨使用Hive或者Impala不可以嗎?

一、介紹Impala和Hive

(1)Impala和Hive都是提供對HDFS/Hbase資料進行SQL查詢的工具,Hive會轉換成MapReduce,借助于YARN進行排程進而實作對HDFS的資料的通路,而Impala直接對HDFS進行資料查詢。但是他們都是提供如下的标準SQL語句,在機身裡運作。

為什麼使用Hive和Impala

(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

四、為什麼要使用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 進行資料的分析。例如:

為什麼使用Hive和Impala

(2)情感分析

很多組織使用Hive或Impala來分析社交媒體覆寫情況。例如:

為什麼使用Hive和Impala

(3)商業智能

很多領先的BI工具支援Hive和Impala

為什麼使用Hive和Impala

看了Hive和Impala的作用及功效闡述,對于掌握Hadoop資料處理有着重要作用。大家在平常要多去積累和總結經驗,不斷提升技能水準。我自己平時除了總結自己的經驗教訓,還喜歡看别人分享的知識,取長補短,對于完善自己的知識架構有着重要作用。像“CSDN”論壇,“大資料cn”,“大資料時代學習中心”微信服務号都挺不錯,總之,努力汲取多方面知識,我們就會取得更大進步!

繼續閱讀