Configuración de Apache Knox

Apache Knox Gateway es un sistema que proporciona un único punto de acceso seguro a los servicios de Apache Hadoop. El sistema simplifica la seguridad de Hadoop, tanto para los usuarios (que acceden a los datos del clúster y ejecutan trabajos) como para los operadores (que controlan el acceso y gestionan el clúster). Apache Knox Gateway ejecuta un servidor (o clúster de servidores) que sirve a uno o más clústeres de Hadoop.

Nota: IBM® SPSS® Analytic Server no da soporte a Apache Knox cuando se utiliza junto con Kerberos Single-Sign-On (SSO).

Apache Knox oculta eficazmente los detalles de topología del clúster de Hadoop y se integra en el LDAP empresarial y Kerberos. Las secciones siguientes proporcionan información sobre las tareas de configuración necesarias de Apache Knox y Analytic Server .

Requisitos previos

  • Los nodos de Analytic Server deben conectarse con el servidor Knox con una conexión SSH sin contraseña. La conexión SSH sin contraseña se mueve de Analytic Server a Knox (Analytic Server > Knox).
  • Analytic Server debe estar instalado después de instalar el servicio Knox.
En algunos casos, algunos problemas imprevistos pueden dar lugar a que los archivos de configuración no se copien automáticamente. En estos casos, debe copiar manualmente los archivos de configuración siguientes:
  • com.ibm.spss.knox_0.6-3.4.0.0.jar: el archivo debe copiarse desde la ubicación de Analytic Server :

    <Analytic_Server_Installation_Path>/ae_wlpserver/usr/servers/aeserver/apps/AE_BOOT.war/WEB-INF/lib

    en el nodo del servidor Knox:

    /KnoxServicePath/ext

    Por ejemplo: /usr/iop/4.1.0.0/knox/ext

  • rewrite.xml y service.xml: los archivos se deben copiar desde la ubicación de Analytic Server :.

    <Analytic_Server_Installation_Path>/ae_wlpserver/usr/servers/aeserver/configuration/knox

    en el nodo del servidor Knox:

    /KnoxServicePath/data/services

    Por ejemplo: /usr/iop/4.1.0.0/knox/data/services

    Nota: Hay dos conjuntos de archivos rewrite.xml y service.xml (un conjunto para el tráfico de http://rest y un conjunto para el tráfico de ws://websocket ). Copie todos los archivos rewrite.xml y service.xml tanto para analyticserver como para analyticserver_ws en el nodo de servidor Knox.
  • log4j-api-2.17.1.jar y log4j-core-2.17.1.jar: los archivos se deben copiar desde la ubicación de Analytic Server :

    <Analytic_Server_Installation_Path>/ae_wlpserver/usr/servers/aeserver/apps/AE_BOOT.war/WEB-INF/lib

    en el nodo del servidor Knox:

    /KnoxServicePath/ext

    Por ejemplo: /usr/iop/4.1.0.0/knox/ext

Configuración de Ambari

El servicio Analytic Server debe estar configurado en la interfaz de usuario de Ambari :

  1. En la interfaz de usuario de Ambari , vaya a Knox > Configs > Topología avanzada. Los valores actuales de la configuración de Knox se muestran en la ventana content.
  2. Añada los dos servicios siguientes a la sección Topología avanzada en la configuración de Knox:
    <service> 
        <role>ANALYTICSERVER</role> 
        <url>http://{analyticserver-host}:{analyticserver-port}/analyticserver</url>
     </service>
    <service> 
        <role>ANALYTICSERVER_WS</role> 
        <url>ws://{analyticserver-host}:{analyticserver-port}/analyticserver</url>
     </service>
    
    {analyticserver-host} y {analyticserver-port} deben sustituirse por el nombre de servidor y número de puerto adecuados de Analytic Server :
    • El URL {analyticserver-host} se puede encontrar en la interfaz de usuario de Ambari (SPSS Analytic Server > Resumen > Analytic Server).
    • El número {analyticserver-port} se puede encontrar en la interfaz de usuario de Ambari (SPSS Analytic Server > Configs > Advanced analytics.cfg > http.port).
    Nota: Cuando Analytic Server se despliega en varios nodos y se utiliza LoadBalancer , {analyticserver-host} y {analyticserver-port} deben corresponder al URL y número de puerto de LoadBalancer .
  3. Reinicie el servicio Knox.

Cuando se utiliza LDAP, Knox toma el valor predeterminado de LDAP "Demo". Puede cambiarlo por un servidor LDAP empresarial (como Microsoft LDAP o OpenLDAP).

Configuración de Analytic Server

Para utilizar LDAP para Analytic Server, Analytic Server debe estar configurado para utilizar el mismo servidor LDAP que utiliza Apache Knox. Deben actualizarse las entradas <value> de los siguientes valores de Ambari para que reflejen los valores del servidor LDAP Knox correspondientes:
  • main.ldapRealm.userDnTemplate
  • main.ldapRealm.contextFactory.url
Los valores están disponibles en la interfaz de usuario de Ambari en: Knox > Configs > Topología avanzada. Por ejemplo:
<param>
   <name>main.ldapRealm.userDnTemplate</name>
   <value>uid={0},ou=people,dc=hadoop,dc=apache,dc=org</value>
</param>
<param>
   <name>main.ldapRealm.contextFactory.url</name>
   <value>ldap://{{knox_host_name}}:33389</value>
</param>

Reinicie el servicio Knox tras actualizar los valores LDAP de Knox.

Importante: La contraseña del administrador de Analytic Server debe ser la misma que la contraseña del administrador de Knox.

Configuración de Apache Knox

  1. Renueve el archivo gateway.jks de Knox:
    1. En el servidor de Knox, detenga el servicio de Knox.
    2. Suprima el archivo gateway.jks de /var/lib/knox/data-2.6.2.0-205/security/keystores.
    3. Reinicie el servicio Knox.
  2. En el servidor Knox, cree el subdirectorio <knox_server>/data/service/analyticserver/3.4.0.0y, a continuación, cargue los archivos service.xml y rewrite.xml en el nuevo directorio. Los dos archivos se encuentran en Analytic Server en <analytic_server>/configuration/knox/analyticserver/ (por ejemplo, /opt/ibm/spss/analyticserver/3.4/ae_wlpserver/usr/servers/aeserver/configuration/knox/analyticserver/*.xml)
  3. En <knox_server>/bin, ejecute el script ./knoxcli.sh redeploy --cluster default
  4. Cargue el archivo com.ibm.spss.knoxservice_0.6-*.jar en <knox_server>/ext. El archivo está en Analytic Server en <analytic_server>/apps/AE_BOOT.war/WEB-INF/lib/com.ibm.spss.knox_0.6-3.4.0.0.jar (por ejemplo,/opt/ibm/spss/analyticserver/3.4/ae_wlpserver/usr/servers/aeserver/apps/AE_BOOT.war/WEB-INF/lib/com.ibm.spss.knox_0.6-3.4.0.0.jar).
  5. En la interfaz de usuario de Ambari , añada el siguiente elemento en Knox > Configs > Topología avanzada:
    <service>
       <role>ANALYTICSERVER</role>
       <url>http://{analyticserver-host}:{analyticserver-port}/analyticserver</url>
       <role>ANALYTICSERVER_WS</role>
       <url>ws://{analyticserver-host}:{analyticserver-port}/analyticserver</url>
    </service>
    Nota: De forma predeterminada, la funcionalidad WebSocket está inhabilitada. Se puede habilitar cambiando la propiedad gateway.websocket.feature.enabled a true en el archivo /conf/gateway-site.xml.
  6. En la interfaz de usuario de Ambari , añada o actualice los usuarios en Knox > Configs > Advanced users-ldif (por ejemplo admin, qauser1, qauser2).
  7. Reinicie LDAP desde Knox > Acciones de servicio > Iniciar Demo LDAP.
  8. Reinicie el servicio Knox.

Estructura de URL para Apache Knox habilitado Analytic Server

El URL de la interfaz de usuario de Knox habilitado para Analytic Server es https://{knox-host}:{knox-port}/gateway/default/analyticserver/admin
  • protocolo https - los usuarios deben aceptar un certificado para continuar en el navegador web.
  • knox-host es el host de Knox.
  • knox-port es el número de puerto de Knox.
  • El URI es gateway/default/analyticserver.