Adicionando a Representação do Trino a um Cluster

Você pode configurar um cluster do Hadoop para permitir que o usuário ou o principal que o Trino está executando personifique os usuários que acessam o Trino.

Ao usar a autenticação do metastore Kerberos com representação, o principal especificado pela propriedade hive.metastore.client.principal deve ser ativado para representar o usuário Trino atual. A representação no Hadoop é configurada no arquivo core-site.xml.

  1. Para usar a personificação, o cluster do Hadoop deve ser configurado para permitir que o usuário ou o principal que o Trino está executando personifique os usuários que acessam o Trino. A personificação no Hadoop é configurada no arquivo core-site.xml:
    hadoop.proxyuser.trino.groups = *
    hadoop.proxyuser.trino.hosts = *
  2. Adicione propriedades de representação Trino à propriedade connectors.to.add:
    1. Acesse o Apache Ambari.
    2. Na barra de ferramentas lateral, em Serviços, selecione Trino.
    3. Selecione Configurações.
    4. Na seção Conectores, adicione o seguinte ao 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',]}

      O arquivo do conector do Hive é preenchido com as configurações acima em /etc/trino/conf/catalog/hive.properties.

      Observação

      Um controle de acesso do sistema impõe a autorização em um nível global, antes de qualquer autorização no nível do conector. Com esse controle de acesso padrão, todas as operações são permitidas, exceto a representação do usuário e o desligamento Gracioso. Para obter mais informações, consulte Controle de Acesso do Sistema.
  3. Adicione allow-all a access-control.properties:
    # pwd
    /etc/trino/conf
     
    # cat access-control.properties
    access-control.name=allow-all
    Observação

    Para o Big Data Service anterior à versão 3.023, crie /etc/trino/conf/access-control.properties.
  4. Verifique os logs de inicialização do servidor Trino. Por exemplo:
    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. Confirmar Representação funciona corretamente. Por exemplo:
    [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]