java—使用bufferedreader从hdfs连续读取文件

db2dz4w8  于 2021-06-01  发布在  Hadoop
关注(0)|答案(0)|浏览(285)

我正在尝试使用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

append似乎工作正常,因为当我执行cat(或再次运行java代码)时,可以看到添加的文本。而且,不是检查 if(line==null) 我也试过了 if(!(br.ready()) 还是不行。非常感谢您的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题