Hive é unha ferramenta de análise de Big Data moi utilizada na empresa e é un lugar fantástico para comezar se es novo no Big Data. Esta lección de Apache Hive repasa os fundamentos de Apache Hive, por que é necesaria unha colmea, as súas características e todo o que debes saber.
En primeiro lugar, entendamos o marco Hadoop sobre o que está construído Apache Hive.
Apache Hadoop
Apache Hadoop é gratuíto e open-source plataforma para almacenar e procesar grandes conxuntos de datos que van desde os gigabytes ata os petabytes. Hadoop permite agrupar numerosos ordenadores para analizar enormes conxuntos de datos en paralelo, en lugar de requirir un único ordenador grande para almacenar e analizar os datos.
MapReduce e Hadoop Distributed File System son dous dos compoñentes:
- MapReduce – MapReduce é unha técnica de programación paralela para manexar grandes volumes de datos organizados, semiestruturados e non estruturados en clusters de hardware de mercadorías.
- HDFS – HDFS (Sistema de ficheiros distribuídos de Hadoop) é un compoñente de marco de Hadoop que almacena e procesa datos. É un sistema de ficheiros tolerante a fallos que funciona con hardware estándar
Utilízanse diferentes subproxectos (ferramentas) no ecosistema de Hadoop, incluíndo Sqoop, Pig e Hive, para axudar aos módulos de Hadoop.
- Colmea – Hive é un marco para escribir scripts de estilo SQL que realizan cálculos MapReduce.
- Porco – Pig é unha linguaxe de programación procedimental que se pode usar para crear un script para procesos MapReduce.
- Sqoop – Sqoop é unha ferramenta para importar e exportar datos entre HDFS e RDBMS.
O que é Colmena Apache?
Apache Hive é un código aberto data warehouse programa para ler, escribir e xestionar enormes conxuntos de datos almacenados directamente no Apache Hadoop Distributed File System (HDFS) ou noutros sistemas de almacenamento de datos como Apache HBase.
Os desenvolvedores de SQL poden usar Hive para crear instrucións Hive Query Language (HQL) para a consulta e análise de datos que sexan comparables ás instrucións SQL habituais. Foi creado para facilitar a programación de MapReduce eliminando a necesidade de aprender e escribir código Java longo. Pola contra, pode escribir as súas consultas en HQL e Hive creará o mapa e reducirá as funcións por vostede.
A interface tipo SQL de Apache Hive converteuse no Gold Standard para realizar buscas ad hoc, resumir e analizar datos de Hadoop. Cando se inclúe na nube redes informáticas, esta solución é especialmente rendible e escalable, polo que moitas empresas, incluíndo Netflix e Amazon, seguen desenvolvendo e mellorando Apache Hive.
historia
Durante o seu tempo en Facebook, Joydeep Sen Sarma e Ashish Thusoo co-crearon Apache Hive. Ambos recoñeceron que para sacar o máximo proveito de Hadoop, terían que crear algunhas tarefas Java Map-Reduce bastante complicadas. Recoñeceron que non serían capaces de educar aos seus equipos de enxeñería e análise en rápida expansión sobre as habilidades que necesitarían para aproveitar Hadoop en toda a empresa. Os enxeñeiros e analistas utilizaron frecuentemente SQL como interface de usuario.
Aínda que SQL podería satisfacer a maioría das necesidades de análise, os desenvolvedores tamén pretendían incorporar a programabilidade de Hadoop. Apache Hive xurdiu destes dous obxectivos: unha linguaxe declarativa baseada en SQL que tamén permitiu aos desenvolvedores incorporar os seus propios scripts e programas cando SQL non era suficiente.
Tamén se desenvolveu para albergar metadatos centralizados (baseados en Hadoop) sobre todos os conxuntos de datos da empresa para facilitar a construción de organizacións baseadas en datos.
Como funciona Apache Hive?
En poucas palabras, Apache Hive converte un programa de entrada escrito na linguaxe HiveQL (similar a SQL) nunha ou máis tarefas Java MapReduce, Tez ou Spark. (Todos estes motores de execución son compatibles con Hadoop YARN.) Despois diso, Apache Hive organiza os datos en táboas para o Hadoop Distributed File System HDFS) e realiza as tarefas nun clúster para obter unha resposta.
Data
As táboas de Apache Hive organízanse do mesmo xeito que se organizan as táboas dunha base de datos relacional, con unidades de datos que varían en tamaño de maior a menor. As bases de datos están formadas por táboas que se dividen en divisións, que ademais se dividen en depósitos. HiveQL (Hive Query Language) úsase para acceder aos datos, que se poden modificar ou engadir. Os datos da táboa serialízanse dentro de cada base de datos e cada táboa ten o seu propio directorio HDFS.
arquitectura
Agora falaremos do aspecto máis importante da Arquitectura Hive. Os compoñentes de Apache Hive son os seguintes:
Metastore — Fai un seguimento da información sobre cada táboa, como a súa estrutura e localización. Os metadatos da partición tamén se inclúen en Hive. Isto permite ao condutor realizar un seguimento do progreso dos distintos conxuntos de datos repartidos polo clúster. Os datos gárdanse nun formato RDBMS convencional. Os metadatos da colmea son moi importantes para que o condutor manteña un seguimento dos datos. O servidor de copia de seguridade duplica os datos de forma regular para que poidan ser recuperados en caso de perda de datos.
Chofer – As instrucións HiveQL son recibidas por un controlador, que funciona como controlador. Ao establecer sesións, o condutor inicia a execución da declaración. Fai un seguimento da vida útil e do progreso do executivo. Durante a execución dunha instrución HiveQL, o controlador garda os metadatos necesarios. Tamén serve como punto de recollida de datos ou resultados de consulta despois do proceso Reducir.
Compilador – Executa a compilación de consultas HiveQL. Agora a consulta convértese nun plan de execución. As tarefas están listadas no plan. Tamén inclúe os pasos que MapReduce debe seguir para obter o resultado traducido pola consulta. O compilador de Hive (AST) converte a consulta nunha árbore de sintaxe abstracta. Converte o AST nun gráfico acíclico dirixido despois de comprobar a compatibilidade e os fallos de compilación (DAG).
Optimizador – Optimiza o DAG realizando diferentes cambios no plan de execución. Combina transformacións para mellorar a eficiencia, como converter unha canalización de unións nunha única unión. Para mellorar a velocidade, o optimizador pode dividir actividades, como aplicar unha transformación aos datos antes de realizar unha operación de redución.
aforcado – O executor executa as tarefas cando remate a compilación e a optimización. Os traballos son canalizados polo Executor.
CLI, UI e Thrift Server – A interface de liña de comandos (CLI) é unha interface de usuario que permite a un usuario externo comunicarse con Hive. O servidor thrift de Hive, similar aos protocolos JDBC ou ODBC, permite que clientes externos se comuniquen con Hive a través dunha rede.
seguridade
Apache Hive está integrado coa seguridade de Hadoop, que usa Kerberos para a autenticación mutua cliente-servidor. O HDFS dita permisos para os ficheiros recentemente xerados en Apache Hive, o que lle permite aprobar o usuario, o grupo e outros.
As características clave
- Hive admite táboas externas, que che permiten procesar datos sen almacenalos en HDFS.
- Tamén permite a segmentación de datos a nivel de táboa para aumentar a velocidade.
- Apache Hive satisface excelentemente a necesidade de interface de baixo nivel de Hadoop.
- Hive facilita o resumo, a consulta e a análise de datos.
- HiveQL non require habilidades de programación; unha simple comprensión das consultas SQL é suficiente.
- Tamén podemos usar Hive para realizar consultas ad hoc para a análise de datos.
- É escalable, familiar e adaptable.
- HiveQL non require habilidades de programación; unha simple comprensión das consultas SQL é suficiente.
Beneficios
Apache Hive permite informes de fin de día, avaliacións diarias de transaccións, procuras ad hoc e análise de datos. Os coñecementos completos proporcionados por Apache Hive ofrecen vantaxes competitivas significativas e facilitan a resposta ás demandas do mercado.
Estes son algúns dos beneficios de ter esta información dispoñible:
- Facilidade de uso – Coa súa linguaxe similar a SQL, a consulta de datos é sinxela de entender.
- Inserción de datos acelerada — Dado que Apache Hive le o esquema sen verificar o tipo de táboa ou a definición do esquema, os datos non teñen que ser lidos, analizados e serializados no disco no formato interno da base de datos. En cambio, nunha base de datos convencional, os datos deben ser validados cada vez que se engaden.
- Superior escalabilidade, flexibilidade e rendibilidade - Debido a que os datos se almacenan no HDFS, Apache Hive pode albergar 100 petabytes de datos, polo que é unha opción moito máis escalable que unha base de datos típica. Apache Hive, como servizo de Hadoop baseado na nube, permite aos clientes subir e baixar rapidamente os servidores virtuais para facer fronte ás cargas de traballo cambiantes.
- Ampla capacidade de traballo – Os grandes conxuntos de datos poden xestionar ata 100,000 consultas por hora.
Limitacións
- En xeral, as consultas de Apache Hive teñen unha latencia moi alta.
- O soporte de subconsultas é limitado.
- As consultas en tempo real e os cambios de nivel de fila non están dispoñibles en Apache Hive.
- Non hai soporte para as vistas materializadas.
- Na colmea, as accións de actualización e eliminación non son compatibles.
- Non destinado a OLTP (proceso de transición en liña).
Comezando con Apache Hive
Apache Hive é un forte socio de Hadoop que simplifica e axiliza os teus fluxos de traballo. Para sacar o máximo proveito de Apache Hive, a integración perfecta é esencial. O primeiro paso é ir ao .
1. Instalación Hive desde unha versión estable
Comeza descargando a versión estable máis recente de Hive desde un dos espellos de descarga de Apache (ver Lanzamentos Hive). Despois hai que desempaquetar o tarball. Isto creará un subcartafol chamado hive-xyz (onde xyz é o número de versión):
Establece a variable de ambiente HIVE_HOME para que apunte ao directorio de instalación:
Finalmente, engade $HIVE_HOME/bin ao teu PATH
:
2. Running Hive
Hive usa Hadoop, polo que:
- debes ter Hadoop no teu camiño OU
3. Operación DLL
Creación da táboa Hive
xera unha táboa chamada pokes con dúas columnas, a primeira delas é un número enteiro e a segunda unha cadea.
Navegación polas táboas
Lista de todas as táboas
Modificación e eliminación de táboas
Os nomes das táboas pódense cambiar e as columnas pódense engadir ou substituír:
Paga a pena notar que REPLACE COLUMNS substitúe todas as columnas existentes mentres só cambia a estrutura da táboa e non os datos. Debe utilizarse un SerDe nativo na táboa. REPLACE COLUMNS tamén se pode usar para eliminar columnas do esquema dunha táboa:
Caída de táboas
Hai moitas operacións e funcións adicionais en Apache Hive que podes coñecer visitando o sitio web oficial.
Conclusión
A definición de Hive é unha interface de programa de datos para realizar consultas e análises de grandes conxuntos de datos construídos sobre Apache Hadoop. Os profesionais escólleno sobre outros programas, ferramentas e software xa que está deseñado principalmente para datos extensos de Hive e é sinxelo de usar.
Espero que este tutorial che axude a iniciar con Apache Hive e a que os teus fluxos de traballo sexan máis eficientes. Avísanos nos comentarios.
Deixe unha resposta