É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 classpath
nous pouvons obtenir toutes les informations nécessaires pour exécuter classpath programme Hadoop.
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 ~/.bashrc
les 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é
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é
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
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