使用BufferedReader从Hdfs连续读取文件

时间:2017-06-02 03:21:01

标签: java hadoop bufferedreader

我试图使用BufferedReader实时读取Hdfs中的文件,即如果读者到达文件末尾,我想等待下一个条目而不是退出while循环。

BufferedReader br = ...
String line = null;
while(true)
{
    line = br.readLine();
    if(line==null)
    {   
        System.out.println("No log...Going to sleep");
        Thread.sleep(2000);
        continue;
    }

    System.out.println("We got a line: "+ line);

}

现在,当消耗掉所有行时,它会进入休眠状态而不是退出。但是,当我将行添加到文件时,它不会打印并继续进入睡眠状态。要读取的文件位于hdfs中,为了测试,我将附加如下文本:

echo "Hello World" | hadoop fs -appendToFile - /data/text.txt

附加似乎工作正常,因为当我做一只猫(或再次运行java代码)时,我可以看到添加的文本。 另外,我还试过if(line==null)而不是检查if(!(br.ready())。真的很感激任何帮助。

0 个答案:

没有答案