Por que recebo o erro “O token fornecido está malformado ou é inválido” quando inicio um cluster do Amazon EMR usando o Hive e o Presto na região da AWS China (Pequim)?

2 minuto de leitura
0

Iniciei um cluster do Amazon EMR na região da AWS China (Pequim) (cn-north-1). Usi o Presto e o Apache Hive para criar uma tabela externa a partir de um bucket do Amazon Simple Storage Service (Amazon S3). Quando consulto a tabela usando o Hive e o Presto, recebo um erro semelhante ao seguinte:default> select * from mydata; Query 20200912_072348_00009_qqx96, FAILED, 1 node Splits: 1 total, 0 concluído (0,00%) 0:03 [0 linhas, 0B] [0 linhas/s, 0B/s] A consulta 20200912_072348_00009_qqx96 falhou: O token fornecido está malformado ou é inválido. (Serviço: Amazon S3; Código de status: 400; Código do erro: InvalidToken; ID da solicitação: 811359ED1D9F8250)

Descrição breve

Nas versões anteriores do Amazon EMR, o Presto não usa automaticamente a região em que o bucket do S3 se encontra. Use uma das seguintes opções para resolver esse erro:

  • Atualize para a versão 5.12.0 ou posterior do Amazon EMR.
  • Para usar a versão 5.11.x ou anterior do Amazon EMR, defina a propriedade hive.s3.pin-client-to-current-region como true.

Resolução

Atualizar para a versão 5.12.0 ou posterior do Amazon EMR

Inicie um novo cluster e escolha a versão 5.12.0 ou posterior do Amazon EMR. Para mais informações, consulte Sobre lançamentos do Amazon EMR.

Defina a propriedade hive.s3.pin-client-to-current-region como true (versão 5.11.x ou anterior)

1.    Em cada nó, abra o arquivo hive.properties e defina a propriedade hive.s3.pin-client-to-current-region como true. Exemplo:

sudo vim /etc/presto/conf/catalog/hive.properties
hive.s3.connect-timeout=2m
hive.s3.max-backoff-time=10m
...
hive.s3.pin-client-to-current-region=true

2.    Reinicie o Presto em cada nó:

sudo restart presto-server

3.    Para confirmar se a nova configuração funciona conforme esperado, consulte uma tabela usando o Hive e o Presto na região da China (Pequim).


Informações relacionadas

Apache Hive

Presto e Trino

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos