HDFS文件的tail

原创 2013年12月05日 18:00:59
package com.xxx.hdfstail;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;


public class HDFSTailByLine_V4 {


String src;
Path path = null;
Configuration conf;
FileSystem srcFs;


public HDFSTailByLine_V4(String src) {
this.src = src;
path = new Path(src);
conf = new Configuration();
try {
srcFs = path.getFileSystem(conf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


private void tail() throws IOException {


if (srcFs.isDirectory(path)) {
throw new IOException("Source must be a file.");
}


long fileSize = srcFs.getFileStatus(path).getLen();


// 跳到最后一1024处开始tail
long offset = 0;


while (true) {


System.out.println(fileSize + "   " + offset);


FSDataInputStream in = srcFs.open(path);
in.seek(offset);


BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String tmp;
while ((tmp = reader.readLine()) != null) {
System.out.println(tmp);
System.out.println("===+++++===");
}


offset = in.getPos();
in.close();
reader.close();


System.out.println("=========");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
break;
}
System.out.println("sleep 3 s !");


}


}


public static void main(String[] args) throws Exception {


// String flumeAdd=args[1];
// String src=args[0];


String src = "hdfs://192.168.1.132:9000/user/hive/warehouse/log_asjh/ASJH_2013-12-05/ASJH_2013-12-05_00000";
// src=args[0];
HDFSTailByLine_V4 t = new HDFSTailByLine_V4(src);


t.tail();


}


}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HDFS 指令(二)moveFromLocal,moveToLocal,tail,rm,expunge,chown,chgrp,setrep,du,df

目的本文主要学习hadoop hdfs 从hdfs移动到本地,从本地移动到hdfs,tail查看最后,rm删除文件,expunge清空 trash,chown 改变拥有者,setrep 改变文件副本数...

【每天一个Linux命令】25. 查看文件命令(cat/more/less/tail/tac/nl/od)

linux中查看文件的命令如下: cat: 由第一行开始显示档案内容 tac: 从最后一行开始显示,可以看出 tac 是 cat 的反向显示! nl: 显示的时候,随便输出行号! more: 一页一页...

文件查看head tail

linux中tail命令---用于查看文件内容 最基本的是cat、more和less。 1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd ...

Linux 命令(文件和目录管理 - tail)

有 head ( 头 ) 自然就有 tail ( 尾巴 ) - 首尾呼应,tail 的用法和 head 差不多类似。只不过是显示后面几行,预设也是显示 10 行,若要显示非 10 行,使用 `-n`...

查看文件常用指令cat,tac,nl,more,less,head,tail,od

linux中查看文件的命令如下:cat: 由第一行开始显示档案内容 tac: 从最后一行开始显示,可以看出 tac 是 cat 的反向显示! nl: 显示的时候,随便输出行号! more: 一页...

linux学习笔记之-- 查看文件命令cat,more,less,tail,tac,nl,od

linux中查看文件的命令如下: cat: 由第一行开始显示档案内容 tac: 从最后一行开始显示,可以看出 tac 是 cat 的反向显示! nl: 显示的时候,随便输出行号! more: ...

shell: 文件显示命令cat、more、less、tail、touch、od详解

原文:http://www.85itotaku.com/?p=600 cat命令 cat命令连接文件并打印到标准输出设备上。cat经常用来显示文件的内容,类似于下的TYPE命令...

四、Linux常用命令之文件操作篇(cat、more、head、tail、ln、chmod、chown、chgrp、umask)

1、显示文件内容:cat 语法:cat [文件名] 所在路径:/bin/cat                注意:/bin/表示binary,二进制文件,目录是存放所有用户使用命令的原意:cat  ...

一天一linux命令(10) cat more less head tail 文件内容显示

最常用的是cat,more及less。此外,如果要查看一个很大的文件(好几百MB),但是我们只需要后面的几行字,这要使用tail,tac指令也可以用于这个目的。 cat  由第一行开始显...

linux tail 查看日志文件

在http://blog.csdn.net/u013711616/article/details/52293447提到使用tail命令查看linux下日志文件,在此作详细介绍tail命令的使用tail...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)