2016-06-08 11 views
0

Ich habe einen Cloudera-Cluster mit drei Worker-Knoten, einem Manager und einem Gateway-Computer. Ich habe aws Anmeldeinformationen auf dem Cluster mit dem geheimen Schlüssel und dem Zugriffsschlüssel konfiguriert. Aber ich kann keine Aktion für den s3-Bucket von meinem Gateway-Rechner ausführen. Erstellen von Tabellen oder Datenbank oder der Abfrage führt die Ausnahme:Impala-Shell - AWS-Anmeldeinformationen können nicht von einem beliebigen Anbieter in der Cloudera-Clusternetzgruppe geladen werden

ERROR: AnalysisException: null DURCH: AmazonClientException: Können AWS-Anmeldeinformationen von einem beliebigen Anbieter in der Kette

Ich bin in der Lage listen die Eimer laden oder auszuführen Aktionen bezogen auf aws CLI. Nur in der Impala-Shell wird dieser Fehler ausgelöst.

+0

Diese sind auf der gleichen Maschine, richtig? Wie haben Sie Ihre Anmeldedaten konfiguriert? –

+0

Ich verstehe nicht, was Sie mit der gleichen Maschine meinen. Ich greife von einem Client-Rechner (Gateway) aus auf Impala zu - auf einem Cloudera-Cluster mit 5 Knoten. Ich habe den Zugriffsschlüssel und den geheimen Schlüssel im HDFS Client Advanced Configuration Snippet (Sicherheitsventil) für das Feld hdfs-site.xml hinzugefügt. Außerdem wurden dieselben Eigenschaften für Bienenstock- und Impala-Konfigurationen hinzugefügt. –

Antwort

0

Jeder Impalad-Knoten im Cluster erledigt die Arbeit tatsächlich, daher muss jeder Knoten Zugriff auf S3 haben, nicht nur auf das Gateway.

0

Sie müssen einen AWS AccessKey in hdfs-site.xml konfigurieren. Sie können den Vorgang auf diesem Cloudera Artikel folgen: https://www.cloudera.com/documentation/enterprise/5-7-x/topics/impala_s3.html

Sie benötigen die folgenden Eigenschaften in Ihrer hdfs-site/xml hinzuzufügen:

<property> 
    <name>fs.s3a.access.key</name> 
    <value>your_access_key</value> 
</property> 
<property> 
    <name>fs.s3a.secret.key</name> 
    <value>your_secret_key</value> 
</property> 

Wenn ein Proxy verwenden, müssen Sie auch fs hinzufügen Eigenschaften .s3a.proxy.host und fs.s3a.proxy.port.