Aggiunta di rappresentazione Trino a un cluster

È possibile configurare un cluster Hadoop per consentire all'utente o all'entità principale in esecuzione di Trino di rappresentare gli utenti che si collegano a Trino.

Quando si utilizza l'autenticazione del metastore Kerberos con rappresentazione, il principal specificato dalla proprietà hive.metastore.client.principal deve essere in grado di rappresentare l'utente Trino corrente. La rappresentazione in Hadoop viene configurata nel file core-site.xml.

  1. Per utilizzare la rappresentazione, è necessario che il cluster Hadoop sia configurato in modo da consentire all'utente o al principal in esecuzione di Trino di rappresentare gli utenti che si collegano a Trino. La rappresentazione in Hadoop è configurata nel file core-site.xml:
    hadoop.proxyuser.trino.groups = *
    hadoop.proxyuser.trino.hosts = *
  2. Aggiungere le proprietà di rappresentazione Trino alla proprietà connectors.to.add:
    1. Accedi ad Apache Ambari.
    2. Nella barra degli strumenti laterale, in Servizi selezionare Trino.
    3. Selezionare Config.
    4. Nella sezione Connettori, aggiungere quanto segue a connectors.to.add:
      {'hive':['connector.name=hive','hive.metastore.thrift.impersonation.enabled=true', 
      'hive.hdfs.impersonation.enabled=true', 
      'hive.metastore.uri=thrift://server-mn1.oraclevcn.com:9083',
      'hive.metastore.authentication.type=KERBEROS',
      'hive.metastore.service.principal=hive/_HOST@BDSCLOUDSERVICE.ORACLE.COM',
      'hive.metastore.client.principal=trino/_HOST@BDSCLOUDSERVICE.ORACLE.COM',
      'hive.metastore.client.keytab=/etc/security/keytabs/trino.service.keytab',
      'hive.hdfs.authentication.type=KERBEROS',
      'hive.hdfs.trino.principal=trino/_HOST@BDSCLOUDSERVICE.ORACLE.COM',
      'hive.hdfs.trino.keytab=/etc/security/keytabs/trino.service.keytab',
      'hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml',]}

      Il file del connettore Hive viene popolato con le configurazioni precedenti in /etc/trino/conf/catalog/hive.properties.

      Nota

      Un controllo dell'accesso di sistema applica l'autorizzazione a livello globale, prima di qualsiasi autorizzazione a livello di connettore. Con questo controllo dell'accesso predefinito, tutte le operazioni sono consentite, ad eccezione della rappresentazione dell'utente e dell'attivazione della chiusura Graceful. Per maggiori informazioni, vedere System Access Control.
  3. Aggiungere allow-all a access-control.properties:
    # pwd
    /etc/trino/conf
     
    # cat access-control.properties
    access-control.name=allow-all
    Nota

    Per Big Data Service precedente alla 3.023, è necessario creare /etc/trino/conf/access-control.properties.
  4. Verificare i log di avvio del server Trino. Esempio:
    2024-02-08T12:58:40.908Z        INFO    main    io.trino.security.AccessControlManager  -- Loading system access control etc/access-control.properties --
    2024-02-08T12:58:40.909Z        INFO    main    io.trino.security.AccessControlManager  -- Loaded system access control allow-all --
    [...]
    2024-02-08T12:58:41.201Z        INFO    main    io.trino.server.Server  ======== SERVER STARTED ========
  5. La conferma della rappresentazione funziona correttamente. Esempio:
    [root@server-un1 conf]# /usr/lib/trino/bin/trino-cli --server https://server-un1.oraclevcn.com:7778 --krb5-principal trino/server-un1.oraclevcn.com@BDSCLOUDSERVICE.ORACLE.COM --krb5-keytab-path /etc/security/keytabs/trino.service.keytab --krb5-remote-service-name trino --truststore-path=/etc/security/serverKeys/truststore.jks --user <username> --session-user <username> --debug
    trino> show catalogs;
     Catalog
    ---------
     hive
     system
     tpch
    (3 rows)
    Query 20240208_125940_00002_vdzw6, FINISHED, 1 node
    https://server-un1.oraclevcn.com:7778/ui/query.html?20240208_125940_00002_vdzw6
    Splits: 19 total, 19 done (100.00%)
    CPU Time: 0.0s total,     0 rows/s,     0B/s, 33% active
    Per Node: 0.1 parallelism,     0 rows/s,     0B/s
    Parallelism: 0.1
    Peak Memory: 0B
    0.37 [0 rows, 0B] [0 rows/s, 0B/s]