"Simple" betyder ofte "elegant", når det kommer til disse arkitektoniske tegninger til det nyt Silicon Valley palæ, du har planlagt til, når pengene begynder at rulle ind, efter at du har implementeret Hadoop. Det samme princip gælder for softwarearkitektur. Pig består af to (count dem, to) komponenter:
-
Sproget selv: Som bevis på, at programmører har en sans for humor, er programmeringssproget for Pig kendt som Pig Latin, et højt niveau sprog, der giver dig mulighed for at skrive databehandlings- og analyseprogrammer.
-
Pig Latin compiler: Pig Latin compiler konverterer Pig Latin-koden til eksekverbar kode. Den eksekverbare kode er enten i form af MapReduce-job eller den kan gyde en proces, hvor der oprettes en virtuel Hadoop-forekomst til at køre svinekoden på en enkelt node.
Sekvensen med MapReduce-programmer gør det muligt for grisprogrammer at foretage databehandling og analyse parallelt, hvor Hadoop MapReduce og HDFS udnyttes. At køre svinjobbet i det virtuelle Hadoop-eksempel er en nyttig strategi til at teste dine grisskrifter.
Figuren viser, hvordan grise relaterer til Hadoop økosystemet.
Grisprogrammer kan køre på MapReduce v1 eller MapReduce v2 uden nogen kodeændringer, uanset hvilken tilstand din klynge kører. Pig-scripts kan dog også køre ved hjælp af Tez API i stedet. Apache Tez giver en mere effektiv udførelsesramme end MapReduce. YARN gør det muligt at anvende applikationsrammer end MapReduce (som Tez) til at køre på Hadoop. Hive kan også løbe mod Tez-rammen.