Sto usando Hue (Hadoop User Experience) per accedere ai bucket Amazon Simple Storage Service (Amazon S3) su un cluster Amazon EMR. Ricevo uno dei seguenti messaggi di errore: There are no files matching the search criteria. Failed to access path "s3a://awsdoc-example-bucket.hue1": hostname u'awsdoc-example-bucket.hue1.s3.amazonaws.com' doesn't match either of '.s3.amazonaws.com', 's3.amazonaws.com' Failed to retrieve bucket: hostname u'awsdoc-example-bucket.hue1.s3.amazonaws.com' doesn't match either of '.s3.amazonaws.com', 's3.amazonaws.com'
Breve descrizione
Il formato di chiamata Amazon S3 predefinito per Hue è https://awsdoc-example-bucket.s3.amazonaws.com. Se è presente un punto (.) nel nome del bucket S3, parte del nome del bucket è inclusa nell'endpoint Amazon S3. Ad esempio, se il tuo bucket si chiama awsdoc-example-bucket.hue, Hue tratta hue.s3.amazonaws.com come endpoint Amazon S3 anziché s3.amazonaws.com.
Risoluzione
Per risolvere questo errore, modifica il formato dell'endpoint in https://s3.amazonaws.com/awsdoc-example-bucket. Quando usi questo formato, puoi avere tutti i punti che desideri nel nome del bucket.
1. Apri il file /etc/boto.cfg.
2. Aggiungi le seguenti righe al file boto.cfg:
[s3]
calling_format=boto.s3.connection.OrdinaryCallingFormat
3. Riavvia il servizio Hue:
Per le versioni di Amazon EMR precedenti alla 5.30:
$ sudo stop hue
$ sudo start hue
Per Amazon EMR versione 5.30 e successive:
$ sudo systemctl restart hue
Informazioni correlate
Configurazione Boto3
Hue