4
我想用編程方式使用org.apache.hadoop.fs.FileSystem
API來掛接hdfs文件。 有沒有一種方法可以使用API以相當於hadoop fs -tail -f
命令的方式尾部化文件?'hadoop fs -tail -f'的編程等效代碼
我想用編程方式使用org.apache.hadoop.fs.FileSystem
API來掛接hdfs文件。 有沒有一種方法可以使用API以相當於hadoop fs -tail -f
命令的方式尾部化文件?'hadoop fs -tail -f'的編程等效代碼
也許我誤解了這個問題。使用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;
}
}