勝還是平?PigvsHive!!! -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【m.clearvueentertainment.com - 電腦資料】

    這篇文章討論了pig和hive的特性,

勝還是平?PigvsHive!!!

。

開發(fā)者通常處于選擇滿足業(yè)務(wù)需求的技術(shù)體系。 在hadoop體系中,pig和hive很相似,并能給出幾乎相同的結(jié)果,但是那種技術(shù)更適合特殊的業(yè)務(wù)場(chǎng)景了?這里列出了pig和hive的一些對(duì)比。

    PIG and Hive:

    流類型:

    Pig是過程式數(shù)據(jù)流語言。過程式語言通常按照一步一步的執(zhí)行方式去編寫,你能夠控制和優(yōu)化每一步。

    Hive更像sql,因此,它是聲明式語言,你要指定需要做什么而不是怎么做。Hive依靠自己的優(yōu)化器,因此hive中優(yōu)化是比較難的。

    易用性:

    Pig擁有新而不同的語法,需要額外的時(shí)間去學(xué)習(xí)。

    Hive更像sql,開發(fā)者會(huì)更興奮的去使用hive.

    一般場(chǎng)景:

    推薦程序開發(fā)者使用Pig。主要原因是它計(jì)算高效,當(dāng)你的查詢有大量的join和filter時(shí),pig更合適。

    Hive更多的用于分析,它遵循Hadoop和DatawareHouse一些規(guī)則。一般更傾向使用Hive產(chǎn)生報(bào)表。如果你的查詢join和filters比較少可以繼續(xù)使用Hive,相反,如果查詢擁有很多join,Hive的性能也許會(huì)降低。

    數(shù)據(jù)類型:

    Pig能高效處理結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。

    Hive能高效的處理結(jié)構(gòu)化數(shù)據(jù)。

    中間層:

    Pig使用變量表示數(shù)據(jù),當(dāng)要存儲(chǔ)中間結(jié)果,可以很容易的用變量存起來并在以后引用,

電腦資料

勝還是平?PigvsHive!!!》(http://m.clearvueentertainment.com)。

    Hive使用表表示數(shù)據(jù),存儲(chǔ)中間結(jié)果比較困難,需要?jiǎng)?chuàng)建一個(gè)表,并從其他的表插入進(jìn)去。因此,呈現(xiàn)一個(gè)復(fù)雜的查詢時(shí),可能需要幾百行的代碼。

    調(diào)試方式:

    Pig可以使用本地模式調(diào)試。

    Hive使用本來模式調(diào)試比較復(fù)雜并且很費(fèi)時(shí)。

    擴(kuò)展性:

    Pig中UDF很容易。

    Hive中UDF相對(duì)麻煩。

    維護(hù)性:

    Pig比Hive差一點(diǎn)。

    Hive比較簡(jiǎn)單。

    持久性:

    Pig中可能不會(huì)保留變量的值,每一次你都需要重新執(zhí)行pig代碼重新獲取變量值。

    Hive中即使退出當(dāng)前會(huì)話外部表依然存在,因?yàn)橥獠勘硪廊恢赶騂DFS文件。

    開發(fā)時(shí)間:

    pig開發(fā)需要更多的時(shí)間,更多的依賴對(duì)pig的熟悉度。

    SQL語句,開發(fā)時(shí)間很少。

    兼容性:

    RDBMS與Pig兼容有點(diǎn)復(fù)雜,因?yàn)閜ig的語法完全不同。

    大部分在RDBMS中的sql可以在Hive中執(zhí)行,只有少數(shù)需要修改。

    數(shù)據(jù)量:

    Pig處理大數(shù)據(jù)很高效。

    Hive有時(shí)會(huì)內(nèi)存泄露和不靠譜的性能,然而,有一些參數(shù)可以進(jìn)行調(diào)整和定位問題。

最新文章