Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何附加到Hadoop用户程序中的现有文件?_Hadoop_Mapreduce - Fatal编程技术网

如何附加到Hadoop用户程序中的现有文件?

如何附加到Hadoop用户程序中的现有文件?,hadoop,mapreduce,Hadoop,Mapreduce,我有一个Hadoop程序,当映射和缩减阶段完成时,我需要附加到一个现有的文件(已经在HDFS上)。我该怎么做呢?hadoop 0.20.2之后,已经支持在hdfs上附加文件,更多信息可供使用,并且 我发现的一个附加示例可能会帮助您: FSDataOutputStream stm = fs.create(path, true, conf.getInt("io.file.buffer.size", 4096), (short)3, bl

我有一个Hadoop程序,当映射和缩减阶段完成时,我需要附加到一个现有的文件(已经在HDFS上)。我该怎么做呢?

hadoop 0.20.2之后,已经支持在hdfs上附加文件,更多信息可供使用,并且

我发现的一个附加示例可能会帮助您:

FSDataOutputStream stm = fs.create(path, true,  
              conf.getInt("io.file.buffer.size", 4096),  
              (short)3, blocksize);  
String a = make(1000);  
stm.write(a.getBytes());  
stm.sync();  

hadoop 0.20.2之后,已经支持在hdfs上附加文件,更多信息可用,并且

我发现的一个附加示例可能会帮助您:

FSDataOutputStream stm = fs.create(path, true,  
              conf.getInt("io.file.buffer.size", 4096),  
              (short)3, blocksize);  
String a = make(1000);  
stm.write(a.getBytes());  
stm.sync();  

您可以使用HDFS的append方法

检查文件是否存在,如果存在,将新内容追加到同一文件中

例如:-

       FileSystem hdfs;
       FSDataOutputStream writeInFile;
       Path file;

       if (hdfs.exists(file)) {
            System.out.println("file exists");
            writeInFile = hdfs.append(file);
            writeInFile.writeBytes(data);
        }
        else {
            System.out.println("new file");
            writeInFile = hdfs.create(file, true);
            writeInFile.writeBytes(data);
        }

您可以使用HDFS的append方法

检查文件是否存在,如果存在,将新内容追加到同一文件中

例如:-

       FileSystem hdfs;
       FSDataOutputStream writeInFile;
       Path file;

       if (hdfs.exists(file)) {
            System.out.println("file exists");
            writeInFile = hdfs.append(file);
            writeInFile.writeBytes(data);
        }
        else {
            System.out.println("new file");
            writeInFile = hdfs.create(file, true);
            writeInFile.writeBytes(data);
        }

此外,还有一些关于fsync()操作的讨论可能会导致HDFS不稳定,例如延迟响应。此外,还有一些关于fsync()操作的讨论可能会导致HDFS不稳定,例如延迟响应。