Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Naučte se používat sadu Azure Data Lake Storage Gen1 Java SDK k provádění základních operací, jako jsou vytváření složek, nahrávání a stahování datových souborů atd. Další informace o Data Lake Storage Gen1 najdete v tématu Azure Data Lake Storage Gen1.
Můžete získat přístup k dokumentaci k rozhraní API sady Java SDK pro Data Lake Storage Gen1 na Azure Data Lake Storage Gen1 dokumentaci k rozhraní Java API.
Požadavky
- Java Development Kit (JDK 7 nebo vyšší, s využitím Javy verze 1.7 nebo vyšší)
- Účet Data Lake Storage Gen1 Postupujte podle pokynů v tématu Začínáme s Azure Data Lake Storage Gen1 pomocí webu Azure Portal.
- Maven. Tento tutoriál používá Maven pro sestavení a závislosti projektu. I když je možné sestavovat bez použití systému sestavení, jako je Maven nebo Gradle, je mnohem jednodušší spravovat závislosti.
- (Volitelné) A integrované vývojové prostředí, jako je IntelliJ IDEA nebo Eclipse nebo podobné.
Vytvoření aplikace Java
Ukázka kódu dostupná na GitHubu vás provede procesem vytváření souborů v úložišti, zřetězení souborů, stažení souboru a odstranění některých souborů v úložišti. Tato část článku vás provede hlavními částmi kódu.
Vytvořte projekt Maven pomocí příkazu mvn archetype z příkazového řádku nebo pomocí integrovaného vývojového rozhraní (IDE). Pokyny k vytvoření projektu jazyka Java s použitím IntelliJ najdete zde. Pokyny k vytvoření projektu s použitím Eclipse najdete zde.
Přidejte k souboru Maven pom.xml následující závislosti. Před značku /project<>:
<dependencies> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-data-lake-store-sdk</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.21</version> </dependency> </dependencies>
První závislostí je použití sady Data Lake Storage Gen1 SDK (
azure-data-lake-store-sdk
) z úložiště Maven. Druhou závislostí je zadat rozhraní protokolování (slf4j-nop
), které se má pro tuto aplikaci použít. Sada Data Lake Storage Gen1 SDK používá SLF4J fasádu protokolování, která umožňuje vybrat si z řady oblíbených rozhraní protokolování, jako jsou Log4j, Protokolování v Javě, Zpětný protokol atd. nebo žádné protokolování. Pro tento příklad zakážeme protokolování a použijeme tedy vazbu slf4j-nop. Pokud chcete v aplikaci použít další možnosti protokolování, přečtěte si zde.Přidejte do své aplikace následující příkazy pro import.
import com.microsoft.azure.datalake.store.ADLException; import com.microsoft.azure.datalake.store.ADLStoreClient; import com.microsoft.azure.datalake.store.DirectoryEntry; import com.microsoft.azure.datalake.store.IfExists; import com.microsoft.azure.datalake.store.oauth2.AccessTokenProvider; import com.microsoft.azure.datalake.store.oauth2.ClientCredsTokenProvider; import java.io.*; import java.util.Arrays; import java.util.List;
Autentizace
- Informace o ověřování koncových uživatelů pro vaši aplikaci najdete v tématu Ověřování koncového uživatele pomocí Data Lake Storage Gen1 pomocí javy.
- Informace o ověřování mezi službami pro vaši aplikaci najdete v tématu Ověřování mezi službami pomocí Data Lake Storage Gen1 pomocí javy.
Vytvoření klienta Data Lake Storage Gen1
Vytvoření objektu ADLStoreClient vyžaduje, abyste zadali název účtu Data Lake Storage Gen1 a poskytovatele tokenu, který jste vygenerovali při ověřování v Data Lake Storage Gen1 (viz část ověřování). Název účtu Data Lake Storage Gen1 musí být plně kvalifikovaný název domény. Například nahraďte FILL-IN-HERE něco jako mydatalakestoragegen1.azuredatalakestore.net.
private static String accountFQDN = "FILL-IN-HERE"; // full account FQDN, not just the account name
ADLStoreClient client = ADLStoreClient.createClient(accountFQDN, provider);
Fragmenty kódu v následujících částech obsahují příklady některých běžných operací systému souborů. Pokud chcete vidět další operace, podívejte se na kompletní dokumentaci k rozhraní API sady Java SDK pro Data Lake Storage Gen1 objektu ADLStoreClient.
Vytvoření adresáře
Následující fragment kódu vytvoří adresářovou strukturu v kořenovém adresáři účtu Data Lake Storage Gen1, který jste zadali.
// create directory
client.createDirectory("/a/b/w");
System.out.println("Directory created.");
Vytvoření souboru
Následující fragment kódu vytvoří soubor (c.txt) v adresářové struktuře a zapíše do souboru nějaká data.
// create file and write some content
String filename = "/a/b/c.txt";
OutputStream stream = client.createFile(filename, IfExists.OVERWRITE );
PrintStream out = new PrintStream(stream);
for (int i = 1; i <= 10; i++) {
out.println("This is line #" + i);
out.format("This is the same line (%d), but using formatted output. %n", i);
}
out.close();
System.out.println("File created.");
Můžete také vytvořit soubor (d.txt) pomocí polí bajtů.
// create file using byte arrays
stream = client.createFile("/a/b/d.txt", IfExists.OVERWRITE);
byte[] buf = getSampleContent();
stream.write(buf);
stream.close();
System.out.println("File created using byte array.");
Definice funkce getSampleContent
použitá v předchozím fragmentu kódu je k dispozici jako součást ukázky na GitHubu.
Přidat k souboru
Následující fragment kódu připojí obsah k existujícímu souboru.
// append to file
stream = client.getAppendStream(filename);
stream.write(getSampleContent());
stream.close();
System.out.println("File appended.");
Definice funkce getSampleContent
použitá v předchozím fragmentu kódu je k dispozici jako součást ukázky na GitHubu.
Přečti soubor
Následující fragment kódu načte obsah ze souboru v účtu Data Lake Storage Gen1.
// Read File
InputStream in = client.getReadStream(filename);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ( (line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
System.out.println();
System.out.println("File contents read.");
Řetězení souborů
Následující fragment kódu zřetězí dva soubory v účtu Data Lake Storage Gen1. V případě úspěchu nahradí zřetězený soubor dva existující soubory.
// concatenate the two files into one
List<String> fileList = Arrays.asList("/a/b/c.txt", "/a/b/d.txt");
client.concatenateFiles("/a/b/f.txt", fileList);
System.out.println("Two files concatenated into a new file.");
Přejmenování souboru
Následující fragment kódu přejmenuje soubor v účtu Data Lake Storage Gen1.
//rename the file
client.rename("/a/b/f.txt", "/a/b/g.txt");
System.out.println("New file renamed.");
Získání metadat pro soubor
Následující fragment kódu načte metadata souboru v účtu Data Lake Storage Gen1.
// get file metadata
DirectoryEntry ent = client.getDirectoryEntry(filename);
printDirectoryInfo(ent);
System.out.println("File metadata retrieved.");
Nastavení oprávnění k souboru
Následující fragment kódu nastaví oprávnění k souboru, který jste vytvořili v předchozí části.
// set file permission
client.setPermission(filename, "744");
System.out.println("File permission set.");
Výpis obsahu adresáře
Následující fragment kódu uvádí obsah adresáře rekurzivně.
// list directory contents
List<DirectoryEntry> list = client.enumerateDirectory("/a/b", 2000);
System.out.println("Directory listing for directory /a/b:");
for (DirectoryEntry entry : list) {
printDirectoryInfo(entry);
}
System.out.println("Directory contents listed.");
Definice funkce printDirectoryInfo
použitá v předchozím fragmentu kódu je k dispozici jako součást ukázky na GitHubu.
Odstranění souborů a složek
Následující fragment kódu odstraní zadané soubory a složky v účtu Data Lake Storage Gen1 rekurzivně.
// delete directory along with all the subdirectories and files in it
client.deleteRecursive("/a");
System.out.println("All files and folders deleted recursively");
promptEnterKey();
Sestavení a spuštění aplikace
- Pro spuštění z integrovaného vývojového prostředí vyhledejte a stiskněte tlačítko Spustit. Pokud chcete spustit příkaz z prostředí Maven, použijte exec:exec.
- Chcete-li vytvořit samostatný soubor JAR, který můžete spustit z příkazového řádku, sestavte jar se všemi zahrnutými závislostmi pomocí pluginu Maven assembly. Pom.xml ve zdrojovém kódu na GitHubu obsahuje příklad.