Gerenciamento de arquivos com o arquivo Hadoop Comandos do sistema

HDFS é uma das duas principais componentes do Hadoop framework- o outro é o paradigma computacional conhecido como MapReduce. UMA sistema de arquivos distribuídos é um sistema de arquivos que gerencia o armazenamento através de um cluster em rede de máquinas.

HDFS armazena dados em blocos, unidades cujo tamanho padrão é de 64 MB. Arquivos que você deseja armazenados no HDFS precisam ser quebrados em pedaços de blocos de tamanho, que são então armazenados de forma independente em todo o cluster. Você pode usar a linha de comando fsck para listar os blocos que compõem cada arquivo no HDFS, como segue:

% Hadoop fsck / -limas -blocos

Porque Hadoop é escrito em Java, todas as interações com HDFS são geridos através da API Java. Tenha em mente, porém, que você não precisa ser um guru Java para trabalhar com arquivos no HDFS. Várias interfaces Hadoop construídas em cima da API Java estão agora em uso comum (e esconder Java), mas o mais simples é o de linha de comando interface- usar a linha de comando para interagir com HDFS nos exemplos fornecidos.

Você acessar o shell sistema de arquivos Hadoop executando uma forma de o comando hadoop. Todos os comandos do Hadoop são invocados pelo script bin / hadoop. (Para obter uma descrição de todos os comandos do Hadoop, executar o script Hadoop sem especificar quaisquer argumentos.) O comando hadoop tem a sintaxe

Hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

o --configuração confdir opção substitui o diretório de configuração padrão ($ HADOOP_HOME / conf), Então você pode facilmente personalizar sua configuração do ambiente Hadoop. As opções de genéricos e opções de comando são um conjunto comum de opções que são suportadas por vários comandos.

comandos de arquivo Hadoop shell do sistema (para interfaces de linha de comando) levam identificadores de recursos uniformes (URI) como argumentos. UMA URI é uma cadeia de caracteres que é usado para identificar um nome ou um recurso web.

A cadeia pode incluir uma Nome do esquema - um qualificador para a natureza da fonte de dados. Para HDFS, o nome do esquema é hdfs, e para o sistema de arquivos local, o nome do esquema é arquivo. Se você não especificar um nome de esquema, o padrão é o nome do esquema que está especificado no arquivo de configuração. Um arquivo ou diretório no HDFS podem ser especificados de forma totalmente qualificado, como neste exemplo:

hdfs: // namenodehost / pai / filho

Ou pode ser simplesmente / pai / filho, se os pontos do arquivo de configuração para hdfs: // namenodehost.

O sistema de arquivos comandos shell Hadoop, que são semelhantes aos comandos de arquivos Linux, tem a seguinte sintaxe geral:

Hadoop HDFS dfs -file_cmd

Os leitores com alguma experiência Hadoop antes poderia perguntar: # 147 Mas o que sobre o comando fs Hadoop? # 148- A fs comando é obsoleto na série liberação Hadoop 0.2, mas ele ainda trabalha no Hadoop 2. Use dfs HDFS ao invés.

Como você poderia esperar, você usa o mkdir comando para criar um diretório no HDFS, assim como você faria no Linux ou em sistemas operacionais baseados em Unix. Embora HDFS tem um diretório padrão de trabalho, / User / $ USER, Onde $ USER é seu nome de usuário de login, você precisa criá-lo usando a sintaxe

$ Hadoop HDFS dfs -mkdir / user /login_user_name

Por exemplo, para criar um diretório chamado # 147 Joanna # 148-, executar este mkdir comando:

$ Hadoop HDFS dfs -mkdir / user / Joanna

Usar o Hadoop colocar comando para copiar um arquivo do seu sistema de arquivos local para HDFS:

$ Hadoop hdfs dfs -put nome do arquivo /do utilizador/login_user_name

Por exemplo, para copiar um arquivo chamado data.txt a este novo diretório, execute o seguinte colocar comando:

$ Hadoop HDFS dfs -put data.txt / user / Joanna

execute o ls comando para obter uma listagem de arquivos HDFS:

$ Hadoop HDFS dfs -LS .Found 2 itemsdrwxr-xr-x - Joanna supergrupo 0 2013/06/30 00:25 / user / Joanna-rw-r - r-- 1 Joanna supergrupo 118 2013/06/30 12: 15 /user/joanna/data.txt

O arquivo de listagem se divide, como descrito nesta lista:

  • A coluna 1 mostra o modo de arquivo (# 147-d # 148- para o diretório e # 147 - # 148- para o arquivo normal, seguido por as permissões). Os três tipos de permissão - ler (r), gravação (w), e executar (x) - são os mesmos que você encontra em sistemas baseados em Unix Linux e. A permissão de execução para um arquivo é ignorado, porque você não pode executar um arquivo no HDFS. As permissões são agrupadas por proprietário, grupo e público (todos os outros).

  • Coluna 2 mostra o fator de replicação para arquivos. (O conceito de replicação não se aplica aos diretórios.) Os blocos que compõem um arquivo no HDFS são replicados para garantir tolerância a falhas. o factor de replicação, ou o número de réplicas que são mantidos para um arquivo específico, é configurável. Você pode especificar o fator de replicação quando o arquivo é criado ou mais tarde, por meio de sua aplicação.

  • Colunas 3 e 4 mostram o arquivo proprietário e grupo. supergrupo é o nome do grupo de superutilizadores, e um superusuário é o usuário com a mesma identidade como o processo NameNode. Se você iniciar o NameNode, você é o superusuário para agora. Este é um grupo especial - usuários regulares terão seus userids pertencer a um grupo, sem características especiais - um grupo que está simplesmente definido por um administrador de Hadoop.

  • Coluna 5 mostra o tamanho do arquivo, em bytes, ou 0 se é um diretório.

  • Colunas 6 e 7 mostram a data e hora da última modificação, respectivamente.

  • Coluna 8 mostra o nome não qualificado (o que significa que o nome do esquema não é especificado) do arquivo ou diretório.

Use o comando get Hadoop para copiar um arquivo do HDFS para o seu sistema de arquivos local:

$ Hadoop hdfs dfs -get nome do arquivo /do utilizador/login_user_name

Usar o Hadoop rm comando para excluir um arquivo ou uma pasta vazia:

$ Hadoop hdfs dfs -rm nome do arquivo /do utilizador/login_user_name

Usar o Hadoop dfs HDFS -Socorro comando para obter ajuda detalhada para cada opção.

menu