Hive és una eina d'anàlisi de Big Data àmpliament utilitzada a l'empresa i és un lloc fantàstic per començar si sou nou a Big Data. Aquesta lliçó d'Apache Hive repassa els fonaments d'Apache Hive, per què és necessari un rusc, les seves característiques i tota la resta que hauríeu de saber.
Primer entenem el marc Hadoop sobre el qual es basa Apache Hive.
Apache Hadoop
Apache Hadoop és un programa gratuït i de codi obert plataforma per emmagatzemar i processar grans conjunts de dades que van des de gigabytes fins a petabytes. Hadoop permet agrupar nombrosos ordinadors per analitzar conjunts de dades enormes en paral·lel, en lloc de requerir un únic ordinador gran per emmagatzemar i analitzar les dades.
MapReduce i Hadoop Distributed File System són dos dels components:
- MapReduce – MapReduce és una tècnica de programació paral·lela per gestionar grans volums de dades organitzades, semiestructurades i no estructurades en clústers de maquinari de productes bàsics.
- HDFS – HDFS (Hadoop Distributed File System) és un component del marc Hadoop que emmagatzema i processa dades. És un sistema de fitxers tolerant a errors que funciona amb maquinari estàndard
Diferents subprojectes (eines) de l'ecosistema Hadoop, inclosos Sqoop, Pig i Hive, s'utilitzen per ajudar els mòduls Hadoop.
- Rusc – Hive és un marc per escriure scripts d'estil SQL que realitzen càlculs MapReduce.
- Porc – Pig és un llenguatge de programació procedimental que es pot utilitzar per crear un script per als processos MapReduce.
- Sqoop – Sqoop és una eina per importar i exportar dades entre HDFS i RDBMS.
Què és Rusc Apache?
Apache Hive és un codi obert magatzem de dades programa per llegir, escriure i gestionar grans conjunts de dades emmagatzemats directament al sistema de fitxers distribuïts d'Apache Hadoop (HDFS) o altres sistemes d'emmagatzematge de dades com Apache HBase.
Els desenvolupadors d'SQL poden utilitzar Hive per crear sentències Hive Query Language (HQL) per a la consulta i l'anàlisi de dades que siguin comparables a les sentències SQL habituals. Va ser creat per facilitar la programació de MapReduce eliminant la necessitat d'aprendre i escriure codi Java llarg. En lloc d'això, podeu escriure les vostres consultes en HQL i Hive crearà el mapa i reduirà les funcions per vosaltres.
La interfície semblant a SQL d'Apache Hive s'ha convertit en l'estàndard d'or per realitzar cerques ad hoc, resumir i analitzar dades d'Hadoop. Quan s'inclou al núvol xarxes informàtiques, aquesta solució és especialment rendible i escalable, per això moltes empreses, incloses Netflix i Amazon, continuen desenvolupant i millorant Apache Hive.
història
Durant el seu temps a Facebook, Joydeep Sen Sarma i Ashish Thusoo van co-crear Apache Hive. Tots dos van reconèixer que per treure el màxim profit a Hadoop, haurien de crear tasques de Java Map-Reduce força complicades. Van reconèixer que no podrien educar els seus equips d'enginyeria i analítics en ràpida expansió sobre les habilitats que necessitarien per aprofitar Hadoop a tota l'empresa. Els enginyers i analistes utilitzen sovint SQL com a interfície d'usuari.
Tot i que SQL podria satisfer la majoria de les necessitats d'anàlisi, els desenvolupadors també pretenien incorporar la programabilitat d'Hadoop. Apache Hive va sorgir d'aquests dos objectius: un llenguatge declaratiu basat en SQL que també permetia als desenvolupadors introduir els seus propis scripts i programes quan SQL no n'hi havia prou.
També es va desenvolupar per contenir metadades centralitzades (basades en Hadoop) sobre tots els conjunts de dades de l'empresa per facilitar la construcció d'organitzacions basades en dades.
Com funciona Apache Hive?
En poques paraules, Apache Hive converteix un programa d'entrada escrit en el llenguatge HiveQL (semblant a SQL) en una o més tasques Java MapReduce, Tez o Spark. (Tots aquests motors d'execució són compatibles amb Hadoop YARN.) Després d'això, Apache Hive organitza les dades en taules per al sistema de fitxers distribuït de Hadoop HDFS) i realitza les tasques en un clúster per obtenir una resposta.
dades
Les taules d'Apache Hive s'organitzen de la mateixa manera que s'organitzen les taules d'una base de dades relacional, amb unitats de dades que varien de més gran a més petit. Les bases de dades estan formades per taules que es divideixen en divisions, que a més es divideixen en cubs. HiveQL (Hive Query Language) s'utilitza per accedir a les dades, que es poden modificar o afegir. Les dades de la taula es serialitzen dins de cada base de dades i cada taula té el seu propi directori HDFS.
arquitectura
Ara parlarem de l'aspecte més important de l'arquitectura Hive. Els components d'Apache Hive són els següents:
Metamagatzem — Fa un seguiment de la informació sobre cada taula, com ara la seva estructura i ubicació. Les metadades de la partició també s'inclouen a Hive. Això permet al conductor fer un seguiment del progrés dels diferents conjunts de dades repartits pel clúster. Les dades s'emmagatzemen en un format RDBMS convencional. Les metadades del rusc són extremadament importants perquè el conductor faci un seguiment de les dades. El servidor de còpia de seguretat duplica les dades de manera regular perquè es puguin recuperar en cas de pèrdua de dades.
Conductor – Les declaracions HiveQL les rep un controlador, que funciona com a controlador. En establir sessions, el conductor inicia l'execució de la declaració. Fa un seguiment de la vida i del progrés de l'executiu. Durant l'execució d'una instrucció HiveQL, el controlador desa les metadades necessàries. També serveix com a punt de recollida de dades o de resultats de consulta després del procés de Reducció.
compilador – Executa la compilació de consultes HiveQL. La consulta ara es converteix en un pla d'execució. Les tasques estan enumerades al pla. També inclou els passos que MapReduce ha de seguir per obtenir el resultat traduït per la consulta. El compilador de Hive (AST) converteix la consulta en un arbre de sintaxi abstracta. Converteix l'AST en un gràfic acíclic dirigit després de comprovar la compatibilitat i els errors en temps de compilació (DAG).
Optimizer – Optimitza el DAG realitzant diferents canvis en el pla d'execució. Combina transformacions per millorar l'eficiència, com ara convertir una canalització d'unions en una única unió. Per millorar la velocitat, l'optimitzador pot dividir les activitats, com ara aplicar una transformació a les dades abans de realitzar una operació de reducció.
Marmessor – L'executor executa les tasques quan s'ha acabat la compilació i l'optimització. Els treballs són canalitzats per l'executor.
CLI, UI i Thrift Server – La interfície de línia d'ordres (CLI) és una interfície d'usuari que permet a un usuari extern comunicar-se amb Hive. El servidor Thrift de Hive, similar als protocols JDBC o ODBC, permet als clients externs comunicar-se amb Hive mitjançant una xarxa.
Seguretat
Apache Hive està integrat amb la seguretat Hadoop, que utilitza Kerberos per a l'autenticació mútua client-servidor. L'HDFS dicta permisos per als fitxers generats recentment a Apache Hive, cosa que us permet aprovar per l'usuari, el grup i altres.
Característiques principals
- Hive admet taules externes, que us permeten processar dades sense emmagatzemar-les a HDFS.
- També permet la segmentació de dades a nivell de taula per augmentar la velocitat.
- Apache Hive compleix excel·lentment la necessitat d'interfície de baix nivell d'Hadoop.
- Hive facilita el resum, la consulta i l'anàlisi de dades.
- HiveQL no requereix cap habilitat de programació; una simple comprensió de les consultes SQL és suficient.
- També podem utilitzar Hive per realitzar consultes ad-hoc per a l'anàlisi de dades.
- És escalable, familiar i adaptable.
- HiveQL no requereix cap habilitat de programació; una simple comprensió de les consultes SQL és suficient.
Beneficis
Apache Hive permet informes al final del dia, avaluacions diàries de transaccions, cerques ad hoc i anàlisi de dades. Els coneixements exhaustius que ofereix Apache Hive ofereixen avantatges competitius significatius i us faciliten la resposta a les demandes del mercat.
Aquests són alguns dels avantatges de tenir aquesta informació disponible:
- Facilitat d'ús – Amb el seu llenguatge semblant a SQL, la consulta de dades és fàcil d'entendre.
- Inserció de dades accelerada — Com que Apache Hive llegeix l'esquema sense verificar el tipus de taula o la definició de l'esquema, les dades no s'han de llegir, analitzar i serialitzar al disc en el format intern de la base de dades. En canvi, en una base de dades convencional, les dades s'han de validar cada vegada que s'afegeixen.
- Escalabilitat, flexibilitat i rendibilitat superiors – Com que les dades s'emmagatzemen a l'HDFS, Apache Hive pot contenir 100 petabytes de dades, cosa que la converteix en una opció molt més escalable que una base de dades típica. Apache Hive, com a servei Hadoop basat en núvol, permet als clients girar i baixar ràpidament els servidors virtuals per fer front a les càrregues de treball canviants.
- Amplia capacitat de treball – Els grans conjunts de dades poden gestionar fins a 100,000 consultes per hora.
Limitacions
- En general, les consultes d'Apache Hive tenen una latència molt alta.
- El suport de subconsultes és limitat.
- Les consultes en temps real i els canvis a nivell de fila no estan disponibles a Apache Hive.
- No hi ha suport per a les visions materialitzades.
- Al rusc, les accions d'actualització i supressió no són compatibles.
- No està pensat per a OLTP (procés de transició en línia).
Com començar amb Apache Hive
Apache Hive és un sòlid soci de Hadoop que simplifica i racionalitza els vostres fluxos de treball. Per treure el màxim profit d'Apache Hive, és essencial una integració perfecta. El primer pas és anar al .
1. Instal·lació Hive des d'una versió estable
Comenceu baixant la versió estable més recent de Hive des d'un dels miralls de descàrrega d'Apache (vegeu Alliberaments de Rusc). Aleshores, s'ha de desempaquetar el tarball. Això crearà una subcarpeta anomenada hive-xyz (on xyz és el número de llançament):
Estableix la variable d'entorn HIVE_HOME perquè apunti al directori d'instal·lació:
Finalment, afegiu $HIVE_HOME/bin al vostre PATH
:
2. Running Hive
Hive utilitza Hadoop, per tant:
- heu de tenir Hadoop al vostre camí O
3. Operació DLL
Creació de la taula Hive
genera una taula anomenada pokes amb dues columnes, la primera de les quals és un nombre enter i la segona és una cadena.
Navegació per taules
Llistat de totes les taules
Modificació i eliminació de taules
Els noms de les taules es poden canviar i les columnes es poden afegir o substituir:
Val la pena assenyalar que REPLACE COLUMNS substitueix totes les columnes existents mentre només canvia l'estructura de la taula i no les dades. S'ha d'utilitzar un SerDe natiu a la taula. REPLACE COLUMNS també es pot utilitzar per eliminar columnes de l'esquema d'una taula:
Deixar taules
Hi ha moltes operacions i funcions addicionals a Apache Hive que podeu conèixer si visiteu el lloc web oficial.
Conclusió
Hive Definició és una interfície de programa de dades per consultar i anàlisi de grans conjunts de dades que es construeixen a sobre d'Apache Hadoop. Els professionals el trien per sobre d'altres programes, eines i programari, ja que està dissenyat principalment per a dades extenses de Hive i és senzill d'utilitzar.
Espero que aquest tutorial us ajudi a començar amb Apache Hive i a fer que els vostres fluxos de treball siguin més eficients. Feu-nos-ho saber als comentaris.
Deixa un comentari