2015-08-14 107 views
-1

我正在读取位于HDFS中的文件的userId's。我正在通过缓冲读取器逐行读取文件并将currentytemdate附加到userId并将其存储在文件结束后的ArrayList中。我正在将数组列表写入同一个文件。但我不想添加到arraylist我想读取行追加currentystemdate并写入相同的文件是可能的HDFS读写操作

回答

0

HDFS主要是关于“一次写入,多次读取”。如果您尝试更新HBase值更好的选项。 在mapreduce作业中,您可以通过TableInputFormat和TableOutputFormat使用。 希望它可以帮助你。

0

我正在读取位于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(); 

    } 
}