L'accès à des fichiers dans HDFS à l'aide de Java

Je suis en train d'essayer d'accéder à un fichier dans le HDFS à l'aide des Api Java, mais à chaque fois j'obtiens un Fichier Non Trouvé. Code que j'utilise d'accès est :-

Configuration conf = new Configuration();
    conf.addResource(FileUtilConstants.ENV_HADOOP_HOME + FileUtilConstants.REL_PATH_CORE_SITE);
    conf.addResource(FileUtilConstants.ENV_HADOOP_HOME + FileUtilConstants.REL_PATH_HDFS_SITE);

    try {
        FileSystem fs = FileSystem.get(conf);
        Path hdfsfilePath = new Path(hdfsPath);
        logger.info("Filesystem URI : " + fs.getUri());
        logger.info("Filesystem Home Directory : " + fs.getHomeDirectory());
        logger.info("Filesystem Working Directory : " + fs.getWorkingDirectory());
        logger.info("HDFS File Path : " + hdfsfilePath);
        if (!fs.exists(hdfsfilePath)) {
            logger.error("File does not exists : " + hdfsPath);
        }

Et voici la ligne de commande de sortie à partir du code.

[root@koversevms ~]# java -jar /tmp/thetus-incendiary-koverse-extension-fileutils-1.0-SNAPSHOT.jar 
13/07/10 02:47:18 INFO fileutils.HadoopFileChecksumUtils: Filesystem URI : file:///
13/07/10 02:47:18 INFO fileutils.HadoopFileChecksumUtils: Filesystem Home Directory : file:/root
13/07/10 02:47:18 INFO fileutils.HadoopFileChecksumUtils: Filesystem Working Directory : file:/root
13/07/10 02:47:18 INFO fileutils.HadoopFileChecksumUtils: HDFS File Path : /usr/hadoop/sample/sample.txt
13/07/10 02:47:18 ERROR fileutils.HadoopFileChecksumUtils: File does not exists : /usr/hadoop/sample/sample.txt

Je suis nouveau sur hadoop, donc je ne sais pas ce qui ne va pas.

Avez-vous vérifié qu'il y a un tel fichier dans HDFS? Si le fichier est sur votre système local que cela ne signifie pas qu'il existe dans HDFS. Vous pouvez utiliser l'interface web (généralement YOUR_IP:50070/dfshealth.jsp) pour vérifier cela.
Oui Yatul il existe dans le HDFS. [root@koversevms ~]# hadoop fs -ls /usr/hadoop/sample/sample.txt 1 éléments -rw-r--r-- 1 root supergroupe 27848 2013-07-04 03:37 /usr/hadoop/sample/sample.txt
Je résolus. J'ai modifié le code pour utiliser le chemin au lieu de String tout en ajoutant xmls, il a travaillé. Précédemment:- conf.addResource(FileUtilConstants.ENV_HADOOP_HOME + FileUtilConstants.REL_PATH_CORE_SITE); Maintenant, conf.addResource(nouveau Chemin(FileUtilConstants.ENV_HADOOP_HOME + FileUtilConstants.REL_PATH_CORE_SITE));

OriginalL'auteur Nayan | 2013-07-10