本文主要分享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是一致的,像
這種標準的sql是支援的,所以對於資料分析人員來講,就可以很方便的切入到hadoop的平台上去做資料分析。
二、什麼是pig?
pig是處理大資料集的資料流語言。什麼是資料流呢?就是處理資料的流程可以一步步定義,比如第一步載入,第二步轉換,第三步再轉換,第四步儲存,可以一步步定義資料的走向,很類似我們在資料探勘中進行的系列處理流程。因為pig是資料流的語言,所以很適合做物質的資料探索和etl階段資料的非處理,他和spark的思想很相似,所以也可以說spark是實現正確的pig。為什麼這樣說?因為pig和spark都是資料流似的處理, pig有轉換,行動操作,在spark裡面也是一樣。
pig資料流語言
pig在etl階段還是用的很多的,而且對於一些資料探勘人員來說,尤其是探知一些未知資料,非常合適。因為不需要指定任何的名稱、型別就可以先載入,然後去匹配所有的資料,接下來就可以去觀察資料是怎樣的,分析怎麼去做轉換。pig是一種語義很精準的語言,所以學起來也會很方便的。
hive與pig的對比
三、什麼是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
那麼他們可以替代rdbms嗎?當然不行,關係型資料支援事務,延遲低,隨時可以修改,而hive和impala做不到,所以代替不了關係型資料庫,pig、hive和impala主要適用於大量資料讀以及低成本的廣泛擴充套件。
分析工作流示意
以上就是筆者根據自己的知識體系給大家分享的資料分析內容,主要是針對hive、pig和impala各自的特點、應用、區分,以及與傳統資料庫的區別來進行闡述,對於深入了解資料分析工具在實際中的運用有著重要作用。我在實際工作和學習中喜歡關注一些大資料實時資訊,如
「大資料cn」,對於了解和把握大資料的發展狀況有著很大作用,而且也喜歡去看一些別人分享的知識架構,比如
「大資料時代學習中心」,
資料分析 資料分析概述
了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...
資料分析和展示
匯入matplotlib中的pyplot import matplotlib.pyplot as plt 為了使matplotlib圖形能夠內聯顯示 matplotlib inline 匯入詞云庫 from wordcloud import wordcloud,imagecolorgenerator...
資料分析 資料分析的誤區
在資料分析的過程中,我們難免會走一些彎路,但有些彎路是可以避免的,下面我將介紹幾個資料分析過程中常見的誤區 我們一定都聽說過二戰中的乙個經典示例 軍方為了提高戰鬥機飛行員的生還率,打算在飛機上增加裝甲的厚度,但不能在所有部位加厚,這樣會喪失戰機的靈活性,於是軍方請了統計學家來研究,這些專家在一開始就...