數據分析:Hive、Pig和Impala

本文主要分享Hadoop三大分析工具:Hive、Pig和Impala。

Hive和Pig是高級數據語言,基於Mapreduce,底層處理的時候會轉換成Mapreduce去提交,Hive和Pig都是開源的,Hive最初由Facebook開發,Pig最初由Yahoo!開發,下面進行分別介紹:

一、什麼是Hive?

Hive可以看做是SQL到Mapreduce的一個映射器,就是不用開發Mapreduce,只要懂SQL就可以了,HiveQL是標準SQL92的一個子集,和標準的SQL並不完全一樣,HiveQL本身有百分之二十的一個擴展,大概百分之八十的語法和標準的SQL是一致的,像

wKioL1hKVtOy5tcdAABTAQUn-IA709.png-wh_50

這種標準的SQL是支持的,所以對於數據分析人員來講,就可以很方便的切入到Hadoop的平臺上去做數據分析。

二、什麼是Pig?

Pig是處理大數據集的數據流語言。什麼是數據流呢?就是處理數據的流程可以一步步定義,比如第一步加載,第二步轉換,第三步再轉換,第四步存儲,可以一步步定義數據的走向,很類似我們在數據挖掘中進行的系列處理流程。因爲pig是數據流的語言,所以很適合做物質的數據探索和ETL階段數據的非處理,他和Spark的思想很相似,所以也可以說Spark是實現正確的Pig。爲什麼這樣說?因爲Pig和Spark都是數據流似的處理,pig有轉換,行動操作,在spark裏面也是一樣。

Pig數據流語言

wKiom1hKVuXBDOQ-AAD32FeXWTU212.png-wh_50

Pig在ETL階段還是用的很多的,而且對於一些數據挖掘人員來說,尤其是探知一些未知數據,非常合適。因爲不需要指定任何的名稱、類型就可以先加載,然後去匹配所有的數據,接下來就可以去觀察數據是怎樣的,分析怎麼去做轉換。Pig是一種語義很精準的語言,所以學起來也會很方便的。

hive與pig的對比

wKiom1hKVyHQca4ZAAEhTk1YOmg783.png-wh_50

三、什麼是Impala?

儘管我們有了hive,但是hive是基於mapreduce,它的分析效率並不高,大家都着力去找到一種高性能的SQL的引擎,impala的出現就解決了這一問題。Impala是處理海量數據的高性能SQL引擎,它的查詢可以達到秒及,甚至有些數據少的可以達到毫秒級,延遲很低,比Hive、Pig或MapReduce快10到50倍,它的SQL 也是類似於HiveQL的查詢語言,他和標準的SQL也是有百分之八十的語法重複,也有自己的擴展一部分。Impala它使用的數據是和Hive一樣的,就好比在Hive裏面創建一個表,Impala也是可以訪問的,反之也是一樣的。Impala運行在Hadoop集羣上,數據存儲在HDFS,不能使用MapReduce,他有自己的架構,也是主存的結構,每一個服務可以直接對數據塊進行訪問。Impala由Cloudera開發,100%開源,在Apache軟件許可下發布。

那麼有三種數據分析方案,在實際操作中,我們怎樣來使用呢?總體來講Pig沒有Hive和Impala用的多,可是他們各有優勢。接下來描述一下他們各自的使用條件:我們知道Impala是近實時的查詢,使用數據和Hive一樣,那麼我們就會去問,爲什麼還要使用Hive呢?有一些複雜的文本分析只能用Hive,比如一些CSV的文件,一些高頻詞的分析,統計分析只能用Hive,Impala不支持.還有一些複雜類型的使用,比如用到數組,複雜的結構體這些也都只能用Hive。Impala主要用於及時的,交互式的分析,Hive用於穩定性挖掘比較高,實時性挖掘不高的作業。Pig也可以支持一些複雜的類型,但是pig沒有固定的模型,如果做一些做臨時的數據探索可以用。

比較Hive、Pig和Impala

wKiom1hKVzrgGQiPAAF9tuE-AHI374.png-wh_50

那麼他們可以替代RDBMS嗎?當然不行,關係型數據支持事務,延遲低,隨時可以修改,而Hive和Impala做不到,所以代替不了關係型數據庫,Pig、Hive和Impala主要適用於大量數據讀以及低成本的廣泛擴展。

               分析工作流示意

wKiom1hKV0-QI1C4AAIVRuLo0Ko484.png-wh_50

以上就是筆者根據自己的知識體系給大家分享的數據分析內容,主要是針對Hive、Pig和Impala各自的特點、應用、區分,以及與傳統數據庫的區別來進行闡述,對於深入瞭解數據分析工具在實際中的運用有着重要作用。我在實際工作和學習中喜歡關注一些大數據實時資訊,如“大數據cn”,對於瞭解和把握大數據的發展狀況有着很大作用,而且也喜歡去看一些別人分享的知識架構,比如“大數據時代學習中心”,來不斷豐富和完善自己的知識體系,這些都極大促進了我的發展,推薦給大家。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章