新聞中心
用于使用Pig分析Hadoop中的數(shù)據(jù)的語言稱為 Pig Latin,是一種高級數(shù)據(jù)處理語言,它提供了一組豐富的數(shù)據(jù)類型和操作符來對數(shù)據(jù)執(zhí)行各種操作。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、德欽網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為德欽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
要執(zhí)行特定任務(wù)時,程序員使用Pig,需要用Pig Latin語言編寫Pig腳本,并使用任何執(zhí)行機制(Grunt Shell,UDFs,Embedded)執(zhí)行它們。執(zhí)行后,這些腳本將通過應(yīng)用Pig框架的一系列轉(zhuǎn)換來生成所需的輸出。
在內(nèi)部,Apache Pig將這些腳本轉(zhuǎn)換為一系列MapReduce作業(yè),因此,它使程序員的工作變得容易。Apache Pig的架構(gòu)如下所示。
Apache Pig組件
如圖所示,Apache Pig框架中有各種組件。讓我們來看看主要的組件。
Parser(解析器)
最初,Pig腳本由解析器處理,它檢查腳本的語法,類型檢查和其他雜項檢查。解析器的輸出將是DAG(有向無環(huán)圖),它表示Pig Latin語句和邏輯運算符。在DAG中,腳本的邏輯運算符表示為節(jié)點,數(shù)據(jù)流表示為邊。
Optimizer(優(yōu)化器)
邏輯計劃(DAG)傳遞到邏輯優(yōu)化器,邏輯優(yōu)化器執(zhí)行邏輯優(yōu)化,例如投影和下推。
Compiler(編譯器)
編譯器將優(yōu)化的邏輯計劃編譯為一系列MapReduce作業(yè)。
Execution engine(執(zhí)行引擎)
最后,MapReduce作業(yè)以排序順序提交到Hadoop。這些MapReduce作業(yè)在Hadoop上執(zhí)行,產(chǎn)生所需的結(jié)果。
Pig Latin數(shù)據(jù)模型
Pig Latin的數(shù)據(jù)模型是完全嵌套的,它允許復(fù)雜的非原子數(shù)據(jù)類型,例如 map和 tuple。下面給出了Pig Latin數(shù)據(jù)模型的圖形表示。
Atom(原子)
Pig Latin中的任何單個值,無論其數(shù)據(jù)類型,都稱為 Atom。它存儲為字符串,可以用作字符串和數(shù)字。int,long,float,double,chararray和bytearray是Pig的原子值。一條數(shù)據(jù)或一個簡單的原子值被稱為字段。例:“raja“或“30"
Tuple(元組)
由有序字段集合形成的記錄稱為元組,字段可以是任何類型。元組與RDBMS表中的行類似。例:(Raja,30)
Bag(包)
一個包是一組無序的元組。換句話說,元組(非唯一)的集合被稱為包。每個元組可以有任意數(shù)量的字段(靈活模式)。包由“{}"表示。它類似于RDBMS中的表,但是與RDBMS中的表不同,不需要每個元組包含相同數(shù)量的字段,或者相同位置(列)中的字段具有相同類型。
例:{(Raja,30),(Mohammad,45)}
包可以是關(guān)系中的字段;在這種情況下,它被稱為內(nèi)包(inner bag)。
例:{Raja,30, {9848022338,[email protected],}}
Map(映射)
映射(或數(shù)據(jù)映射)是一組key-value對。key需要是chararray類型,且應(yīng)該是唯一的。value可以是任何類型,它由“[]"表示,
例:[name#Raja,age#30]
Relation(關(guān)系)
一個關(guān)系是一個元組的包。Pig Latin中的關(guān)系是無序的(不能保證按任何特定順序處理元組)。
新聞名稱:創(chuàng)新互聯(lián)ApachePig教程:ApachePig架構(gòu)
網(wǎng)頁URL:http://m.fisionsoft.com.cn/article/ccehogo.html


咨詢
建站咨詢
