Dateisystemvorgänge in Azure Data Lake Storage Gen1 mit der REST-API

In diesem Artikel erfahren Sie, wie Sie mit WebHDFS-REST-APIs und Data Lake Storage Gen1-REST-APIs Dateisystemvorgänge in Azure Data Lake Storage Gen1 durchführen. Eine Anleitung zum Durchführen von Kontoverwaltungsvorgängen in Data Lake Storage Gen1 mit der REST-API finden Sie unter Kontoverwaltungsvorgänge für Data Lake Storage Gen1 mit der REST-API.

Voraussetzungen

Wie authentifiziere ich mich mithilfe von Azure Active Directory?

Zur Authentifizierung mit Azure Active Directory können Sie zwischen zwei Ansätzen wählen.

Erstellen Sie die Ordner.

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Verwenden Sie den folgenden cURL-Befehl. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/?op=MKDIRS'

Ersetzen Sie im vorherigen Befehl <REDACTED> durch das Autorisierungstoken, das Sie zuvor abgerufen haben. Dieser Befehl erstellt das Verzeichnis mytempdir im Stammordner Ihres Data Lake Storage Gen1-Kontos.

Wenn der Vorgang erfolgreich abgeschlossen wurde, sollte eine Antwort wie im folgenden Codeausschnitt angezeigt werden:

{"boolean":true}

Auflisten von Ordnern

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Verwenden Sie den folgenden cURL-Befehl. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -X GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS'

Ersetzen Sie im vorherigen Befehl <REDACTED> durch das Autorisierungstoken, das Sie zuvor abgerufen haben.

Wenn der Vorgang erfolgreich abgeschlossen wurde, sollte eine Antwort wie im folgenden Codeausschnitt angezeigt werden:

{
"FileStatuses": {
    "FileStatus": [{
        "length": 0,
        "pathSuffix": "mytempdir",
        "type": "DIRECTORY",
        "blockSize": 268435456,
        "accessTime": 1458324719512,
        "modificationTime": 1458324719512,
        "replication": 0,
        "permission": "777",
        "owner": "<GUID>",
        "group": "<GUID>"
    }]
}
}

Hochladen von Daten

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Verwenden Sie den folgenden cURL-Befehl. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -X PUT -L -T 'C:\temp\list.txt' -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE'

In der vorherigen Syntax wird mit dem Parameter -T der Speicherort der hochgeladenen Datei angegeben.

Die Ausgabe sieht in etwa wie im folgenden Codeausschnitt aus:

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE&write=true
...
Content-Length: 0

HTTP/1.1 100 Continue

HTTP/1.1 201 Created
...

Lesen von Daten

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Das Lesen von Daten aus einem Data Lake Storage Gen1-Konto ist ein zweistufiger Prozess.

  • Sie müssen zuerst eine GET-Anforderung an den Endpunkt https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPENsenden. Mit diesem Aufruf wird ein Speicherort zurückgegeben, an den die nächste GET-Anforderung gesendet werden soll.
  • Dann senden Sie die GET-Anforderung an den Endpunkt https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true. Mit diesem Aufruf wird der Inhalt der Datei angezeigt.

Da es in den Eingabeparametern keinen Unterschied zwischen dem ersten und zweiten Schritt gibt, können Sie mit dem -L -Parameter die erste Anforderung senden. Mit -L werden im Wesentlichen zwei Anforderungen in einer kombiniert, und es wird erreicht, dass cURL die Anforderung am neuen Speicherort noch einmal ausführt. Schließlich wird die Ausgabe aller Anforderungsaufrufe wie im folgenden Codeausschnitt dargestellt angezeigt. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'

Die Ausgabe sollte in etwa wie folgender Codeausschnitt aussehen:

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/somerandomfile.txt?op=OPEN&read=true
...

HTTP/1.1 200 OK
...

Hello, Data Lake Store user!

Umbenennen einer Datei

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Verwenden Sie zum Umbenennen einer Datei den folgenden cURL-Befehl. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=RENAME&destination=/mytempdir/myinputfile1.txt'

Die Ausgabe sollte in etwa wie folgender Codeausschnitt aussehen:

HTTP/1.1 200 OK
...

{"boolean":true}

Löschen von Dateien

Dieser Vorgang basiert auf dem hierdefinierten WebHDFS-REST-API-Aufruf.

Verwenden Sie zum Löschen einer Datei den folgenden cURL-Befehl. Ersetzen Sie <yourstorename> durch Ihren Data Lake Storage Gen1-Kontonamen.

curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'

Folgendes sollte angezeigt werden:

HTTP/1.1 200 OK
...

{"boolean":true}

Nächste Schritte

Weitere Informationen