2013-03-04 4 views
0

Hadoop et hdfs semblent être en cours d'exécution pour moi correctement que lorsque je navigue àOù télécharger les fichiers hdfs?

http://127.0.01:50070/dfshealth.jsp Je reçois cette sortie:

enter image description here

Mais lorsque je tente d'exécuter le code

public class firstmapreducedriver { 

    public static void main(String[] args) { 
     JobClient client = new JobClient(); 
     JobConf conf = new JobConf(firstmapreducedriver.class); 

     // TODO: specify output types 
     conf.setOutputKeyClass(Text.class); 
     conf.setOutputValueClass(IntWritable.class); 

     // TODO: specify input and output DIRECTORIES (not files) 

     conf.setInputFormat(TextInputFormat.class); 
     conf.setOutputFormat(TextOutputFormat.class); 

     FileInputFormat.setInputPaths(conf, new Path("dfs")); 
     FileOutputFormat.setOutputPath(conf, new Path("Out")); 

     // TODO: specify a mapper 
     conf.setMapperClass(org.apache.hadoop.mapred.lib.IdentityMapper.class); 

     // TODO: specify a reducer 
     conf.setReducerClass(org.apache.hadoop.mapred.lib.IdentityReducer.class); 

     client.setConf(conf); 
     try { 
      JobClient.runJob(conf); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

Je reçois cette erreur:

13/03/04 19:53:33 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively 
13/03/04 19:53:51 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 
13/03/04 19:53:51 INFO mapred.JobClient: Cleaning up the staging area hdfs://localhost:9100/tmp/hadoop-newuser/mapred/staging/newuser/.staging/job_201303041945_0001 
13/03/04 19:53:51 ERROR security.UserGroupInformation: PriviledgedActionException as:newuser cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9100/user/newuser/dfs 
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9100/user/newuser/dfs 
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:197) 
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208) 
    at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:989) 
    at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:981) 
    at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174) 
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897) 
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) 
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:824) 
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1261) 
    at firstmapreducedriver.main(firstmapreducedriver.java:44) 

Où puis-je configurer l'emplacement des fichiers hdfs ou d'où ai-je besoin pour créer le répertoire "dfs" afin qu'il soit trouvé?

Répondre

1

Dans votre code, vous avez spécifié les répertoires:

FileInputFormat.setInputPaths(conf, new Path("dfs")); 
    FileOutputFormat.setOutputPath(conf, new Path("Out")); 

Tout chemin relatif (celui qui ne démarre pas avec /) aura une racine de /user/$USER. Donc, vous devez vous assurer que votre chemin d'entrée de /user/newuser/dfs existe et contient des données. Vous pouvez exécuter les opérations suivantes pour créer le répertoire et mettre les fichiers:

hadoop fs -mkdir /user/newuser/dfs 
hadoop fs -copyFromLocal localFile.txt /user/newuser/dfs/ 
Questions connexes