Tutoriel d'installation Ubuntu 16.04 / Hadoop 3.1.3Configuration autonome / pseudo - distribuée

Directeur d'usine Java 2021-10-14 04:59:17
tutoriel installation ubuntu hadoop 3.1.3configuration


Hadoop3.1.3Installer des tutoriels_Machine autonome/Configuration pseudo - distribuée_Hadoop3.1.3/Ubuntu16.04.6

.Pour faciliter l'apprentissage de ce tutoriel,Les lecteurs sont invités à utiliserLinuxDans le systèmefirefox.Navigateur ouvrir ce guide pour l'apprentissage.
HadoopFichiers d'installation,Peut atteindreHadoopSite officielTéléchargerhadoop-3.1.3.tar.gz.
Ou directementCliquez ici pour télécharger le logiciel de Baidu Cloud disk(Code d'extraction:5few),Après être entré dans le disque réseau Baidu,Entrée dans le Répertoire,Trouverhadoop-3.1.3.tar.gzTéléchargement de fichiers localement.

1、Environnement

Ce tutoriel utilise Ubuntu 16.04 64Bits En tant qu'environnement système(OuUbuntu 14.04,Ubuntu16.04 Ça marche.,32Bits、64Oui.), Veuillez installer le système vous - même .

Chargé Ubuntu Après le système,En installant Hadoop Il reste encore du travail à faire.

2、CréationhadoopUtilisateurs

Si vous installez Ubuntu Ce n'est pas le moment. “hadoop” Utilisateurs,Vous devez ajouter un nom hadoop Utilisateurs de.

Appuyez d'abord sur ctrl+alt+t Ouvrez la fenêtre du terminal,Saisissez la commande suivante pour créer un nouvel utilisateur :

sudo useradd -m hadoop -s /bin/bash

Cette commande est créée pour se connecter hadoop Utilisateurs,Et utiliser /bin/bash En tant que shell.

  • sudoLes ordres

    Il est largement utilisé dans cet articlesudoLes ordres.sudo- Oui.ubuntuUn mécanisme de gestion des droits,L'Administrateur peut autoriser certains utilisateurs ordinaires à effectuer certaines tâchesrootAction exécutée par permission.Lorsqu'il est utilisésudoAu moment de l'ordre,Vous devez entrer le mot de passe de votre utilisateur actuel.

  • Mot de passe

    InLinuxSaisissez le mot de passe dans le terminal pour,Le terminal n'affiche aucun mot de passe que vous saisissez actuellement,Il ne vous demandera pas non plus combien de mots de passe de caractères vous avez entrés.EtwindowsDans le système,La saisie d'un mot de passe se fait généralement par“*”Représente le caractère de mot de passe que vous avez entré

  • Basculer la méthode d'entrée entre le chinois et l'anglais

    ubuntuLes commandes entrées par le terminal chinois sont généralement entrées en anglais.linuxLe mode de commutation chinois - anglais est d'utiliser le clavier“shift”Clé pour basculer,Vous pouvez également cliquer sur le bouton méthode d'entrée dans le menu supérieur pour basculer.ubuntuAutoportanteSunpinyinLa méthode d'entrée chinoise est suffisante pour le lecteur.

  • UbuntuTerminal copier et coller les raccourcis clavier

    InUbuntuDans la fenêtre du terminal,Les raccourcis clavier pour copier et coller doivent être ajoutés shift,C'est - à - dire que la pâte est ctrl+shift+v.N'oubliez pas de redémarrer la machine virtuelle une fois la configuration terminée.

image-20210917203421328

Ensuite, définissez le mot de passe en utilisant la commande suivante,Peut être facilement réglé à hadoop,Saisissez le mot de passe deux fois comme demandé:

sudo passwd hadoop

image-20210917203518144

Le mot de passe ici n'est pas visible,Entrez le mot de passe et appuyez sur Entrée.

Peut être hadoop L'utilisateur augmente les privilèges d'administrateur,Facile à déployer,Évitez les problèmes d'autorisation les plus difficiles pour les débutants:

sudo adduser hadoop sudo

image-20210917203625776

Déconnecter l'utilisateur actuel en dernier(Cliquez sur le rapport dans le coin supérieur droit de l'écran)Dans l'interface de connexion, sélectionnez le hadoop L'utilisateur se connecte.

image-20210917203717047

3、Mise à jourapt

Avec hadoop Après la connexion de l'utilisateur,Mettons - le à jour. apt,Ensuite, nous utilisons apt Installer le logiciel,Certains logiciels ne peuvent pas être installés sans mise à jour.Appuyez. ctrl+alt+t Ouvrez la fenêtre du terminal,Exécutez la commande suivante:

sudo apt-get update

image-20210917204016307

(Sauter l'opération suivante sans ce problème)

Si elle apparaît comme suit “HashLa somme de contrôle ne correspond pas” Conseils pour,Peut être résolu en changeant la source du logiciel.Si ce n'est pas le cas,Aucun changement n'est nécessaire.Lors du téléchargement de certains logiciels à partir de sources logicielles,Peut - être qu'il n'y a pas de téléchargement possible pour des raisons de réseau,Il est donc recommandé de modifier la source du logiciel.ApprendreHadoopEn cours,Même si ça arrive“HashLa somme de contrôle ne correspond pas”Conseils pour,Ça n'affectera pas non plus.HadoopInstallation.

image-20210917204248745

Cliquez d'abord sur la barre des tâches à gauche【Configuration du système】( Icône du rapport ),Sélectionner【 Logiciels et mises à jour 】

image-20210917204635099

Cliquez sur “ Télécharger à partir de ” Boîte à droite ,Sélectionner【Autres noeuds】

image-20210917204755879

Sélectionner dans la Liste 【mirrors.aliyun.com】, Et cliquez dans le coin inférieur droit 【Sélectionner un serveur】,Un mot de passe utilisateur sera demandé,Entrez..

image-20210917204855754

Puis cliquez sur Fermer .

L'information de la liste devient obsolète,Cliquez sur【Recharger】

image-20210917205000004

Enfin, attendez patiemment la mise à jour du cache.La mise à jour se ferme automatiquement【 Logiciels et mises à jour 】Cette fenêtre. Si l'erreur est toujours indiquée ,Veuillez sélectionner un autre noeud serveur comme mirrors.163.com Essayez encore..Après mise à jour réussie,Encore une fois sudo apt-get update C'est normal.

(C'est la fin de l'opération,Continue avec moi.CVC'est parti.)

Certains profils devront être modifiés ultérieurement,Je préfère utiliser vim(viVersion améliorée,Utilisation de base identique),Recommandé pour l'installation(Si tu ne l'avais pas encore fait, vi/vim De,Veuillez l'utiliser plus tard. vim Lire comme suit: gedit,Ceci peut être modifié en utilisant l'éditeur de texte,Et fermez l'ensemble du fichier chaque fois que le changement de fichier est terminé gedit Procédure,Sinon, le terminal sera occupé):

image-20210917205433129

Pas comme moi. Vous n'avez pas mis à jour, Mais ne t'inquiète pas. , Laisse - moi t'aider. . Selon la procédure d'installation ,Si nécessaire lors de l'installation du logiciel,Saisissez à l'invite y C'est tout..

(vim Guide de fonctionnement simple Sauter l'opération suivante sans ce problème)

vimLes modes les plus courants sont divisés en modes de commande,Mode insertion,Mode visuel,Mode normal. Dans ce tutoriel ,Il suffit d'utiliser le mode normal et le mode insertion.Le changement entre les deux peut vous aider à compléter ce guide.

  1. Mode normal
    Le mode normal est principalement utilisé pour parcourir le contenu du texte.Au débutvimTout est en mode normal. Appuyez sur n'importe quel mode EscLa clé retourne au mode normal
  2. Insérer le mode Édition
    Insérer le mode d'édition utilisé pour ajouter du contenu au texte.En mode normal,EntréeiLa clé entre en mode Insertion - édition
  3. Sortievim
    S'il est utilisé vim Modifier tout texte , N'oubliez pas de sauvegarder .EscLa clé retourne en mode normal,Puis entrez:wqVous pouvez enregistrer le texte et quittervim

(C'est la fin de l'opération,Continue avec moi.CVC'est parti.)

4、InstallationSSH、ConfigurationSSHConnexion sans mot de passe

Cluster、Le mode à un noeud est nécessaire SSH Débarquement(Comme une connexion à distance,Vous pouvez vous connecter à un Linux Hôte,Et exécuter la commande dessus),Ubuntu Par défaut installé SSH client,L'installation est également nécessaire SSH server:

sudo apt-get install openssh-server

image-20210917205840642

Si nécessaire lors de l'installation du logiciel,Saisissez à l'invite y C'est tout..

Une fois l'installation terminée,Vous pouvez vous connecter à cet ordinateur en utilisant la commande suivante:

ssh localhost

image-20210917210328568

image-20210917210420283

Mais vous devez entrer votre mot de passe à chaque fois que vous vous connectez.,Nous devons configurerSSHIl est pratique de se connecter sans mot de passe.

Tout d'abord, sortez. ssh,Retour à notre fenêtre de terminal d'origine,Et utiliser ssh-keygen Générer une clé,Et ajouter la clé à l'autorisation:

exit # Quittez tout à l'heure ssh localhost
cd ~/.ssh/ # Sans ce répertoire,S'il vous plaît, faites - le une foisssh localhost
ssh-keygen -t rsa # Il y aura un indice,Appuyez sur Entrée pour
cat ./id_rsa.pub >> ./authorized_keys # Autorisation d'adhésion

image-20210917210552359

~Signification de

In Linux Dans le système,~ Représente le dossier d'accueil de l'utilisateur,C'est - à - dire: “/home/Nom d'utilisateur” Ce catalogue,Si votre nom d'utilisateur est hadoop,Et ~ Juste au nom de “/home/hadoop/”. En outre,Dans la commande # Le texte suivant est un commentaire,Il suffit d'entrer la commande précédente.

Pour le moment. ssh localhost Les ordres,Vous pouvez vous connecter directement sans entrer de mot de passe,Comme le montre la figure ci - dessous.

image-20210917210654405

5、InstallationJavaEnvironnement

Il n'y a pas d'écriture ici, donc vous pouvez vous référer àLinuxInstallationjdk1.8 Et configurer les variables d'environnement En coursJavaConfiguration de l'environnement.

🧂6、Installation Hadoop3.1.3

La ressource fichier a été reliée au début de l'article.Je savais qu'il y aurait des petits amis qui oublieraient, alors laissez - les sortir ici une fois de plus,Le petit ami n'a pas besoin de revenir en arrière,Cliquez ici pour télécharger le logiciel de Baidu Cloud disk(Code d'extraction:5few)

Nous avons choisi de Hadoop Installer sur /usr/local/src Moyenne:

cd /usr/local/src/hadoop
tar -zxvf hadoop-3.1.3.tar.gz # Décompresser à/usr/local/srcMoyenne
cd /usr/local/src/hadoop
sudo mv ./hadoop-3.1.3/ ./hadoop # Changer le nom du dossier enhadoop
sudo chown -R hadoop ./hadoop # Modifier les permissions du fichier

image-20210917211429415

Hadoop Disponible après décompression.Saisissez la commande suivante pour vérifier Hadoop Disponible ou non,Le succès est affiché Hadoop Informations sur la version:

cd /usr/local/src/hadoop/hadoop
./bin/hadoop version

image-20210917222209506

Chemins relatifs et absolus

Assurez - vous de noter les chemins relatifs et absolus dans la commande, Suivi de cet article ./bin/...,./etc/... Etc. ./ Chemin vers,Sont des chemins relatifs,Par /usr/local/hadoop Pour le répertoire courant.Par exemple, dans /usr/local/hadoop Exécution dans le Répertoire ./bin/hadoop version équivalent à l'exécution /usr/local/hadoop/bin/hadoop version.Vous pouvez changer le chemin relatif en chemin absolu pour effectuer,Mais si vous êtes dans le dossier d'accueil ~ Exécution intermédiaire ./bin/hadoop version,Ce qui sera fait /home/hadoop/bin/hadoop version,Ce n'est pas ce qu'on veut..

7、HadoopConfiguration autonome(Non distribué)

Hadoop Le mode par défaut est non distribué(Mode local),Exécuter sans autre configuration.Non distribué Java Processus,Mise en service facile.

Maintenant, nous pouvons mettre en œuvre des exemples pour sentir Hadoop Fonctionnement.Hadoop Avec de nombreux exemples(Exécution ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar Vous pouvez voir tous les exemples),Y compris: wordcount、terasort、join、grep Attendez..

image-20210917222534742

Ici, nous choisissons d'exécuter grep Exemple,On va input Tous les fichiers du dossier comme entrée,Correspond à l'expression régulière dans le filtre dfs[a-z.]+ Et compter le nombre d'occurrences,Le résultat final est output Dans le dossier.

cd /usr/local/src/hadoop/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input # Utiliser le profil comme fichier d'entrée
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* # Voir les résultats de l'exécution

image-20210917223235568

Attention!,Hadoop Le fichier de résultats n'est pas écrasé par défaut,Par conséquent, si vous lancez à nouveau l'Instance ci - dessus, vous serez invité à une erreur,Il faut d'abord ./output Supprimer.

rm -r ./output

8、HadoopConfiguration pseudo - distribuée

Hadoop Peut fonctionner de façon pseudo - distribuée sur un seul noeud,Hadoop Processus de séparation Java Processus à exécuter,Le noeud est à la fois NameNode Aussi comme DataNode,En même temps,Ce qui est lu est HDFS Fichier dans.

Hadoop Le profil de /usr/local/hadoop/etc/hadoop/ Moyenne,Pseudo - distribution à modifier2Profils core-site.xml Et hdfs-site.xml .HadoopLe profil pour est xml Format,Chaque configuration pour déclarer property De name Et value Pour réaliser.

Modifier le profil core-site.xml (Adoption gedit L'édition sera plus pratique : gedit ./etc/hadoop/core-site.xml), De

<configuration>
</configuration>

Modifier comme suit::

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/hadoop/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

Même profil de modificationhdfs-site.xml

gedit ./etc/hadoop/hdfs-site.xml

Modifier comme suit::

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/hadoop/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/src/hadoop/hadoop/tmp/dfs/data</value>
</property>
</configuration>

HadoopDescription du profil

Hadoop Le mode de fonctionnement est déterminé par le profil(Exécution Hadoop Le profil est lu lorsque),Donc si vous devez passer d'un mode pseudo - distribué à un mode non distribué,Doit être supprimé core-site.xml Éléments de configuration dans.

En outre,Pseudo - distribué, bien que vous n'ayez besoin que de configurer fs.defaultFS Et dfs.replication Ça marche.(C'est le cas pour les tutoriels officiels.),Mais s'il n'est pas configuré hadoop.tmp.dir Paramètres,Le répertoire temporaire par défaut est /tmp/hadoo-hadoop,Et ce répertoire pourrait être nettoyé par le système au redémarrage,Doit être exécuté à nouveau format C'est bon..Donc nous avons mis en place,Aussi spécifié dfs.namenode.name.dir Et dfs.datanode.data.dir,Sinon, des erreurs peuvent survenir dans les prochaines étapes.

Une fois la configuration terminée,Mise en œuvre NameNode Formatage pour:

cd /usr/local/src/hadoop/hadoop
./bin/hdfs namenode -format

Non.ERROR C'est un succès.

Si vous êtes invité à cette étape Error: JAVA_HOME is not set and could not be found. Erreur, Indique le réglage précédent JAVA_HOME La variable d'environnement n'est pas définie, Veuillez d'abord configurer le tutoriel JAVA_HOME Variables,Sinon, le processus suivant ne peut pas continuer.Si vous avez suivi le tutoriel précédent dans.bashrcDéfini dans le fichierJAVA_HOME,Toujours là. Error: JAVA_HOME is not set and could not be found. Erreur,Alors,S'il vous plaît.hadoopModifier le profil du Répertoire d'installation pour“/usr/local/src/hadoop/etc/hadoop/hadoop-env.sh”,J'ai trouvé“export JAVA_HOME=${JAVA_HOME}”Ça marche.,Et puis, Modifier comme suit: JAVAAdresse spécifique du chemin d'installation,Par exemple,,“export JAVA_HOME=/usr/lib/jvm/default-java”,Et puis,Recommencez.Hadoop.

Puis allumez NameNode Et DataNode Démon.

cd /usr/local/src/hadoop/hadoop
./sbin/start-dfs.sh #start-dfs.shEst un fichier exécutable complet,Pas d'espace au milieu
hdfs namenodeRésolution de problèmes

Ne paniquez pas avec le petit ami qui a ce problème,Mon frère est venu vous aider à résoudre vos problèmes

image-20210918104810959

[root@master ~]# start-dfs.sh
Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [master]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

Solutions:

InHadoop Trouvé dans le Répertoire d'installation sbinDossiers

Modifier quatre fichiers à l'intérieur

C'est exact.start-dfs.shEtstop-dfs.shDocumentation, Ajouter les paramètres suivants (Je l'utilise ici.shift+g Aller à la fin ,Appuyez suraClé oue Clé pour l'édition , Ajouter à la fin , Une fois l'ajout terminé, appuyez sur EscEntrée:wqPour enregistrer):

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

C'est exact.start-yarn.shEtstop-yarn.shDocumentation, Ajouter les paramètres suivants (Je l'utilise ici.shift+g Aller à la fin ,Appuyez suraClé oue Clé pour l'édition , Ajouter à la fin , Une fois l'ajout terminé, appuyez sur EscEntrée:wqPour enregistrer):

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

Redémarrer après modification ./start-dfs.sh,Succès!

JAVA_HOMERésolution de problèmes

Si un autre problème survient après la modification:

image-20210918105248931

Starting namenodes on [localhost]
localhost: ERROR: JAVA_HOME is not set and could not be found.
Starting datanodes
localhost: ERROR: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [utu-VirtualBox]
utu-VirtualBox: ERROR: JAVA_HOME is not set and could not be found.

JAVALes variables d'environnement sont déjà configurées,Entrée du terminaljava -versionLes informations de version sont également affichées. Quel est le problème? ?

Could not resolve hostnameQuestions

Je t'aide à résoudre tes problèmes. :

Modifierhadoop-env.sh (MonhadoopInstallé à/usr/local/src/hadoop/hadoop Sous la table des matières)

sudo gedit /usr/local/src/hadoop/hadoop/etc/hadoop/hadoop-env.sh

De l'originalJAVA_HOME Remplacer par un chemin absolu

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/src/jdk/jdk1.8.0_162

Ne paniquez pas avec le petit ami qui a ce problème,Mon frère est venu vous aider à résoudre vos problèmes

Démarrage Hadoop Indice de temps Could not resolve hostname

Si elle est activée Hadoop Trop de sorties rencontrées “ssh: Could not resolve hostname xxx”Conditions anormales,Comme le montre la figure ci - dessous:

image-20210918110016189

Ce n'est pas ssh La question de,Peut être réglé par Hadoop Variables d'environnement à résoudre . Appuyez d'abord sur le clavier ctrl + c Interruption du démarrage ,Et après ~/.bashrc Moyenne, Ajouter les deux lignes suivantes: ( Processus de configuration et JAVA_HOME Même variable ,Parmi eux HADOOP_HOME Pour Hadoop Répertoire d'installation pour):

export HADOOP_HOME=/usr/local/src/hadoop/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

Après enregistrement, Assurez - vous de l'appliquer. source ~/.bashrc Activer les paramètres des variables ,Et le faire à nouveau ./sbin/start-dfs.sh Démarrage Hadoop.

Une fois le démarrage terminé,Peut être commandé jps Pour déterminer si le démarrage a été réussi,Si le démarrage est réussi, les processus suivants sont listés:: “NameNode”、”DataNode” Et “SecondaryNameNode”(Si SecondaryNameNode Pas de démarrage,S'il vous plaît. sbin/stop-dfs.sh Fermer le processus,Puis essayez de démarrer à nouveau).Si ce n'est pas le cas NameNode(RecommandationsHadoopConfiguration pseudo - distribuéeConfigurer)Ou DataNode ,C'est une configuration infructueuse.,Veuillez examiner attentivement les étapes précédentes.,Ou vérifier la raison en regardant le journal de démarrage.

image-20210918114323771

HadoopSolution qui ne démarre pas correctement

En général, vous pouvez consulter le journal de démarrage pour vérifier la raison,Notez quelques points:

  • L'invite apparaît au démarrage comme suit: “DBLab-XMU: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.out”,Parmi eux DBLab-XMU Correspond à votre nom de machine ,Mais en fait, les informations du Journal de démarrage sont enregistrées dans /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.log Moyenne,Donc vous devriez voir ce suffixe comme .log Documents;
  • Chaque Journal de démarrage est ajouté après le fichier journal,Il faut donc remonter à l'arrière et regarder,Comparez le temps enregistré et vous verrez.
  • L'indice d'erreur générale est à la fin, D'habitude, c'est écrit: Fatal、Error、Warning Ou Java Exception Où?.
  • Vous pouvez rechercher des informations d'erreur sur Internet,Voir si des solutions pertinentes peuvent être trouvées.

En outre,Si DataNode Pas de démarrage,Essayez ce qui suit:( Notez que cela supprimera HDFS Toutes les données originales dans,Si les données originales sont importantes, ne faites pas ça):

# Pour DataNode Une solution qui ne peut pas démarrer
cd /usr/local/src/hadoop/hadoop
./sbin/stop-dfs.sh # Fermer
rm -r ./tmp # Supprimer tmp Documentation, Notez que cela supprimera HDFS Toutes les données originales dans
./bin/hdfs namenode -format # Reformater NameNode
./sbin/start-dfs.sh # Redémarrer

Après un démarrage réussi,Accessible Web Interface http://localhost:9870 Voir NameNode Et Datanode Information,Peut également être consulté en ligne HDFS Fichier dans.

image-20210918114426003

9、ExécutionHadoopInstance pseudo - distribuée

Mode autonome ci - dessus,grep L'exemple lit les données locales,La lecture pseudo - distribuée est HDFS Données sur.À utiliser HDFS,Il faut d'abord HDFS Créer un répertoire d'utilisateurs dans:

./bin/hdfs dfs -mkdir -p /user/hadoop

image-20210918114629340

Attention!

Matériel pédagogique《Principe et application de la technologie des mégadonnées》 L'ordre de ”./bin/hadoop dfs”Au débutShellMode de commande, En fait, il y en a trois. shellMode de commande.

  1. hadoop fs
  2. hadoop dfs
  3. hdfs dfs

hadoop fsPour tout système de fichiers différent,Comme le système de fichiers local etHDFSSystème de fichiers
hadoop dfsUniquement pourHDFSSystème de fichiers
hdfs dfsSuivez - moi.hadoop dfsLes commandes fonctionnent de la même façon,Ne s'applique qu'àHDFSSystème de fichiers

Et puis... ./etc/hadoop Dans xml Les fichiers sont copiés dans le système de fichiers distribués en tant que fichiers d'entrée,Bientôt /usr/local/hadoop/etc/hadoop Copie dans un système de fichiers distribués /user/hadoop/input Moyenne.Nous utilisons hadoop Utilisateurs,Et le répertoire utilisateur correspondant a été créé /user/hadoop ,Ainsi, vous pouvez utiliser des chemins relatifs tels que input,Le chemin absolu correspondant est /user/hadoop/input:

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

image-20210918114725681

Une fois la copie terminée,Vous pouvez voir la liste des fichiers en utilisant la commande suivante:

./bin/hdfs dfs -ls input

image-20210918114801197

Fonctionnement pseudo - distribué MapReduce Travailler de la même manière qu'en mode autonome,La différence est que la lecture pseudo - distribuéeHDFSFichier dans(Vous pouvez créer localement dans une étape autonome input Dossiers,Résultats obtenus output Les dossiers sont supprimés pour vérifier cela).

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

image-20210918114937054

Commandes pour voir les résultats de l'exécution(Voir à HDFS Résultats de sortie en):

./bin/hdfs dfs -cat output/*

Les résultats sont les suivants:,Remarquez que nous venons de changer le profil,Donc les résultats sont différents.

image-20210918115017808

Nous pouvons également récupérer les résultats d'exécution localement:

rm -r ./output # Supprimer d'abord local output Dossiers(Si elle existe)
./bin/hdfs dfs -get output ./output # Oui. HDFS Oui. output Copie du dossier sur cet ordinateur
cat ./output/*

image-20210918115141758

Hadoop Exécution du programme,Le Répertoire de sortie ne peut pas exister,Sinon, il y aura une erreur “org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,Donc, pour le refaire,,La commande suivante doit être exécutée pour supprimer output Dossiers:

./bin/hdfs dfs -rm -r output # Supprimer output Dossiers

Exécution du programme,Le Répertoire de sortie ne peut pas exister

Exécution Hadoop Heure de la procédure,Pour éviter de surcharger les résultats,Répertoire de sortie spécifié par le programme(Par exemple: output)Impossible d'exister,Sinon, il y aura une erreur,Par conséquent, vous devez supprimer le Répertoire de sortie avant de l'exécuter.Lors du développement d'une application,Envisager d'ajouter le code suivant à la procédure,Suppression automatique du Répertoire de sortie à chaque exécution,Évitez les opérations en ligne de commande fastidieuses:

Configuration conf = new Configuration();
Job job = new Job(conf);
/* Supprimer le Répertoire de sortie */
Path outputPath = new Path(args[1]);
outputPath.getFileSystem(conf).delete(outputPath, true);

Pour fermer Hadoop,Alors, vas - y.

./sbin/stop-dfs.sh

Attention!

La prochaine fois. hadoop Heure,Non requis NameNode Initialisation de,Il suffit de courir. ./sbin/start-dfs.sh C'est tout.!

版权声明
本文为[Directeur d'usine Java]所创,转载请带上原文链接,感谢
https://javamana.com/2021/10/20211013211944116s.html

  1. What are the new features of Java 10?
  2. What are the new features of Java 9?
  3. Is the report too ugly? Try this open source project reportplus!
  4. Spring 2021 report released: who is the real brother?
  5. À bientôt, docker.
  6. Recommend a super easy to use markdown editor
  7. Java 17 new features overview
  8. New developer friendly features after Java 8
  9. Concise and efficient eclipse collections API
  10. Practice of deploying spring boot microservices on kubernetes
  11. Garbage collectors in the new JDK: Shenandoah, ZGC and improved G1
  12. À bientôt, docker.
  13. Oracle exécute le format syntaxique d'une procédure stockée ou d'un lot
  14. [Azure Cloud Service] Azure Cloud Service ajoute des champs personnalisés pour le rôle Web (hôte IIS) (ajoute le champ user agent dans l'en - tête de demande http au Journal de sortie IIS)
  15. The Linux kernel will be implemented with the latest zstd
  16. JetBrains publishes the raw data of the developer ecosystem survey in 2021
  17. Linux 5.16 will support KVM and disable amd PSF function
  18. Linux 5.16 brings DisplayPort 2.0 initial support for amdgpu driver
  19. Announcement of the election results of the technical advisory committee of the Linux foundation in 2021
  20. Java虚拟机|JVM【适合初学者入门】
  21. Spring Cloud 2021.0.0-M2 发布
  22. [Azure Cloud Service] Azure Cloud Service ajoute des champs personnalisés pour le rôle Web (hôte IIS) (ajoute le champ user agent dans l'en - tête de demande http au Journal de sortie IIS)
  23. Spring Cloud 2021.0.0-M2 發布
  24. Java虛擬機|JVM【適合初學者入門】
  25. Spring Cloud 2021.0.0-m2 Release
  26. Machine virtuelle Java | JVM [convient aux débutants]
  27. 10412 Xiaopeng cars announced sales results in September
  28. Apprendre le mécanisme des événements Java
  29. Java script RPC (07) - timeout timeout Processing from zero
  30. Introduction à la page Web de rabbitmq (3)
  31. MySQL read - Write Separation Cluster Construction and Integration with mycat
  32. Analyse du principe du conteneur du CIO printanier
  33. Java面向对象基础
  34. Java communique avec les capteurs industriels via socket et DTu, RTU
  35. Xiaopeng automobile delivered 10412 units in September, with a monthly sales volume of more than 10000 for the first time
  36. Java Object Oriented Foundation
  37. Introduction au développement Android PDF, un tour pour vous apprendre à comprendre netty
  38. Hadoop Foundation - 01 - concepts de base
  39. Hadoop Foundation - 02 - Basic Structure
  40. Hadoop Foundation - 03 - hdfs (Hadoop Distributed File System) Basic Concepts
  41. Hadoop Foundation - 04 - hdfs API Programming
  42. Hadoop Foundation - 05 - hdfs Project (word Frequency Statistics)
  43. Hadoop Foundation - 06 - hdfs Data Read and write
  44. The "monthly test" report card of the new car built under the lack of core: Xiaopeng and Weilai took the lead in "breaking 10000", and the ideal plummeted by 25%
  45. Introduction to making arch linux software package
  46. Hard core observation 407 HTTPS everywhere browser extension is about to retire
  47. How to use busybox on Linux
  48. In 2021, the talent incentive plan of Linux foundation open source software School Park was officially launched
  49. It's not windows or Linux. Shrink is the "God operating system"
  50. Install anydesk on Ubuntu Linux
  51. 2021, can we recommend using Linux to play games?
  52. not exist:org.springframework.kafka.listener.AbstractMessageListenerContaingetContainerProperties()
  53. Are you sure HTTPS is asymmetric encryption for content encryption? See the answers and reasons
  54. MySQL online slow log query
  55. Java JDK server installation
  56. 手把手教你使用Java开发在线生成pdf文档
  57. Questions d'entrevue dans la base de données MySQL (dernière version 2021)
  58. Java零基础小白入门必做题汇总(建议收藏)第一篇
  59. Day15 Java Foundation
  60. Day16 Java Foundation