簡體   English   中英

hive、pig、map-reduce 用例之間的區別

[英]Difference between hive,pig,map-reduce use cases

map-reduce、hive、pig 之間的區別

pig:它是一種數據流語言,它可以處理任何基本上用於將半結構化、非結構化數據轉換為結構化的數據,以便可以使用窗口函數等用於 hive 高級分析。

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

我知道在后端, pig 和 hive 都使用 map -reduces 。

我知道 map-reduce 可以成為程序員的好工具,對於 sql 人員來說,hive 或 pig

我只想知道是否有任何特定的用例可以用於 hive、pig 和 map-reduce

基本上我們決定我們必須在這里使用 pig 在這里 hive 或者我們必須使用 map -reduce 。

Map-Reduce:比 pig 或 hive 具有更好的性能,但需要更多的開發時間。

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

Hve:SQL 類型語言,具有一些不錯的功能,例如分區和分桶以提高讀取性能。此外,hive 強制讀取模式。

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

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

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

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

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

Cloudera 等公司提供了 Pig、Hive 和其他 Hadoop 工具包,因此您不必在兩者之間進行選擇。

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

Mapreduce : apache 實現了它。 強烈推薦處理整個數據,它的時間消耗和所需的程序技能,如 java(強烈推薦)、pyghon、ruby 和其他編程語言。 使用 mapper 和 reducer 函數聚合和排序總數據。 Hadoop 默認使用它。

Hive :Facebook 實現了它。 大多數分析師尤其是大數據分析師使用此工具來分析數據,尤其是結構數據。 后端這個hive工具使用mapreduce進行處理。 Hive 內部使用稱為 HQL 的特殊語言,它是 SQL 語言的子集。 精通 SQL 的人可以使用 Hive。 強烈推薦給面向數據倉庫的項目。 處理非結構化特別是無模式數據非常困難。

Pig: Pig 是一種腳本語言,由 Yahoo 實現。 Pig 和 Hive 之間的主要區別在於 Pig可以處理任何類型的數據,無論是結構化數據還是非結構化數據。 這意味着它非常適合流數據,如衛星生成的數據、實時事件、無模式數據等。 Pig 首先加載數據,然后程序員編寫依賴於數據的程序以使其結構化。 誰是編程語言專家,他們將選擇這個 Hadoop 生態系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM