Ich habe einen Hadoop-Cluster mit 5 Knoten auf Amazon EC2 eingerichtet. Jetzt, wenn ich mich am Master-Knoten anmelde und den folgenden Befehl abschicke
%Vor%Es wirft die folgenden Fehler (nicht zur gleichen Zeit). Der erste Fehler wird geworfen, wenn ich die Schrägstriche nicht durch '% 2F' ersetze und der zweite wird geworfen, wenn ich sie durch '% 2F' ersetzen:
%Vor%Hinweis:
1) Als ich jps übermittelte, um zu sehen, welche Aufgaben auf dem Master ausgeführt wurden, wurde nur
angezeigt %Vor%Verlassen von DataNode und TaskTracker.
2) Mein Geheimschlüssel enthält zwei '/' (Schrägstriche). Und ich ersetze sie mit '% 2F' in der S3 URI.
PS: Das Programm läuft auf EC2 einwandfrei, wenn es auf einem einzelnen Knoten ausgeführt wird. Nur wenn ich einen Cluster starte, stoße ich auf Probleme beim Kopieren von Daten von / nach S3 von / nach HDFS. Und was macht distp? Muss ich die Daten verteilen, nachdem ich die Daten von S3 nach HDFS kopiert habe? (Ich dachte, HDFS kümmerte sich intern darum)
WENN Sie mich zu einem Link führen könnten, der die Ausführung von Map / reduce-Programmen auf einem Hadoop-Cluster mit Amazon EC2 / S3 erläutert. Das wäre großartig.
Grüße,
Deepak.
Sie können auch Apache Whirr für diesen Workflow verwenden. Überprüfen Sie die Kurzanleitung und die 5 Minuten Anleitung für weitere Informationen.
Disclaimer: Ich bin einer der Committer.
Wahrscheinlich möchten Sie s3n: // urls verwenden, nicht s3: // urls. s3n: // bedeutet "Eine reguläre Datei, lesbar von der Außenwelt, in dieser S3-URL". s3: // verweist auf ein HDFS-Dateisystem, das einem S3-Bucket zugeordnet ist.
Um das Problem mit dem URL-Escaping für den Zugriffsschlüssel zu vermeiden (und das Leben viel einfacher zu machen), fügen Sie sie in die Datei /etc/hadoop/conf/core-site.xml
ein:
Es gab an einem Punkt ein ausstehendes Problem mit geheimen Schlüsseln, die einen Schrägstrich hatten - die URL wurde in einigen Kontexten entschlüsselt, aber nicht in anderen. Ich weiß nicht, ob es behoben wurde, aber ich weiß, dass mit den Tasten in der .conf das weggeht.
Andere Quickies:
hadoop fs -cp s3n://myhappybucket/
oder hadoop fs -cp s3n://myhappybucket/happyfile.txt /tmp/dest1
und sogar hadoop fs -cp /tmp/some_hdfs_file s3n://myhappybucket/will_be_put_into_s3
distcp
führt einen Nur-Mapper-Befehl aus, um einen Baum von dort nach hier zu kopieren. Verwenden Sie es, wenn Sie eine sehr große Anzahl von Dateien auf das HDFS kopieren möchten. (Für den täglichen Gebrauch funktioniert hadoop fs -cp src dest
einfach). SocketTimeoutException
s sehen, wenden Sie den Patch für HADOOP-6254 an . Wir waren, und wir taten es und sie gingen weg. Tags und Links hadoop amazon-s3 hdfs amazon-ec2 cloud