Vidéo: Linux_ubuntu_server - lecture de fichiers texte - cat - less - tail.avi 2024
HDFS est l'un des deux principaux composants du framework Hadoop; l'autre est le paradigme de calcul connu sous le nom de MapReduce. Un système de fichiers distribué est un système de fichiers qui gère le stockage sur un cluster de machines en réseau.
HDFS stocke les données dans blocs , unités dont la taille par défaut est 64 Mo. Les fichiers que vous voulez stocker dans HDFS doivent être divisés en blocs de taille de bloc qui sont ensuite stockés indépendamment dans le cluster. Vous pouvez utiliser la commande fsck line pour lister les blocs qui composent chaque fichier dans HDFS, comme suit:
% hadoop fsck / -files -blocks
Comme Hadoop est écrit en Java, toutes les interactions avec HDFS sont gérées via l'API Java. Gardez à l'esprit, cependant, que vous n'avez pas besoin d'être un gourou Java pour travailler avec des fichiers dans HDFS. Plusieurs interfaces Hadoop construites au-dessus de l'API Java sont maintenant couramment utilisées (et cachent Java), mais la plus simple est l'interface de ligne de commande; utilisez la ligne de commande pour interagir avec HDFS dans les exemples fournis.
Vous accédez au shell du système de fichiers Hadoop en exécutant un formulaire de la commande hadoop. Toutes les commandes hadoop sont invoquées par le script bin / hadoop. (Pour récupérer une description de toutes les commandes hadoop, exécutez le script hadoop sans spécifier d'arguments.) La commande hadoop a la syntaxe
hadoop [--config confdir] [COMMANDE] [OPTIONS_GENERIQUES] [OPTIONS_COMMANDES]
Les - L'option config de config écrase le répertoire de configuration par défaut ($ HADOOP_HOME / conf), ce qui vous permet de personnaliser facilement la configuration de votre environnement Hadoop. Les options génériques et les options de commande sont un ensemble commun d'options prises en charge par plusieurs commandes.
Les commandes shell du système de fichiers Hadoop (pour les interfaces de ligne de commande) prennent des identificateurs de ressources uniformes (URI) en tant qu'arguments. Un - un qualificatif pour la nature de la source de données. Pour HDFS, le nom du système est hdfs et, pour le système de fichiers local, le nom du système est le fichier. Si vous ne spécifiez pas de nom de système, la valeur par défaut est le nom du système spécifié dans le fichier de configuration. Un fichier ou un répertoire dans HDFS peut être spécifié de manière totalement qualifiée, comme dans cet exemple: hdfs: // namenodehost / parent / child Les commandes shell du système de fichiers Hadoop, qui sont similaires aux commandes de fichiers Linux, ont la syntaxe générale suivante: hadoop hdfs dfs - Comme vous pouvez vous en douter, vous utilisez la commande mkdir pour créer un répertoire dans HDFS, comme vous le feriez sur Linux ou sur les systèmes d'exploitation Unix. Bien que HDFS ait un répertoire de travail par défaut, / user / $ USER, où $ USER est votre nom d'utilisateur, vous devez le créer vous-même en utilisant la syntaxe $ hadoop hdfs dfs -mkdir / user / Utilisez la commande Hadoop put pour copier un fichier votre système de fichiers local à HDFS: nom_fichier Exécutez la commande ls pour obtenir une liste de fichiers HDFS: La liste des fichiers elle-même se décompose comme décrit dans cette liste: mode fichier ("d" pour le répertoire et "-" pour le fichier normal, suivi des permissions). Les trois types d'autorisation - read (r), write (w) et execute (x) - sont les mêmes que ceux que vous trouvez sur les systèmes Linux et Unix. L'autorisation d'exécution pour un fichier est ignorée car vous ne pouvez pas exécuter un fichier sur HDFS. Les autorisations sont regroupées par propriétaire, groupe et public (tous les autres utilisateurs). La colonne 2 indique le facteur de réplication pour les fichiers. (Le concept de réplication ne s'applique pas aux répertoires.) Les blocs qui composent un fichier dans HDFS sont répliqués pour garantir la tolérance aux pannes. Le facteur de réplication, ou le nombre de réplicas conservés pour un fichier spécifique est configurable. Vous pouvez spécifier le facteur de réplication lors de la création du fichier ou ultérieurement, via votre application. Les colonnes 3 et 4 montrent le fichier propriétaire et groupe . Supergroup est le nom du groupe de superutilisateurs, et un superutilisateur est l'utilisateur ayant la même identité que le processus NameNode. Si vous démarrez le NameNode, vous êtes le super-utilisateur pour le moment. C'est un groupe spécial - les utilisateurs réguliers auront leurs userids appartenant à un groupe sans caractéristiques spéciales - un groupe qui est simplement défini par un administrateur Hadoop. La colonne 5 indique la taille du fichier, en octets, ou 0 s'il s'agit d'un répertoire. Les colonnes 6 et 7 indiquent la date et l'heure de la dernière modification, respectivement. La colonne 8 indique le nom non qualifié (c'est-à-dire que le nom du système n'est pas spécifié) du fichier ou du répertoire. Utilisez la commande Hadoop get pour copier un fichier de HDFS dans votre système de fichiers local: nom_fichier / user / login_user_name
Ou il peut simplement être / parent / child si le fichier de configuration pointe à hdfs: // namenodehost.
file_cmd Les lecteurs ayant déjà une expérience Hadoop peuvent se demander: à propos de la commande hadoop fs?"La commande fs est obsolète dans la série de versions Hadoop 0. 2, mais elle fonctionne toujours dans Hadoop 2. Utilisez hdfs dfs à la place.
login_user_name Par exemple, pour créer un répertoire nommé "joanna", exécutez la commande mkdir suivante: <$ $ hadoop hdfs dfs -mkdir / utilisateur / joanna
$ hadoop hdfs dfs -put
/ user / nom_utilisateur_d'accès Par exemple, pour copier un fichier nommé données. txt vers ce nouveau répertoire, exécutez la commande put suivante: $ hadoop hdfs dfs -put data. txt / user / joanna
$ hadoop hdfs dfs -ls. Found 2 articles drwxr-xr-x - super groupe joanna 0 2013-06-30 12: 25 / utilisateur / joanna -rw-r - r-- 1 super groupe joanna 118 2013-06-30 12: 15 / user / joanna / Les données. txt
La colonne 1 montre le
nom_utilisateur_d'accès Utiliser le Hadoop rm commande pour supprimer un fichier ou un répertoire vide: <$ $ hadoop hdfs dfs -rm nom_fichier / user /
Utilisez la commande hadoop hdfs dfs -help pour obtenir une aide détaillée pour chaque option.