Utilisez la ligne de commande pour compiler et exécuter un petit exemple du programme HDFS

Écrivez devant

Cet article utilise une petite instance de HDFS pour déterminer si un fichier existe dans un environnement de cluster distribué Hadoop 2.7.7 pour présenter comment utiliser la ligne de commande pour compiler et empaqueter le programme HDFS dans la version Hadoop 2.x.

Ajouter des informations de chemin de classe Hadoop à la variable CLASSPATH

Dans la version Hadoop 2.x, les fichiers jar ne sont plus concentrés dans un hadoop-core * .jar, mais sont divisés en plusieurs fichiers. Par exemple, l'utilisation de Hadoop 2.7.7 pour exécuter des instances WordCount nécessite au moins les trois fichiers suivants:

  • $ HADOOP_HOME / share / hadoop / common / hadoop-common-2.7.7.jar
  • $ HADOOP_HOME / share / hadoop / mapreduce / hadoop-mapreduce-client-core-2.7.7.jar
  • $ HADOOP_HOME / share / hadoop / common / lib / commons-cli-1.2.jar

En fait, par la commande , hadoop classpathnous pouvons obtenir toutes les informations nécessaires pour exécuter classpath programme Hadoop.

Insérez la description de l'image ici
Nous ajoutons les informations de chemin de classe Hadoop à la variable CLASSPATH et ajoutons les lignes suivantes à ~ / .bashrc:

export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

Ne pas oublier d'exécuter source ~/.bashrcles variables à prendre effet.

Compiler, empaqueter et exécuter des programmes HDFS

Écrire un programme HDFS, voici un petit châtaignier pour déterminer si le fichier spécifié existe ou non

vi FileExist.java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class FileExist {
	public static void main(String[] args){
		try{
			String fileName = "test";
             Configuration conf = new Configuration();
             conf.set("fs.defaultFS", "hdfs://Master:9000");
             conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
             FileSystem fs = FileSystem.get(conf);
             if(fs.exists(new Path(fileName))){
				System.out.println("文件存在");
             }else{
             	 System.out.println("文件不存在");
             }
		}catch (Exception e){
			e.printStackTrace();
		}
	}
}

javac Commande pour compiler FileExist.java

javac FileExist.java 

Après la compilation, vous pouvez voir qu'un fichier .class est généré

Insérez la description de l'image ici

Emballez ensuite le fichier .class dans un bocal pour l'exécuter dans Hadoop

jar -cvf FileExist.jar ./FileExist*.class

Après l'empaquetage, vous pouvez constater qu'un package FileExist.jar a été généré
Insérez la description de l'image ici

Ensuite, nous pouvons exécuter le package jar

hadoop jar FileExist.jar FileExist

FileExist.jar est le package jar que nous exécutons, FileExist est la classe où se trouve la méthode principale du package jar

Résultat de l'opération

Insérez la description de l'image ici
Utilisez la ligne de commande package compilateur en cours d' exécution petit exemple de programme HDFS d'écrire ici, bien sûr, vous pouvez également utiliser le package du compilateur de ligne de commande en cours d' exécution des programmes MapReduce, avec le package du compilateur pour exécuter un programme similaire à la référence spécifique HDFS exécution à l' aide du paquet du compilateur de ligne de commande propres programmes MapReduce

Publié 23 articles originaux · gagné 16 · vues 9515

Je suppose que tu aimes

Origine blog.csdn.net/atuo200/article/details/105629703
conseillé
Classement