HDFS一次读写操作



我正在从位于HDFS的文件中读取userId。我正在通过缓冲阅读器逐行读取文件,并将currentsystemdate附加到userId并将其存储在文件结束后的数组列表中,我正在将数组列表写入同一文件。但我不想添加到数组列表中我想读取该行附加currentsystemdate并写入同一个文件是否可能

HDFS主要是关于"一次写入,多次读取"。如果你试图更新值,更好的选择将是HBase。在mapreduce作业中,您可以通过TableInputFormat和TableOutputFormat使用。

我正在读取位于hdfs中的文件test.txt,并将"Kishore"附加到该文件的每一行。根据问题改变逻辑

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class Append {
    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        conf.addResource(new Path(
                "/home/kishore/BigData/hadoop/etc/hadoop/core-site.xml"));
        String line = "Kishore";
        Path path = new Path("hdfs://localhost:9000/test.txt");
        FileSystem fs = FileSystem.get(conf);
        BufferedWriter br = new BufferedWriter(new OutputStreamWriter(
                fs.append(path)));
        for(int i=0; i< 1000;i++){
            br.write(i+"n");
        }
        br.close();
    }
}

最新更新