Use a linha de comando para compilar e executar um pequeno exemplo do programa HDFS

Escreva na frente

Este artigo usa uma pequena instância do HDFS para determinar se existe um arquivo em um ambiente de cluster distribuído do Hadoop 2.7.7 para apresentar como usar a linha de comando para compilar e empacotar programas HDFS na versão do Hadoop 2.x.

Adicione informações do caminho de classe do Hadoop à variável CLASSPATH

Na versão do Hadoop 2.x, os jars não estão mais concentrados em um hadoop-core * .jar, mas são divididos em vários jars. Por exemplo, o uso do Hadoop 2.7.7 para executar instâncias do WordCount requer pelo menos os três seguintes jars:

  • $ 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

Na verdade, por ordem hadoop classpath, podemos obter todas as informações classpath necessária para executar o programa Hadoop.

Insira a descrição da imagem aqui
Adicionamos as informações do caminho de classe do Hadoop à variável CLASSPATH e adicionamos as seguintes linhas ao ~ / .bashrc:

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

Não se esqueça de executar source ~/.bashrcas variáveis para efectivarem.

Compilar, empacotar e executar programas HDFS

Escreva o programa HDFS, aqui está uma pequena castanha para determinar se o arquivo especificado existe ou não

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 Comando para compilar o FileExist.java

javac FileExist.java 

Após a compilação, você pode ver que um arquivo .class é gerado

Insira a descrição da imagem aqui

Em seguida, empacote o arquivo .class em um jar para executar no Hadoop

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

Após o empacotamento, você pode descobrir que um pacote FileExist.jar foi gerado
Insira a descrição da imagem aqui

Em seguida, podemos executar o pacote jar

hadoop jar FileExist.jar FileExist

FileExist.jar é o pacote jar que executamos, FileExist é a classe em que o método principal do pacote jar está localizado

Resultado da operação

Insira a descrição da imagem aqui
Use o pacote compilador de linha de comando em execução HDFS programa de amostra pequena para escrever aqui, é claro, você também pode usar o pacote de compilador de linha de comando a execução de programas de MapReduce, com o pacote de compilador para executar um programa semelhante ao HDFS referência específica de execução usando próprios programas MapReduce a linha de comando pacote compilador

Publicado 23 artigos originais · ganhou 16 · visualizações 9515

Acho que você gosta

Origin blog.csdn.net/atuo200/article/details/105629703
Recomendado
Clasificación