程序相当于'hadoop fs -tail -f'

时间:2011-08-01 14:12:13

标签: hadoop tail hdfs

我想使用org.apache.hadoop.fs.FileSystem API以编程方式定位hdfs文件。 有没有办法使用API​​以等同于hadoop fs -tail -f命令的方式来拖尾文件?

1 个答案:

答案 0 :(得分:2)

也许我误解了这个问题。使用API​​实现hadoop fs -tail -f不是吗?

来自org.apache.hadoop.fs.FsShell.tail(String[], int)

long fileSize = srcFs.getFileStatus(path).getLen();
long offset = (fileSize > 1024) ? fileSize - 1024: 0;

while (true) {
  FSDataInputStream in = srcFs.open(path);
  in.seek(offset);
  IOUtils.copyBytes(in, System.out, 1024, false);
  offset = in.getPos();
  in.close();
  if (!foption) {
    break;
  }
  fileSize = srcFs.getFileStatus(path).getLen();
  offset = (fileSize > offset) ? offset: fileSize;
  try {
    Thread.sleep(5000);
  } catch (InterruptedException e) {
    break;
  }
}