Dialectos que usan estas instrucciones
Cloudera Impala comparte los requisitos de configuración de la base de datos que se describen en esta página.
Configura Looker para conectarse a Cloudera Impala
Looker se conecta a cualquier base de datos a través de una conexión de JDBC. De forma predeterminada, en Cloudera Impala, este es el servidor que ejecuta el daemon impalad
en el puerto 21050.
En la sección Administrador de Looker, seleccione Conexiones y, luego, haga clic en Agregar conexión.
La configuración de conexión de Looker depende de la seguridad que se use:
- Un clúster que no usa Kerberos ni la autenticación de usuarios
- Un clúster que requiere autenticación LDAP
- Un clúster protegido con Kerberos, pero sin Apache Sentry
- Un clúster protegido con la autenticación de certificados SSL
Conéctate a un clúster sin Kerberos ni autenticación de usuario
Para configurar una conexión que no usa Kerberos o la autenticación de usuario:
- En la página Configuración de conexión, deja en blanco los campos Nombre de usuario y Contraseña. (La
*
junto a los nombres de los campos implica que estos campos son obligatorios, pero no es obligatorio). - En el campo Parámetros adicionales, ingresa
;auth=noSasl
.
Verifica la string de conexión
Para verificar la string de conexión de JDBC en los archivos de registro, en el panel Administrador de Looker, haga clic en Registro en el menú de la izquierda. Luego, filtra el registro de un término como jdbc
o noSasl
:
Si deseas obtener más información sobre cómo configurar Cloudera Impala para que funcione con JDBC, consulta la documentación de Cloudera.
Conéctate a un clúster que requiere autenticación LDAP
Para un clúster que requiere autenticación LDAP, incluido un clúster con Apache Sentry y Kerberos, en la página Configuración de conexión, ingrese un Nombre de usuario y una Contraseña con acceso a los esquemas a los que accederá Looker.
Conectarse a un clúster protegido con Kerberos, pero sin usar Apache Sentry
Es posible que el equipo de analistas de Looker deba ayudar a configurar esto correctamente.
Por lo general, la autenticación de Kerberos con entornos de Cloudera se controla a través de Apache Sentry. Consulta la documentación de Cloudera para obtener más detalles.
Si deseas configurar Looker para que se conecte directamente a Cloudera Impala mediante la autenticación Kerberos, sigue los pasos que se indican en esta página.
Cómo configurar el cliente de Kerberos
Lo primero que debes hacer es garantizar la instalación de varios tipos de software y la presencia de varios archivos en la máquina de Looker.
Cliente de Kerberos
Verifica que el cliente de Kerberos esté instalado en la máquina de Looker. Para ello, intenta ejecutar kinit
. De lo contrario, instala los objetos binarios del cliente de Kerberos.
Por ejemplo, en Red Hat/CentOS, el comando sería el siguiente:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 debe instalarse en la máquina de Looker y en PATH
y JAVA_HOME
del usuario de Looker. Si es necesario, instálalo localmente en el directorio looker
.
Extensión de criptografía de Java
Descarga y, luego, instala Java Cryptography Extension (JCE) para Java 8 desde el sitio web de Oracle.
- Ubica el directorio
jre/lib/security
para la instalación de Java. - Quita los siguientes archivos JAR de este directorio:
local_policy.jar
yUS_export_policy.jar
. - Reemplaza estos dos archivos por los archivos JAR incluidos en la descarga de los archivos de la Política de jurisdicción ilimitada de JCE.
Es posible usar versiones de Java anteriores a Java 8 con JCE instalado, pero no se recomienda hacerlo.
- Ubica el directorio
Actualiza
JAVA_HOME
yPATH
en~looker/.bash_profile
para que apunten a la instalación correcta de Java ysource ~/.bash_profile
, o sal de la cuenta y vuelve a acceder.Verifica la versión de Java con
java -version
.Verifica la variable de entorno
JAVA_HOME
conecho $JAVA_HOME
.
gss-jaas.conf
Crea un archivo gss-jaas.conf
en el directorio looker
con el siguiente contenido:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Si es necesario para las pruebas, se puede agregar debug=true
a este archivo de la siguiente manera:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
El servidor que ejecuta Looker también debe tener un archivo krb5.conf
válido. De forma predeterminada, este archivo está en /etc/krb5.conf
. Si se encuentra en otra ubicación, se debe indicar en el entorno (KRB5_CONFIG
en el entorno de shell).
Es posible que deba copiar esta información de otra máquina cliente de Kerberos.
lookerstart.cfg
Apunta a los archivos gss-jaas.conf
y krb5.conf
. Para ello, crea un archivo en el directorio looker
(el mismo directorio que contiene la secuencia de comandos de inicio looker
), llamado lookerstart.cfg
, que contiene las siguientes líneas:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Si el archivo krb5.conf
no está en /etc/krb5.conf
, también será necesario agregar esta variable:
-Djava.security.krb5.conf=/path/to/krb5.conf
Para la depuración, agrega estas variables:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Luego, reinicia Looker con ./looker restart
.
Autentica con Kerberos
Autenticación de usuarios
Si
krb5.conf
no está en/etc/
, usa la variable de entornoKRB5_CONFIG
para indicar su ubicación.Ejecuta el comando
klist
para asegurarte de que haya un ticket válido en la caché de tickets de Kerberos.Si no hay ningún ticket, ejecuta
kinit username@REALM
okinit username
para crearlo.Es probable que la cuenta que se usa con Looker no tenga interfaz gráfica, por lo que puedes obtener un archivo keytab de Kerberos para almacenar la credencial a largo plazo. Usa un comando como
kinit -k -t looker_user.keytab username@REALM
para obtener el ticket de Kerberos.
Renovación automática del ticket
Configura un trabajo cron que se ejecute de vez en cuando para mantener un ticket activo en la caché de tickets de Kerberos. La frecuencia con la que esto debería ejecutarse depende de la configuración del clúster. klist
debería indicar qué tan pronto vencen las entradas.
Configura la conexión de Looker
En la sección Administrador de Looker, seleccione Conexiones y, luego, haga clic en Agregar conexión.
Completa los detalles de la conexión de la siguiente manera (consulta la página de documentación Conecta Looker a tu base de datos para obtener más información):
- Nombre: El nombre de la conexión. Esta es la forma en que se hará referencia a la conexión en el modelo de LookML.
- Dialect: Cloudera Impala o Cloudera Impala 3.1+
- Host: Nombre de host.
- Puerto: Es el puerto de la base de datos (21050 de forma predeterminada).
- Base de datos: el esquema o la base de datos predeterminados que se modelarán. Cuando no se especifica una base de datos para una tabla, se supondrá.
- Nombre de usuario: Deja este campo en blanco.
- Contraseña: Deja esto en blanco.
- Persistent Derived Tables (Tablas persistentes derivadas): Marca si deseas usar Tablas derivadas persistentes (Persistent Derived Tables).
- Base de datos temporal: Es un esquema o una base de datos temporales para almacenar PDT. Se debe crear de antemano.
- Parámetros adicionales: Parámetros adicionales para la string de JDBC.
Indica la principal de Kerberos aquí; por ejemplo,
;principal=impala/impala.company.com@REALM
. Los principales de tres partes son estándar. Por lo general, el primero (impala
) es el nombre del servicio y el último (REALM
) es el dominio. - SSL: marca esta opción para usar conexiones SSL.
Si tu certificado SSL no es emitido por una autoridad certificada ampliamente reconocida y usas un certificado personalizado, deberás hacer lo siguiente:
- Copia el archivo del certificado en el servidor de Looker. Esta opción solo está disponible para las implementaciones de Looker alojadas por el cliente.
- Agrega los siguientes parámetros al campo Parámetros adicionales que se mencionó antes:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Consulta la documentación de Cloudera a fin de obtener más detalles sobre cómo formar las strings de JDBC correctas para las bases de datos de Impala.
- Zona horaria de la base de datos: la zona horaria de los datos almacenados en tu base de datos Por lo general, se puede dejar en blanco o se configura en UTC.
Se recomienda que el nombre del servidor (en este ejemplo, impala.company.com
) sea el nombre canónico del servidor y que la búsqueda de DNS inversa de la dirección IP aparezca en ese nombre. Sin embargo, el nombre del servidor debe ser el que se indica en el controlador de dominio de Kerberos:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
A veces, el nombre del servidor está configurado como el nombre de host y no como el nombre de dominio completo. En este caso, es posible que sea necesario modificar los archivos /etc/hosts
y /etc/nsswitch.conf
para asegurarte de que las búsquedas inversas se resuelvan según lo previsto.
Prueba la conexión para asegurarte de que esté configurada correctamente.
Depuración
- Documentación de Cloudera sobre la depuración de problemas de autenticación de Impala.
- Cuando agregues la depuración a la configuración, la información de depuración adicional se terminará en
looker/logs/looker.log
.
Recursos
- Habilita la autenticación de Kerberos para Impala (documentación de Cloudera)
- página de kinit man
- página del manual de Klist
- Documentación de gss-jaas.conf
- Documentación de Krb5LoginModule
Notas
El usuario que se conecta al esquema de scratch para PDT debe tener permisos de lectura y escritura.
Reference
Para obtener más información, consulta la sección Configura Impala para que funcione con JDBC en la documentación de Cloudera.
Compatibilidad de características
Para que Looker admita algunas funciones, el dialecto de la base de datos también debe admitirlas.
En la versión más reciente de Looker, Cloudera Impala admite las siguientes funciones de Looker:
En la versión más reciente de Looker, Cloudera Impala 3.1+ es compatible con las siguientes funciones de Looker:
Próximos pasos
Después de conectar tu base de datos a Looker, configura las opciones de acceso para tus usuarios.