[Hadoop]Pig與Hive的區別

請允許我很無聊的把飛機和火車拿來做比較,因爲2者根本沒有深入的可比性,雖然兩者都是一種高速的交通工具,但是具體的作用範圍是截然不同的,就像Hive和Pig都是Hadoop中的項目,並且Hive和pig有很多共同點,但Hive還似乎有點數據庫的影子,而Pig基本就是一個對MapReduce實現的工具(腳本)。兩者都擁有自己的表達語言,其目的是將MapReduce的實現進行簡化,並且讀寫操作數據最終都是存儲在HDFS分佈式文件系統上。看起來Pig和Hive有些類似的地方,但也有些不同,來做一個簡單的比較,先來看一張圖: 

查看大圖請點擊這裏 

[Hadoop]Pig與Hive的區別 - manny - 你的目標-卓越非凡

再讓我說幾句廢話: 
Language 
在Hive中可以執行  插入/刪除 等操作,但是Pig中我沒有發現有可以 插入 數據的方法,請允許我暫且認爲這是最大的不同點吧。 

Schemas 
Hive中至少還有一個“表”的概念,但是Pig中我認爲是基本沒有表的概念,所謂的表建立在Pig Latin腳本中,對與Pig更不要提metadata了。 

Partitions 
Pig中沒有表的概念,所以說到分區對於Pig來說基本免談,如果跟Hive說“分區”(Partition)他還是能明白的。 

Server 
Hive可以依託於Thrift啓動一個服務器,提供遠程調用。 找了半天壓根沒有發現Pig有這樣的功能,如果你有新發現可以告訴我,就好像有人開發了一個Hive的REST 

Shell 
在Pig 你可以執行一些個 ls 、cat 這樣很經典、很cool的命令,但是在使用Hive的時候我壓根就沒有想過有這樣的需求。 

Web Interface 
Hive有,Pig無 

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