2012-10-08 12 views
17

sólo encuentro la manera de establecer una propiedad por hadoop dfsadmin -D xx=yy,¿Cómo imprimo las propiedades de hadoop en la línea de comando?

pero ¿cómo puedo encontrar el valor de una propiedad específica xx en la línea de comandos?

+1

Si ninguna respuesta han resuelto su problema, haga clic en la casilla grande como para aceptarlo como la respuesta. –

Respuesta

4

Puede usar GenericOptionsParser para cargar la configuración de Hadoop en el objeto de configuración e iterar sus propiedades. Aquí hay un ejemplo que demuestra este enfoque a través de una clase de utilidad (Configurado).

public class ConfigPrinter extends Configured implements Tool { 
    static { 
     // by default core-site.xml is already added 
     // loading "hdfs-site.xml" from classpath 
     Configuration.addDefaultResource("hdfs-site.xml"); 
     Configuration.addDefaultResource("mapred-site.xml"); 
    } 

    @Override 
    public int run(String[] strings) throws Exception { 
     Configuration config = this.getConf(); 
     for (Map.Entry<String, String> entry : config) { 
      System.out.println(entry.getKey() + " = " + entry.getValue()); 
     } 
     return 0; 
    } 

    public static void main(String[] args) throws Exception { 
     ToolRunner.run(new ConfigPrinter(), args); 
    } 
} 
+0

¿Necesito compilar esto en hadoop para hacerlo? –

+0

Sí, necesita compilarlo y luego puede ejecutarlo en el cliente a través de "hadoop jar (su paquete) .ConfigPrinter" para explorar la configuración. – rystsov

41

Puede volcar Hadoop configuración ejecutando:

$ hadoop org.apache.hadoop.conf.Configuration 
+1

, pero los comandos vuelcan solo el sitio central así que ¿cómo volcar hdfs-site –

Cuestiones relacionadas