Wie kann ich über eine lokale Hadoop 2.6-Installation auf S3 / S3n zugreifen?

Ich versuche zu reproduzieren eines Amazon EMR-Clusters auf meiner lokalen Maschine. Für diesen Zweck habe ich installiert die die aktuelle stabile version von Hadoop - 2.6.0.
Nun würde ich gerne den Zugriff auf ein S3-bucket, wie ich innerhalb der EMR-cluster.

Habe ich die aws-Anmeldeinformationen in core-site.xml:

<property>
  <name>fs.s3.awsAccessKeyId</name>
  <value>some id</value>
</property>

<property>
  <name>fs.s3n.awsAccessKeyId</name>
  <value>some id</value>
</property>

<property>
  <name>fs.s3.awsSecretAccessKey</name>
  <value>some key</value>
</property>

<property>
  <name>fs.s3n.awsSecretAccessKey</name>
  <value>some key</value>
</property>

Hinweis: Da gibt es einige Hiebe auf den key, ich entkam Ihnen mit %2F

Wenn ich versuche, die Liste der Inhalt des Eimers:

hadoop fs -ls s3://some-url/bucket/

Bekomme ich diesen Fehler:

ls: Nein Dateisystem für das Schema: s3

Bearbeitete ich core-site.xml wieder, und Hinzugefügt Informationen in Bezug auf die fs:

<property>
  <name>fs.s3.impl</name>
  <value>org.apache.hadoop.fs.s3.S3FileSystem</value>
</property>

<property>
  <name>fs.s3n.impl</name>
  <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>

Dieses mal bekomme ich eine andere Fehlermeldung:

-ls: Fatal internal error
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3.S3FileSystem not found
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
        at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2578)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)

Irgendwie vermute ich, dass das Garn die Verteilung nicht über die notwendigen Gläser werden in der Lage zu Lesen S3, aber ich habe keine Ahnung, wo diese zu erhalten. Alle Hinweise in diese Richtung würde sehr geschätzt werden.

InformationsquelleAutor der Frage doublebyte | 2015-01-19

Schreibe einen Kommentar