Apache Hive on kehys, joka istuu Hadoopin päällä tekemällä ad-hoc-kyselyjä Hadoopin dataa varten. Hive tukee HiveQL: tä, joka on samanlainen kuin SQL, mutta ei tue SQL: n kokonaisia rakenteita.
Hive muuntaa HiveQL-kyselyn Java MapReduce -ohjelmaksi ja toimittaa sen sitten Hadoop-klusterille. Sama tulos voidaan saavuttaa käyttämällä HiveQL: tä ja Java MapReducea, mutta Java MapReduce -sovelluksen käyttäminen vaatii paljon koodin kirjoittamista / virheenkorjausta HiveQL: ään verrattuna. Joten HiveQL lisää kehittäjien tuottavuutta.
Yhteenvetona voidaan todeta, että Hive tarjoaa HiveQL-kielen kautta korkeamman abstraktion Java MapReduce-ohjelmoinnissa. Kuten kaikissa muissa korkean tason abstraktioissa, HiveQL: n käyttämisessä on hiukan suorituskykyä ylöspäin Java MapReduce -sovellukseen verrattuna, mutta Hive-yhteisö pyrkii kaventamaan tätä aukkoa useimpien yleisesti käytettyjen skenaarioiden kohdalla.
Samaan linjaan saakka Pig tarjoaa korkeamman tason abstraktiot MapReducen yli. Pig tukee PigLatin-rakenteita, jotka muunnetaan Java MapReduce -ohjelmaksi ja toimitetaan sitten Hadoop-klusterille.
Vaikka HiveQL on deklaratiivinen kieli, kuten SQL, PigLatin on tiedonsiirtokieli. Yhden PigLatin-rakenteen lähtö voidaan lähettää tulona toiseen PigLatin-konstruktiin ja niin edelleen.
Jonkin ajan kuluttua Cloudera julkaisi tilastotietoja työmäärän luonteesta tyypillisessä Hadoop-klusterissa. Voidaan helposti havaita, että Pig- ja Hive-työpaikat muodostavat suuren osan Hadoop-klusterin työpaikoista. Kehittäjien korkeamman tuottavuuden vuoksi monet yritykset valitsevat korkeamman tason tiivistelmät, kuten Pig and Hive. Joten voimme lyödä vetoa, että Hiven ja Sian ympärillä on paljon avoimia työpaikkoja MapReduce-kehitykseen verrattuna.
Vaikka Programming Pig -teos julkaistiin lokakuussa 2011, Programming Hive -kirja julkaistiin äskettäin, lokakuussa 2012. Niille, joilla on kokemusta RDBMS: n kanssa työskentelystä, Hive-aloittaminen olisi parempi vaihtoehto kuin Pig-ohjelmaan pääsy. Huomaa myös, että PigLatin-kielen aloittaminen ei ole kovin vaikeaa.
Taustalla olevassa Hadoop-klusterissa on läpinäkyvää, lähetetäänkö Java MapReduce -työ vai MapReduce-työ Hive and Pig -sovelluksen kautta. MapReduce-töiden eräkeskeisen luonteen vuoksi myös Hive- ja Pig-ohjelmien kautta lähetetyt työt ovat luonteeltaan eräkeskeisiä.
Reaaliaikaisia vastausvaatimuksia varten pesä ja sika eivät täytä vaatimuksia, koska MapReduce-työpaikat ovat aiemmin mainitut eräkeskeiset. Cloudera kehitti Impalan, joka perustuu Dremeliin (Googlen julkaisu) interaktiivisille ad-hoc-kyselyille Hadoopin päällä. Impala tukee SQL: n kaltaisia kyselyjä ja on yhteensopiva HiveQL: n kanssa. Joten kaikkien Hive-päälle rakennettujen sovellusten tulisi toimia vähäisin muutoksin Impalan kanssa. Suurin ero Hive: n ja Impalan välillä on, että vaikka HiveQL muutetaan Java MapReduce -työksi, Impala ei peitä SQL-kyselyä Java MapReduce -työksi.
Pitäisikö sinun mennä sian tai pesän kanssa tietystä vaatimuksesta? Se on toisen blogin aihe.
Julkaistaan uudelleen Praveen Sripatin luvalla. Alkuperäinen artikkeli löytyy täältä: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html