2014-10-29 69 views
0

區別使用情況的map-reduce,蜂巢,豬差異,地圖,減少之間

豬:它是一種數據流語言,它可以基本上用於轉化半結構的任何處理數據,非結構化數據以便可用於使用開窗功能的蜂巢進階分析等。

蜂巢:處理結構數據並提供sql類型查詢語言。

我知道在後端豬和蜂房都使用map -reduces。

我知道映射簡化可以爲程序員,蜂巢或豬的SQL傢伙

我只是想知道很好的工具是有任何具體的使用情況下,我們去了蜂巢,豬和映射簡化

基本上我們決定我們必須在這裏使用豬這裏的蜂房,或者我們必須使用map -reduce。

+1

Duplicate http://stackoverflow.com/questions/17950248/pig-vs-hive-vs-native-map-reduce/17964271#17964271 – alexeipab 2014-10-30 20:25:49

回答

0

Map-Reduce:比豬或蜂巢有更好的性能,但需要更多的開發時間。

PIg:與map-reduce相比,開發時間短但性能差。

Hive:SQL類型語言,具有一些很好的功能,如分區和分區以提高性能讀取。另外,配置單元在讀取時強制執行模式。

+0

map-reduce如何比豬或蜂房有更好的性能比如你必須加入數據,所以寫圖減少效率高,因爲你沒有太多的選擇。假設你有兩個大表加入,這些表不能完全符合內存,那麼你如何加入map -reduce – user3484461 2014-10-30 04:07:28

+0

並不完全正確,map-reduce的性能比Pig或Hive更高。但是我們可以說map-reduce比Pig和Hive更低。所以它允許更多的靈活性,但需要更多的代碼和時間來編寫它。 – 2015-03-02 20:55:15

0

Pig用於格式化非結構化/半結構化數據格式。假設您的數據中有一個時間戳,而不是每個Hive時間戳格式。您可以使用pigUDF轉換它並格式化數據。這只是一個例子來解釋。你可以使用Pig做更多的事情。

Hive基本上用於結構化數據。這可能不適合非結構化數據。這需要更多時間來執行,因爲它轉換爲Mapreduce作業。我建議您使用比配置單元快得多的impala。

+0

我已經在我的問題中提到過這個信息,基本上我正在尋找特定的用例 – user3484461 2014-10-30 04:08:44

0

Pig是一種數據流語言。這意味着你不能使用if語句或循環。 如果你需要做很多重複,最好學習mapreduce。

你可以通過將pig嵌入python腳本來解決這個問題,但這需要更長的時間,因爲它必須在每次迭代循環中加載所有jar文件。

基本上可以歸結爲您花了多少時間進行原型設計與您有多少生產工作。 如果您是數據科學家或分析師,那麼您的大部分工作都是需要大量原型設計的新項目。這意味着你關心快速獲得結果。那麼你會喜歡豬或蜂巢。 如果你在一個開發團隊中,你想根據不需要測試的商定方法構建健壯的代碼,那麼你更喜歡mapreduce。

有像Cloudera這樣的公司提供Pig,Hive和其他Hadoop工具包,因此您不必在兩者之間進行選擇。

0

Map Reduce是hadoop的內部組件,其他Pig和hive都是hadoop eco系統,它意味着在hadoop上運行。 mapreduce,pig和hive目的都是以不同方式處理大量數據。

Mapreduce:apache實現它。強烈建議處理整個數據,這是時間消耗和所需的程序技能,如java(高度推薦),pyghon,ruby和其他編程語言。總數據彙總和使用映射器和減速器功能進行排序。 Hadoop默認使用它。

配置單元:Facebook實施它。大多數分析師特別是bigdata analysts使用這個工具來分析數據,特別是結構數據。後端此配置單元工具使用mapreduce進行處理。內部Hive使用稱爲HQL的特殊語言,它是SQL語言的子集。 SQL中誰是好人,他們可以和Hive一起使用。強烈建議面向Datawarehouse的項目。處理非結構化特別是無模式數據非常困難。

豬: 豬是一種腳本語言,由雅虎實施。主要的difference between pig and Hive是豬可以處理任何類型的數據,無論是結構化數據還是非結構化數據。這意味着它非常值得推薦,用於流式數據,如衛星生成的數據,實時事件,無模式數據等。豬首先加載數據後,程序員編寫一個程序取決於數據,使其結構化。誰是編程語言方面的專家,他們會選擇這個Hadoop生態系統。