Checksum Exception lors de la lecture ou de la copie sur hdfs dans Apache Hadoop

Je suis en train de mettre en œuvre un algorithme parallélisé à l'aide d'Apache hadoop, cependant, je suis confronté à certains problèmes lorsque vous essayez de transférer un fichier du système de fichiers local à hdfs. Un somme de contrôle exception est levée lors de la tentative de lecture ou le transfert d'un fichier.

La chose étrange est que certains fichiers sont copiés avec succès tandis que d'autres ne le sont pas (j'ai essayé avec 2 fichiers, l'un est légèrement plus grand que l'autre, les deux sont de petite taille tout de même). Une autre observation que j'ai faite est que le Java système de fichiers.getFileChecksum méthode, est de retour d'une null dans tous les cas.

Une légère fond sur ce que je suis en train de réaliser: je suis en train d'écrire un fichier hdfs, pour être capable de l'utiliser comme un cache distribué pour le travail de mapreduce que j'ai écrit.

J'ai aussi essayé le hadoop fs -copyFromLocal commande dans le terminal, et le résultat est exactement le même comportement que lorsqu'il est effectué par le code java.

J'ai cherché partout sur le web, y compris d'autres questions ici sur stackoverflow je n'ai cependant pas réussi à résoudre le problème. S'il vous plaît être conscient que je suis encore assez nouveau pour hadoop de sorte que toute aide est grandement appréciée.

Je joins la trace de la pile ci-dessous qui montre l'exception levée. (Dans ce cas, j'ai posté la trace de la pile résultant de la hadoop fs -copyFromLocal commande depuis le terminal)

name@ubuntu:~/Desktop/hadoop2$ bin/hadoop fs -copyFromLocal ~/Desktop/dtlScaleData/attr.txt /tmp/hadoop-name/dfs/data/attr2.txt

13/03/15 15:02:51 INFO util.NativeCodeLoader: Loaded the native-hadoop library
    13/03/15 15:02:51 INFO fs.FSInputChecker: Found checksum error: b[0, 0]=
    org.apache.hadoop.fs.ChecksumException: Checksum error: /home/name/Desktop/dtlScaleData/attr.txt at 0
        at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.readChunk(ChecksumFileSystem.java:219)
        at org.apache.hadoop.fs.FSInputChecker.readChecksumChunk(FSInputChecker.java:237)
        at org.apache.hadoop.fs.FSInputChecker.read1(FSInputChecker.java:189)
        at org.apache.hadoop.fs.FSInputChecker.read(FSInputChecker.java:158)
        at java.io.DataInputStream.read(DataInputStream.java:100)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:68)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:47)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:100)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:230)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:176)
        at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1183)
        at org.apache.hadoop.fs.FsShell.copyFromLocal(FsShell.java:130)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:1762)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:1895)
    copyFromLocal: Checksum error: /home/name/Desktop/dtlScaleData/attr.txt at 0

source d'informationauteur lvella | 2013-03-15