Gestion des fichiers avec les commandes du système de fichiers Hadoop

HDFS est l'une des deux principales composantes de l'Hadoop Structures à l'autre est le paradigme de calcul connu comme MapReduce. UN système de fichiers distribué est un système de fichier qui gère le stockage dans un cluster en réseau des machines.

HDFS stocke les données dans blocs, unités dont la taille par défaut est 64MB. Fichiers que vous souhaitez stockés dans HDFS doivent être brisés en morceaux de dimension de bloc qui sont ensuite stockées indépendamment dans l'ensemble du cluster. Vous pouvez utiliser la commande de ligne fsck pour lister les blocs qui composent chaque fichier HDFS, comme suit:

% Hadoop fsck / -files -blocks

Parce que Hadoop est écrit en Java, toutes les interactions avec HDFS sont gérés via l'API Java. Gardez à l'esprit, cependant, que vous ne devez pas être un gourou de Java pour travailler avec des fichiers dans HDFS. Plusieurs interfaces Hadoop construits au-dessus de l'API Java sont maintenant d'usage courant (et cachent Java), mais le plus simple est la ligne de commande interface- utiliser la ligne de commande pour interagir avec HDFS dans les exemples fournis.

Vous accédez à la coquille du système de fichiers Hadoop en exécutant une forme de la commande de Hadoop. Toutes les commandes de Hadoop sont invoquées par le script bin / Hadoop. (Pour récupérer une description de toutes les commandes Hadoop, exécutez le script de Hadoop sans spécifier tous les arguments.) La commande de Hadoop a la syntaxe

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

La --config confdir option remplace le répertoire de configuration par défaut (HADOOP_HOME $ / conf), De sorte que vous pouvez facilement personnaliser la configuration de votre environnement Hadoop. Les options génériques et les options de commande sont un ensemble commun d'options qui sont pris en charge par plusieurs commandes.

Commandes de fichiers Hadoop shell système (pour les interfaces de ligne de commande) prendre Uniform Resource Identifiers (URI) comme arguments. UN URI est une chaîne de caractères qui est utilisé pour identifier un nom ou une ressource Web.

La chaîne peut inclure une nom de schéma - un qualificateur de la nature de la source de données. Pour HDFS, le nom de schéma est HDFS, et pour le système de fichiers local, le nom de schéma est un fichier. Si vous ne spécifiez pas un nom de système, la valeur par défaut est le nom du système qui est spécifié dans le fichier de configuration. Un fichier ou un répertoire dans HDFS peuvent être spécifiés de manière pleinement qualifié, comme dans cet exemple:

HDFS: // namenodehost / parent / enfant

Ou il peut être simplement / parent / enfant si les points de fichiers de configuration pour HDFS: // namenodehost.

Le système de fichiers de commandes shell Hadoop, qui sont similaires aux commandes de fichiers Linux, ont la syntaxe générale suivante:




Hadoop HDFS DFS -file_cmd

Les lecteurs ayant une certaine expérience avant Hadoop pourraient demander, “ Mais que dire de la commande hadoop fs ”?; La fs commande est obsolète dans la série de libération Hadoop 0,2, mais il ne fonctionne toujours dans Hadoop 2. Utilisez DFS HDFS au lieu.

Comme vous vous en doutez, vous utilisez le mkdir commande pour créer un répertoire dans HDFS, tout comme vous le feriez sur Linux ou sur les systèmes d'exploitation basés sur Unix. Bien que HDFS a un répertoire de travail par défaut, / user / $ USER, où $ USER est votre login nom d'utilisateur, vous devez créer vous-même en utilisant la syntaxe

Hadoop HDFS $ DFS -mkdir / user /nom d'utilisateur connexion

Par exemple, pour créer un répertoire nommé “ Joanna ” ;, exécuter ce mkdir commande:

Hadoop HDFS $ DFS -mkdir / user / Joanna

Utilisez le Hadoop mettre commande pour copier un fichier de votre système de fichier local à HDFS:

Hadoop HDFS $ DFS -put nom de fichier / user /nom d'utilisateur connexion

Par exemple, pour copier un fichier nommé data.txt dans ce nouveau répertoire, exécutez la suivante mettre commande:

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

Exécutez le ls commande pour obtenir une liste de fichier HDFS:

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

Le fichier lui-même la liste se décompose de la manière décrite dans cette liste:

  • La colonne 1 indique le mode de fichier (“ d ” pour le répertoire et “ - ” pour le fichier normal, suivi par les autorisations). Les trois types d'autorisation - lecture (r), écriture (w) et d'exécution (x) - sont les mêmes que vous trouverez sur Linux et systèmes Unix. L'autorisation d'exécution pour un fichier est ignorée parce que vous ne pouvez pas exécuter un fichier sur HDFS. Les autorisations sont regroupées par propriétaire, le groupe, et du public (tout le monde).

  • La colonne 2 indique le facteur de réplication de fichiers. (Le concept de réplication ne concerne pas les répertoires.) Les blocs qui composent un fichier dans HDFS sont répliqués pour assurer la tolérance aux pannes. La facteur de réplication, ou le nombre de répliques qui sont gardés pour un fichier spécifique, est configurable. Vous pouvez spécifier le facteur de réplication lorsque le fichier est créé ou tard, par l'intermédiaire de votre application.

  • Les colonnes 3 et 4 montrent le fichier propriétaire et groupe. Supergroupe est le nom du groupe de super-utilisateurs, et un super-utilisateur est l'utilisateur avec la même identité que le processus de NameNode. Si vous démarrez le NameNode, vous êtes le super-utilisateur pour le moment. Ceci est un groupe spécial - utilisateurs réguliers auront leurs userids appartiennent à un groupe sans caractéristiques particulières - un groupe qui est simplement défini par un administrateur Hadoop.

  • La colonne 5 indique la taille du fichier, en octets, ou 0 si elle est un répertoire.

  • Colonnes 6 et 7 montrent la date et l'heure de la dernière modification, respectivement.

  • Colonne 8 montre le nom non qualifié (ce qui signifie que le nom de schéma est non spécifié) du fichier ou du répertoire.

Utilisez la commande get Hadoop pour copier un fichier à partir de HDFS à votre système de fichiers local:

Hadoop HDFS $ DFS -get nom de fichier / user /nom d'utilisateur connexion

Utilisez le Hadoop rm commande pour supprimer un fichier ou un répertoire vide:

Hadoop HDFS $ DFS -rm nom de fichier / user /nom d'utilisateur connexion

Utilisez le hadoop DFS HDFS -Aidez-moi commande pour obtenir de l'aide détaillée pour chaque option.


» » » » Gestion des fichiers avec les commandes du système de fichiers Hadoop