"Simple" betyder ofta "elegant" när det gäller de arkitektoniska ritningarna för det ny Silicon Valley herrgård du har planerat för när pengarna börjar rulla in efter att ha implementerat Hadoop. Samma princip gäller för programarkitektur. Gris består av två (räkna, två) komponenter:
-
Språket självt: Som bevis på att programmerare har en humoristisk känsla, är programmeringsspråket för gris känt som gris latin, en hög nivå språk som låter dig skriva databehandling och analysprogram.
-
Pig Latin compiler: Pig Latin compiler konverterar Pig Latin-koden till exekverbar kod. Den exekverbara koden är antingen i form av MapReduce-jobb eller det kan göra en process där en virtuell Hadoop-instans skapas för att köra griskoden på en enda nod.
Sekvensen av MapReduce-program gör det möjligt för grisprogram att göra databehandling och analys parallellt, vilket utnyttjar Hadoop MapReduce och HDFS. Att köra grisjobbet i den virtuella Hadoop-förekomsten är en användbar strategi för att testa dina grisskript.
Figuren visar hur gris relaterar till Hadoop ekosystemet.
Grisprogram kan köras på MapReduce v1 eller MapReduce v2 utan några kodändringar, oavsett vilket läge ditt kluster körs. Men grisskript kan också köras med Tez API istället. Apache Tez ger ett effektivare ramverk än MapReduce. Garn gör det möjligt att använda applikationsramar andra än MapReduce (som Tez) att köra på Hadoop. Hive kan också springa mot Tez-ramen.