Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 Java SDK para o 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 de armazenamento Data Lake Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 usando o portal do Azure.
- Maven. Este tutorial utiliza o Maven para dependências de compilação e do projeto. Embora seja possível construir sem usar um sistema de compilação como Maven ou Gradle, esses sistemas tornam muito mais fácil gerenciar dependências.
- (Opcional) E IDE como IntelliJ IDEA ou Eclipse ou similar.
Criar uma aplicação Java
O exemplo de código disponível no GitHub orienta você pelo processo de criação de arquivos na loja, concatenação de arquivos, download de um arquivo e exclusão de alguns arquivos na loja. Esta seção do artigo orienta você pelas partes principais do código.
Crie um projeto Maven com o arquétipo mvn a partir da linha de comandos ou com um IDE. Para obter instruções sobre como criar um projeto Java com IntelliJ, veja aqui. Para obter instruções sobre como criar um projeto com Eclipse, clique aqui.
Adicione as seguintes dependências ao ficheiro pom.xml do 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 interface de registo SLF4J, que permite escolher entre várias estruturas de registo populares, como Log4j, registo Java, Logback, etc., ou nenhum registo. Neste exemplo, vamos desativar o registo e, por conseguinte, utilizar a ligação slf4j-nop. Para utilizar outras opções de registo na sua aplicação, consulte aqui.Adicione as seguintes declarações de importação à aplicação.
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 de usuário final para seu aplicativo, consulte Autenticação de usuário final com Data Lake Storage Gen1 usando Java.
- Para autenticação de serviço a serviço para seu aplicativo, consulte Autenticação de serviço a serviço com o Data Lake Storage Gen1 usando Java.
Criar um cliente Data Lake Storage Gen1
A criação de um objeto ADLStoreClient requer que você especifique o nome da conta do Data Lake Storage Gen1 e o provedor de token gerado quando autenticado 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 trechos 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 Java SDK do Data Lake Storage Gen1 do objeto ADLStoreClient para ver outras operações.
Criar um diretório
O trecho a seguir cria uma estrutura de diretórios na raiz da conta do Data Lake Storage Gen1 especificada.
// create directory
client.createDirectory("/a/b/w");
System.out.println("Directory created.");
Criar um ficheiro
O trecho a seguir cria um arquivo (c.txt) na estrutura de diretórios 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 de getSampleContent função usada no trecho anterior está disponível como parte do exemplo no GitHub.
Anexar a um ficheiro
O trecho 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 de getSampleContent função usada no trecho anterior está disponível como parte do exemplo no GitHub.
Ler um ficheiro
O trecho 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 ficheiros
O trecho a seguir concatena dois arquivos em uma conta do Data Lake Storage Gen1. Se for bem-sucedido, 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 trecho 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 ficheiro
O trecho 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 trecho 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 trecho 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 de printDirectoryInfo função usada no trecho anterior está disponível como parte do exemplo no GitHub.
Excluir arquivos e pastas
O trecho 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();
Compilar e executar o aplicativo
- Para executar a partir de um IDE, localize e pressione o botão Executar . Para executar a partir do Maven, use exec:exec.
- Para produzir um jar autónomo que pode executar a partir da linha de comando, crie o jar com todas as dependências incluídas, usando o plugin de assembly do Maven. O pom.xml no código-fonte de exemplo no GitHub tem um exemplo.