Hive Job log解析
cat parseHiveJobLog.pl
use Data::Dumper;
if (!defined($ARGV[0]) or $ARGV[0] eq '')
{
print "useage: perl parseJobHistory.pl filename\n";
exit;
}
my $filename = $ARGV[0];
my $json = new JSON;
my %QueryStatus;
my %TaskStatus;
open FILE, "<$filename" or print("can't open $filename\n");
while(<FILE>)
{
chomp;
my $spacepos = index($_,' ');
my $type = substr($_,0,$spacepos);
my $info = substr($_,$spacepos+1,length $_);
if(lc($type) eq 'querystart' || lc($type) eq 'queryend')
{
my %parseBuffer;
$info =~ s/:" /:"/g;
while($info =~ s/(\w+?)="(.*?)"( |$)//)
{
$parseBuffer{$1} = $2;
}
my $queryid = $parseBuffer{'QUERY_ID'};
foreach my $key ( keys %parseBuffer )
{
n