更新時(shí)間:2017-09-01 來源:黑馬程序員云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院 瀏覽量:
一 Pig概述
1-1 組成
Pig包括 兩部分
1:用于描述數(shù)據(jù)流的語言,稱為 Pig Latin (拉丁豬,個(gè)人翻譯)
2:用于運(yùn)行PigLatin程序的 執(zhí)行環(huán)境 。一個(gè)是 本地 的單JVM執(zhí)行環(huán)境,一個(gè)就是在 hadoop集群上 的分布式執(zhí)行環(huán)境。
Pig Latin程序是由一系列的" 操作"(operation)或"變換"(transformation)組成 。每個(gè)操作或變換對(duì)輸入進(jìn)行 數(shù)據(jù)處理 ,然后產(chǎn)生 輸出的結(jié)果 。這些操作整體上描述了一個(gè) 數(shù)據(jù)流 ,Pig執(zhí)行的環(huán)境把數(shù)據(jù)流翻譯為可執(zhí)行的內(nèi)部表示,并運(yùn)行它。在Pig的內(nèi)部,這些變換和操作被轉(zhuǎn)換成一系列的MapReducer,但是我們一般情況下并不知道這些轉(zhuǎn)換是怎么進(jìn)行的, 我們的主要的精力就花在數(shù)據(jù)上,而不是執(zhí)行的細(xì)節(jié)上面。
1-2 作用
那么雅虎公司主要使用Pig來干什么呢?
1)吸收和分析用戶的行為日志數(shù)據(jù)(點(diǎn)擊流分析、搜索內(nèi)容分析等),改進(jìn)匹配和排名算法,以提高檢索和廣告業(yè)務(wù)的質(zhì)量。
2)構(gòu)建和更新search index。對(duì)于web-crawler抓取了的內(nèi)容是一個(gè)流數(shù)據(jù)的形式,這包括去冗余、鏈接分析、內(nèi)容分類、基于點(diǎn)擊次數(shù)的受歡迎程度計(jì)算(PageRank)、最后建立倒排表。
3)處理半結(jié)構(gòu)化數(shù)據(jù)訂閱(data seeds)服務(wù)。包括:deduplcaitin(去冗余),geographic location resolution,以及 named entity recognition.
1-3 優(yōu)勢(shì)與不足
MapReducer能夠讓我們自己定義 連續(xù)執(zhí)行的map和reduce函數(shù) ,但是數(shù)據(jù)處理往往需要很多的MapReducer過程才能實(shí)現(xiàn),所以將數(shù)據(jù)處理要求改寫成MapReducer模式是很 復(fù)雜的 。和MapReducer相比,Pig提供了更加 豐富的數(shù)據(jù)結(jié)構(gòu) ,一般都是 多值 和 嵌套 的數(shù)據(jù)結(jié)構(gòu)。Pig還提供了一套更強(qiáng)大的 數(shù)據(jù)交換操作 ,包括了MapReducer中被忽視的" join "操作
使用Pig來操作hadoop處理海量數(shù)據(jù),是非常簡(jiǎn)單的,如果沒有Pig,我們就得手寫MapReduce代碼,這可是一件非常繁瑣的事,因?yàn)镸apReduce的任務(wù)職責(zé)非常明確,清洗數(shù)據(jù)得一個(gè)job,處理得一個(gè)job,過濾得一個(gè)job,統(tǒng)計(jì)得一個(gè)job,排序得一個(gè)job,每次只要改動(dòng)很小的一個(gè)地方,就得重新編譯整個(gè)job,然后打成jar提交到Hadoop集群上運(yùn)行,是非常繁瑣的,調(diào)試還很困難。
但是,Pig并不適合處理所有的“數(shù)據(jù)處理”任務(wù)。和MapReducer一樣,它是為數(shù)據(jù) 批處理 而設(shè)計(jì)的,如果想執(zhí)行的查詢只涉及一個(gè)大型數(shù)據(jù)集的一小部分?jǐn)?shù)據(jù),Pig的實(shí)現(xiàn)不是很好, 因?yàn)樗獟呙枵麄€(gè)數(shù)據(jù)集或其中的很大一部分。
云計(jì)算大數(shù)據(jù)培訓(xùn)之Spark調(diào)優(yōu)(4)
2017-09-01云計(jì)算大數(shù)據(jù)培訓(xùn)之Spark調(diào)優(yōu)(3)
2017-09-01云計(jì)算大數(shù)據(jù)培訓(xùn)之Spark調(diào)優(yōu)(2)
2017-09-01云計(jì)算大數(shù)據(jù)培訓(xùn)之Spark調(diào)優(yōu)(1)
2017-09-01云計(jì)算大數(shù)據(jù)培訓(xùn)之Hadoop組件:zookeeper(3)
2017-09-01云計(jì)算大數(shù)據(jù)培訓(xùn)之Hadoop組件:zookeeper(2)
2017-09-01