Huis trends Een korte introductie tot bijenkorf en varken

Een korte introductie tot bijenkorf en varken

Anonim

Apache Hive is een raamwerk dat bovenop Hadoop staat voor het uitvoeren van ad-hocquery's op gegevens in Hadoop. Hive ondersteunt HiveQL, vergelijkbaar met SQL, maar ondersteunt niet de volledige constructies van SQL.


Hive bedekt de HiveQL-query in een Java MapReduce-programma en verzendt deze vervolgens naar het Hadoop-cluster. Hetzelfde resultaat kan worden bereikt met behulp van HiveQL en Java MapReduce, maar met behulp van Java MapReduce moet veel code worden geschreven / debuggen vergeleken met HiveQL. Dus, HiveQL verhoogt de productiviteit van ontwikkelaars.


Samenvattend biedt Hive via HiveQL-taal een abstractie op hoger niveau dan Java MapReduce-programmering. Zoals bij elke andere abstractie op hoog niveau, is er een beetje prestatieoverhead bij het gebruik van HiveQL in vergelijking met Java MapReduce, maar de Hive-gemeenschap werkt aan het verkleinen van deze kloof voor de meeste veelgebruikte scenario's.


Langs dezelfde lijn biedt Pig een abstractie op een hoger niveau dan MapReduce. Pig ondersteunt PigLatin-constructies, die worden geconverteerd naar het Java MapReduce-programma en vervolgens worden ingediend bij het Hadoop-cluster.



Hoewel HiveQL een declaratieve taal zoals SQL is, is PigLatin een taal voor de gegevensstroom. De uitvoer van een PigLatin-construct kan als invoer naar een ander PigLatin-construct worden verzonden, enzovoort.


Enige tijd geleden publiceerde Cloudera statistieken over het werkdrukkarakter in een typisch Hadoop-cluster en het is gemakkelijk waar te nemen dat Pig and Hive-banen een groot deel van de banen in een Hadoop-cluster uitmaken. Vanwege de hogere ontwikkelaarsproductiviteit kiezen veel bedrijven voor abstracts van een hoger niveau, zoals Pig en Hive. We kunnen dus wedden dat er veel vacatures zijn rond Hive en Pig in vergelijking met de ontwikkeling van MapReduce.



Hoewel het Programming Pig-boek in oktober 2011 werd gepubliceerd, werd het Programming Hive-boek recenter, in oktober 2012, gepubliceerd. Voor degenen die ervaring hebben met het werken met RDBMS, is aan de slag met Hive een betere optie dan aan de slag te gaan met Pig. Merk ook op dat PigLatin-taal niet erg moeilijk is om mee te beginnen.


Voor het onderliggende Hadoop-cluster is het transparant of een Java MapReduce-taak is verzonden of een MapReduce-taak is ingediend via Hive and Pig. Vanwege de batchgeoriënteerde aard van MapReduce-opdrachten, zijn de opdrachten die via Hive en Pig worden ingediend ook batchgeoriënteerd van aard.


Voor real-time responsvereisten voldoen Hive en Pig niet aan de vereisten vanwege het eerder genoemde batchgeoriënteerde karakter van MapReduce-taken. Cloudera ontwikkelde Impala, gebaseerd op Dremel (een publicatie van Google) voor interactieve ad-hocquery's bovenop Hadoop. Impala ondersteunt SQL-achtige query's en is compatibel met HiveQL. Toepassingen die bovenop Hive zijn gebouwd, zouden dus met minimale wijzigingen met Impala moeten werken. Het grote verschil tussen Hive en Impala is dat terwijl HiveQL wordt geconverteerd naar Java MapReduce-taken, Impala de SQL-query niet omzet in Java MapReduce-taken.


Moet je met Pig of Hive gaan voor een bepaalde vereiste? Dat is een onderwerp voor een ander blog.


Opnieuw gepubliceerd met toestemming van Praveen Sripati. Het originele artikel is hier te vinden: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Een korte introductie tot bijenkorf en varken