Uso de Apache Hive
Apache Hive es un sistema de almacén de datos creado sobre Apache Hadoop y facilita la lectura, escritura y gestión de grandes conjuntos de datos que residen en almacenamiento distribuido mediante SQL.
Propiedades de configuración de Hive
Propiedades de configuración de Hive incluidas en Big Data Service 3.1.1 o posterior.
Configuración | Propiedad | Descripción |
---|---|---|
hive-env |
hive_metastore_hadoop_opts |
Opciones de Hadoop para Hive Metastore |
hive_metastore_remotejmx_hadoop_opts |
Opciones de Hadoop para Hive Metastore si JXM remoto está activado | |
hive_server_hadoop_opts |
Opciones de Hadoop para Hive Server | |
hive_server_remotejmx_hadoop_opts |
Opciones de Hadoop para el servidor de Hive si JXM remoto está activado | |
hive_secure_hadoop_opts |
Opciones de Hadoop si la seguridad está activada | |
hive_classpath_ext |
Rutas que contienen bibliotecas de Hadoop para Hive | |
hive-interactive-env |
hive_interactive_hadoop_opts |
Opciones de Hadoop para Hive Interactive |
hive_interactive_secure_hadoop_opts |
Opciones de Hadoop para Hive Interactive si la seguridad está activada |
Ajuste del Rendimiento
Esta es una directriz general al ejecutar consultas en conjuntos de datos más pequeños. La función FetchTask proporciona las siguientes ventajas en el escenario o casos de uso mencionados.
Al trabajar con conjuntos de datos más pequeños, se beneficia de la función FetchTask en escenarios o casos de uso específicos al ejecutar consultas. La función se puede controlar mediante el parámetro "hive.fetch.task.conversion
", que se define en "more
" por defecto. FetchTask es una tarea eficaz que accede directamente al archivo para proporcionar resultados, sin iniciar un trabajo MapReduce para la consulta entrante. La función se aplica al seleccionar columnas específicas con un límite, sujeto a requisitos adicionales como un único origen de datos (una tabla o partición), ninguna subconsulta, ninguna agregación o distinta y no se aplica a vistas o uniones. Por lo tanto, se aprovechan las consultas en ejecución como "select col1 as alias1, col2 from table where partitionkey='somePartitionValue'", "select id from t limit 1;", or "select col1 as alias1, col2 from table where partitionkey='somePartitionValue'"
, FetchTask. Sin embargo, si define "hive.fetch.task.conversion
" en minimal, FetchTask se aplicará al ejecutar "select *
" con un límite.
Al tratar con juegos de datos más grandes y activar FetchTask, ajuste el tamaño de pila del servidor y del cliente en función del tamaño del juego de datos al disparar consultas seleccionadas de herramientas de BI, Beeline, Hue, etc. Como alternativa, para eliminar los cuellos de botella de memoria de HiveServer, defina "hive.fetch.task.conversion
" en None para desactivar la función FetchTask y ejecutar trabajos MapReduce.
Fallo de consulta de supresión de tabla de Hive
La consulta de supresión de tabla de Hive falla con el error DELETE from table1
.
DELETE from table1;
FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does not support these operations.
El soporte de supresión no está disponible para tablas no transaccionales o no ácidas en Hive. Para suprimir una tabla, debe crear una tabla transaccional.
Por ejemplo:
CREATE TABLE emp12(id int,age int)TBLPROPERTIES ('transactional'='true');