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();


}


}

设计一套实时分布式日志流收集平台(tail Logs --->HDFS)

目前业界大概这么几个开源的分布式日志系统,notify+rsync,Facebook 的Scribe,apache的chukwa,linkin的kafa和cloudera的flume。 对这几款开源...

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

目的本文主要学习hadoop hdfs 从hdfs移动到本地,从本地移动到hdfs,tail查看最后,rm删除文件,expunge清空 trash,chown 改变拥有者,setrep 改变文件副本数...
  • T1DMzks
  • T1DMzks
  • 2017年05月15日 23:48
  • 400

linux查看日志文件内容命令tail、cat、tac、head、echo

linux查看日志文件内容命令tail、cat、tac、head、echo tail -f test.log 你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, -------...

linux用于查看文件内容 tail、cat、more、less、head 、sed 命令

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

linux tail 查看日志文件

在http://blog.csdn.net/u013711616/article/details/52293447提到使用tail命令查看linux下日志文件,在此作详细介绍tail命令的使用tail...

cat、tail、head、tee、grep、wc、sort文件操作和过滤

文件操作和过滤 绝大多数命令行工作是针对文件的。我们会在本节中讨论如何观察及过滤文件内容,使用一条命令从文件中提取所需信息,以及对文件的内容进行排序。   cat、tail、head、tee:文...

Linux 文件内容查看工具介绍-cat,less,more,tail,head

Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat、more、less、head、tail等,把这些工具最常用的参数...
  • zwqjoy1
  • zwqjoy1
  • 2017年12月01日 17:47
  • 31

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

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

[转] 文件内容查看 cat,less,more,tail,head,sed

本文讲述几种常用文件内容的查看工具,比如cat、more、less、head、tail等,把这些工具最常用的参数、动作介绍给新手,能让新手在短短的几分钟内上手运用。此文献给面对黑色的控制台不知所措的弟...

Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od

cat  由第一行开始显示文件内容tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!nl   显示的时候,顺道输出行号!more 一页一页的显示文件内容less 与 more 类似...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDFS文件的tail
举报原因:
原因补充:

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