Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como usar o SDK java do Azure Data Lake Storage Gen1 para executar operações básicas, como criar pastas, carregar e baixar arquivos de dados, etc. Para obter mais informações sobre o Data Lake Storage Gen1, consulte Azure Data Lake Storage Gen1.
Você pode acessar os documentos da API do SDK do Java para Data Lake Storage Gen1 nos documentos da API Java do Azure Data Lake Storage Gen1.
Pré-requisitos
- Java Development Kit (JDK 7 ou superior, usando Java versão 1.7 ou superior)
- Conta do Data Lake Storage Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 usando o portal do Azure.
- Maven. Este tutorial usa o Maven para compilação e dependências de projeto. Embora seja possível criar sem usar um sistema de build como o Maven ou o Gradle, esses sistemas facilitam muito o gerenciamento de dependências.
- (Opcional) E o IDE gosta de IntelliJ IDEA ou Eclipse ou similar.
Criar um aplicativo Java
O exemplo de código disponível no GitHub orienta você pelo processo de criação de arquivos no repositório, concatenação de arquivos, download de um arquivo e exclusão de alguns arquivos no repositório. Esta seção do artigo orienta você pelas partes principais do código.
Crie um projeto maven usando o arquétipo mvn da linha de comando ou usando um IDE. Para obter instruções sobre como criar um projeto Java usando o IntelliJ, consulte aqui. Para obter instruções sobre como criar um projeto usando o Eclipse, consulte aqui.
Adicione as seguintes dependências ao arquivopom.xmldo Maven. Adicione o seguinte trecho antes da tag </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>A primeira dependência é usar o SDK do Data Lake Storage Gen1 (
azure-data-lake-store-sdk) do repositório maven. A segunda dependência é especificar a estrutura de log (slf4j-nop) a ser usada para este aplicativo. O SDK do Data Lake Storage Gen1 usa a fachada de registro em log SLF4J, que permite escolher entre várias estruturas de registro em log populares, como Log4j, registro em Java, Logback etc., ou nenhum registro em log. Para este exemplo, desabilitamos o registro em log, portanto, usamos a associação slf4j-nop . Para usar outras opções de registro de logs em seu aplicativo, consulte aqui.Adicione as seguintes declarações de importação ao seu aplicativo.
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;
Autenticação
- Para autenticação do usuário final para seu aplicativo, consulte Autenticação de usuário final com o Data Lake Storage Gen1 usando Java.
- Para obter a autenticação serviço a serviço para seu aplicativo, consulte a autenticação serviço a serviço com o Data Lake Storage Gen1 usando Java.
Criar um cliente do Data Lake Storage Gen1
A criação de um objeto ADLStoreClient exige que você especifique o nome da conta do Data Lake Storage Gen1 e o provedor de token que você gerou ao autenticar com o Data Lake Storage Gen1 (consulte a seção Autenticação ). O nome da conta do Data Lake Storage Gen1 precisa ser um nome de domínio totalmente qualificado. Por exemplo, substitua FILL-IN-HERE por algo como mydatalakestoragegen1.azuredatalakestore.net.
private static String accountFQDN = "FILL-IN-HERE"; // full account FQDN, not just the account name
ADLStoreClient client = ADLStoreClient.createClient(accountFQDN, provider);
Os snippets de código nas seções a seguir contêm exemplos de algumas operações comuns do sistema de arquivos. Você pode examinar os documentos completos da API do SDK java do Data Lake Storage Gen1 do objeto ADLStoreClient para ver outras operações.
Criar um diretório
O snippet a seguir cria uma estrutura de diretório na raiz da conta do Data Lake Storage Gen1 especificada.
// create directory
client.createDirectory("/a/b/w");
System.out.println("Directory created.");
Criar um arquivo
O snippet a seguir cria um arquivo (c.txt) na estrutura do diretório e grava alguns dados no arquivo.
// 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.");
Você também pode criar um arquivo (d.txt) usando matrizes de bytes.
// 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.");
A definição da getSampleContent função usada no snippet anterior está disponível como parte do exemplo no GitHub.
Acrescentar a um arquivo
O snippet de código a seguir acrescenta conteúdo a um arquivo existente.
// append to file
stream = client.getAppendStream(filename);
stream.write(getSampleContent());
stream.close();
System.out.println("File appended.");
A definição da getSampleContent função usada no snippet anterior está disponível como parte do exemplo no GitHub.
Ler um arquivo
O snippet a seguir lê o conteúdo de um arquivo em uma conta do 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.");
Concatenar arquivos
O snippet a seguir concatena dois arquivos em uma conta do Data Lake Storage Gen1. Se tiver êxito, o arquivo concatenado substituirá os dois arquivos existentes.
// 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.");
Renomear um arquivo
O snippet a seguir renomeia um arquivo em uma conta do Data Lake Storage Gen1.
//rename the file
client.rename("/a/b/f.txt", "/a/b/g.txt");
System.out.println("New file renamed.");
Obter metadados para um arquivo
O snippet a seguir recupera os metadados de um arquivo em uma conta do Data Lake Storage Gen1.
// get file metadata
DirectoryEntry ent = client.getDirectoryEntry(filename);
printDirectoryInfo(ent);
System.out.println("File metadata retrieved.");
Definir permissões em um arquivo
O snippet de código a seguir define permissões no arquivo que você criou na seção anterior.
// set file permission
client.setPermission(filename, "744");
System.out.println("File permission set.");
Listar conteúdo do diretório
O snippet a seguir lista o conteúdo de um diretório, recursivamente.
// 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.");
A definição da printDirectoryInfo função usada no snippet anterior está disponível como parte do exemplo no GitHub.
Excluir arquivos e pastas
O snippet a seguir exclui os arquivos e pastas especificados em uma conta do Data Lake Storage Gen1, recursivamente.
// delete directory along with all the subdirectories and files in it
client.deleteRecursive("/a");
System.out.println("All files and folders deleted recursively");
promptEnterKey();
Compile e execute o aplicativo
- Para executar de dentro de um IDE, localize e pressione o botão Executar . Para executar no Maven, use exec:exec.
- Para produzir um jar autônomo que você pode executar na linha de comando, crie o jar com todas as dependências incluídas, usando o plug-in de assembly do Maven. O pom.xml no código-fonte de exemplo no GitHub serve como exemplo.