Configuración de Object Storage con Hive
En Hive, la conectividad de Object Storage se utiliza para realizar consultas en la base de datos alojada en Object Storage mediante beeline.
Nota
Puede utilizar nodos de cluster de Big Data Service para la configuración del servicio y ejemplos en ejecución. Para utilizar un nodo de límite, debe crear el nodo de límite y conectarse a él.
Puede utilizar nodos de cluster de Big Data Service para la configuración del servicio y ejemplos en ejecución. Para utilizar un nodo de límite, debe crear el nodo de límite y conectarse a él.
- (Opcional) Para utilizar un nodo de perímetro para configurar Object Storage, cree primero un nodo de perímetro y, a continuación, conéctese al nodo. A continuación, copie la clave de API del nodo un0 en el nodo de perímetro.
sudo dcli rsync -a <un0-hostname>:/opt/oracle/bds/.oci_oos/ -
Cree un usuario con permisos suficientes y un archivo JCEKS con el valor de frase de contraseña necesario. Si va a crear un archivo JCEKS local, copie el archivo en todos los nodos y cambie los permisos de usuario.
sudo dcli -f <location_of_jceks_file> -d <location_of_jceks_file> sudo dcli chown <user>:<group> <location_of_jceks_file> -
Agregue una de las siguientes combinaciones
HADOOP_OPTSal perfil bash de usuario.Opción 1:export HADOOP_OPTS="$HADOOP_OPTS -DOCI_SECRET_API_KEY_ALIAS=api_key_alias> -DBDS_OSS_CLIENT_REGION=<api_key_region> -DOCI_SECRET_API_KEY_PASSPHRASE=<jceks_file_provider>"Opción 2:
export HADOOP_OPTS="$HADOOP_OPTS -DBDS_OSS_CLIENT_AUTH_FINGERPRINT=<api_key_fingerprint> -DBDS_OSS_CLIENT_AUTH_PASSPHRASE=<jceks_file_provider> -DBDS_OSS_CLIENT_AUTH_PEMFILEPATH=<api_key_pem_file_path> -DBDS_OSS_CLIENT_AUTH_TENANTID=<api_key_tenant_id> -DBDS_OSS_CLIENT_AUTH_USERID=<api_key_user_> -DBDS_OSS_CLIENT_REGION=<api_key_region>" -
Para los clusters creados antes de Big Data Service 3.0.21, agregue la siguiente clave y valor a la configuración personalizada del sitio de colmena. Después de Big Data Service 3.0.21, la propiedad ya está definida.
- Acceda a Apache Ambari.
- En la barra de herramientas lateral, en Servicios, seleccione Hive.
- Seleccione Configs (Configuración).
- Seleccione Avanzado.
- Seleccione Custom hive-site y, a continuación, seleccione Add Property.
-
Introduzca:
- Clave: hive.security.authorization.sqlstd.confwhitelist.append
- Valor:
OCI_SECRET_API_KEY_ALIAS|OCI_SECRET_API_KEY_PASSPHRASE|BDS_OSS_CLIENT_AUTH_PEMFILEPATH|BDS_OSS_CLIENT_REGION| BDS_OSS_CLIENT_AUTH_TENANTID|BDS_OSS_CLIENT_AUTH_USERID|BDS_OSS_CLIENT_AUTH_FINGERPRINT|BDS_OSS_CLIENT_AUTH_PASSPHRASE
-
Agregue las opciones de Hadoop a la plantilla hive-env para el acceso a Object Storage.
- Permanece en Ambari en el separador Avanzado de Hive. Consulte el paso anterior para acceder.
- En la sección Rendimiento, vaya a Advanced hive-env.
-
Vaya a hive-env template y agregue una de las siguientes opciones en la línea
if [ "$SERVICE" = "metastore" ]; then.Opción 1:
export HADOOP_OPTS="$HADOOP_OPTS -DOCI_SECRET_API_KEY_ALIAS=<api_key_alias> -DBDS_OSS_CLIENT_REGION=<api_key_region> -DOCI_SECRET_API_KEY_PASSPHRASE=<jceks_file_provider>"Opción 2:
export HADOOP_OPTS="$HADOOP_OPTS -DBDS_OSS_CLIENT_AUTH_FINGERPRINT= <api_key_fingerprint> -DBDS_OSS_CLIENT_AUTH_PASSPHRASE=<jceks_file_provider> -DBDS_OSS_CLIENT_AUTH_PEMFILEPATH=<api_key_pem_file_path> -DBDS_OSS_CLIENT_AUTH_TENANTID=<api_key_tenant_id> -DBDS_OSS_CLIENT_AUTH_USERID=<api_key_user_id> -DBDS_OSS_CLIENT_REGION=<api_key_region>"
- Reinicie todos los servicios necesarios a través de Ambari.
-
Ejecute el siguiente comando de ejemplo para iniciar el shell beeline:
Ejemplo1:
beeline -hiveconf OCI_SECRET_API_KEY_ALIAS=<api_key_alias> -hiveconf OCI_SECRET_API_KEY_PASSPHRASE=<api_key_passphrase> -hiveconf BDS_OSS_CLIENT_REGION=<api_key_region>Ejemplo2:
beeline -hiveconf BDS_OSS_CLIENT_AUTH_PEMFILEPATH=<api_key_pem_file_path> -hiveconf BDS_OSS_CLIENT_AUTH_FINGERPRINT=<api_key_fingerprint> -hiveconf BDS_OSS_CLIENT_REGION=<api_key_region -hiveconf BDS_OSS_CLIENT_AUTH_TENANTID=<api_key_tenant_id -hiveconf BDS_OSS_CLIENT_AUTH_USERID=<api_key_user_id -hiveconf BDS_OSS_CLIENT_AUTH_PASSPHRASE=<api_key_passphrase> - (Opcional) También puede configurar los parámetros en la línea de base. Utilice el comando
beelinepara iniciar el shell de línea de base y, a continuación, ejecute lo siguiente:set BDS_OSS_CLIENT_REGION=<api_key_region>; set BDS_OSS_CLIENT_AUTH_PEMFILEPATH=<api_key_pem_file_path>; set BDS_OSS_CLIENT_AUTH_FINGERPRINT=<api_key_fingerprint>; set BDS_OSS_CLIENT_AUTH_TENANTID=<api_key_tenant_id>; set BDS_OSS_CLIENT_AUTH_USERID=<api_key_user_id>; set BDS_OSS_CLIENT_AUTH_PASSPHRASE=<api_key_passphrase>; -
Verifique la conectividad de Object Storage:
Ejemplo para tabla gestionada:
CREATE DATABASE IF NOT EXISTS <database_name> LOCATION 'oci://<bucket-name>@<namespace>/'; USE <database_name>; CREATE TABLE IF NOT EXISTS <table_name> (id int, name string) partitioned by (part int, part2 int) STORED AS parquet; INSERT INTO <table_name> partition(part=1, part2=1) values (111, 'Object Storage Testing with Hive Beeline Managed Table'); SELECT * from <table_name>;Ejemplo para tabla externa:
CREATE DATABASE IF NOT EXISTS <database_name> LOCATION 'oci://<bucket-name>@<namespace>/'; USE <database_name>; CREATE EXTERNAL TABLE IF NOT EXISTS <table_name> (id int, name string) partitioned by (part int, part2 int) STORED AS parquet LOCATION 'oci://<bucket-name>@<namespace>/'; INSERT INTO <table_name> partition(part=1, part2=1) values (222, 'Object Storage Testing with Hive Beeline External Table'); SELECT * from <table_name>;