Database

Conectar SAS Viya a Cloudera Impala a través de ODBC

Simon 26/05/2022 3 Aufrufe

La integración de datos de diversas fuentes es un paso crucial en los entornos analíticos modernos. Las tablas de Cloudera Impala se pueden utilizar como fuente de datos para cargar información en los Cloud Analytic Services (CAS) de SAS© Viya.

A diferencia del conector Hadoop que utiliza archivos JAR, el SAS© Data Connector to Impala (incluido en la interfaz SAS©/ACCESS® to Impala en SAS© Viya) funciona a través de un controlador ODBC.

Este artículo detalla los pasos técnicos necesarios para instalar, configurar y validar la conexión entre SAS© Viya y Cloudera Impala utilizando el gestor de controladores UnixODBC.

Illustration

Requisitos Previos y Arquitectura

Para establecer esta conexión, el controlador del servidor CAS (entorno UNIX/Linux) debe tener una configuración ODBC válida que utilice el controlador ODBC de Impala junto con el gestor UnixODBC.

Paso 1: Descarga de los componentes

Se necesitan dos componentes principales:

  1. UnixODBC Driver Manager: Software de código abierto disponible en su sitio web oficial. Consulte la guía de instalación del controlador ODBC de Cloudera para verificar la versión compatible.

  2. Controlador ODBC de Cloudera Impala: Para descargar desde el sitio web de Cloudera.

Nota: Si su entorno ya tiene un gestor ODBC, puede utilizarlo y simplemente añadir la configuración de Impala a los archivos existentes.

Paso 2: Instalación del gestor UnixODBC

En el controlador del servidor CAS, inicie sesión como usuario root para extraer y compilar el software. En este ejemplo, la instalación se realiza en el directorio /opt.

Terminal (Bash)
user@sas:~$ $ gunzip unixODBC-2.3.4.tar.gz
user@sas:~$ $ tar -xvf unixODBC-2.3.4.tar

A continuación, configure y compile UnixODBC:

Terminal (Bash)
user@sas:~$ $ cd /opt/unixODBC-2.3.4
user@sas:~$ $ ./configure --prefix=/opt/unixODBC-2.3.4 --disable-gui --disable-drivers
user@sas:~$ $ make

Paso 3: Instalación del controlador ODBC de Impala

Instale el controlador RPM mediante un comando YUM. Por defecto, la instalación se realiza en /opt/cloudera/impalaodbc.

Terminal (Bash)
user@sas:~$ $ cd /opt
user@sas:~$ $ yum --nogpgcheck localinstall ClouderaImpalaODBC-2.5.35.1006-1.el7.x86

Paso 4: Configuración del enlace entre Impala y UnixODBC

Una vez instalados ambos componentes, es necesario reconfigurar el controlador UnixODBC para incluir Impala ODBC en su ruta de búsqueda (search path).

Terminal (Bash)
user@sas:~$ $ cd /opt/unixODBC-2.3.4
user@sas:~$ $ export LD_LIBRARY_PATH=/opt/unixODBC-2.3.4/lib
user@sas:~$ $ ./configure --prefix=/opt/cloudera/impalaodbc --with-unixodbc=/opt/unixODBC-2.3.4
user@sas:~$ $ make
user@sas:~$ $ make install

Paso 5: Actualización de los archivos odbc.ini y odbcinst.ini

El controlador de Cloudera proporciona archivos de ejemplo .ini ubicados en /opt/cloudera/impalaodbc/Setup/. Puede modificar estos archivos directamente o copiarlos a otra ubicación.

El elemento crítico es la actualización del archivo odbc.ini con la información de su clúster Hadoop (nombre de host y puerto del demonio de Impala).

Ejemplo de configuración para un clúster donde el demonio se ejecuta en el puerto estándar 21050:


/opt/cloudera/impalaodbc/Setup/ RO
# Valeurs pour HOST, PORT, KrbFQDN, et KrbServiceName
HOST=sascdh01.race.sas.com
PORT=21050
Database=default
~
~

Paso 6: Configuración de las variables de entorno de SAS© Viya

Existen dos métodos para declarar las rutas ODBC a SAS© Viya, dependiendo de si realiza esta configuración antes o después de la instalación de Viya.

Caso A: Antes de la instalación (Archivo vars.yml) Agregue las siguientes líneas en la sección CAS_SETTINGS del archivo vars.yml:

vars.yml
ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64

Caso B: Después de la instalación (Archivo cas.settings) Si SAS© Viya ya está instalado, edite manualmente el archivo ~/sas©/viya/home/SASFoundation/cas.settings en el controlador CAS:

~/sas/viya/home/SASFoundation/cas.settings RO
export ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ;
export ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini;
export CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64
export ODBCSYSINI=/opt/cloudera/impalaodbc/Setup/
~
~
Nota: La variable ODBCSYSINI apunta a la carpeta que contiene odbcinst.ini.

Caso B: Después de la instalación (Archivo cas.settings) Si SAS© Viya ya está instalado, edite manualmente el archivo ~/sas©/viya/home/SASFoundation/cas.settings en el controlador CAS:

~/sas/viya/home/SASFoundation/cas.settings RO
export ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ;
export ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini;
export CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64
export ODBCSYSINI=/opt/cloudera/impalaodbc/Setup/
~
~
Nota: La variable ODBCSYSINI apunta a la carpeta que contiene odbcinst.ini.

Validación de la conexión

Para validar la configuración, ejecute un programa SAS© desde SAS© Studio. El objetivo es crear una CASLIB de tipo "impala" y cargar una tabla.

1cas mySession sessopts=(messagelevel=all);
2 
3caslib implib datasource=(srctype="impala",
4 username="hadoop",
5 server="sascdh01.race.sas.com",
6 database="default");
7 
8PROC CASUTIL;
9 load casdata="s_heart" incaslib="implib" outcaslib="implib" casout="s_heart" replace;
10 list tables incaslib="implib";
11QUIT;
12 
13cas mySession terminate;

Verificación en el registro (Log): El registro debe indicar el uso del conector de datos: NOTE: Performing serial LoadTable action using SAS© Data Connector to Impala.

Si aparece este mensaje y la tabla se carga correctamente, su conexión entre SAS© Viya y Cloudera Impala está operativa.