You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2010/09/08 20:33:33 UTC

[jira] Updated: (HBASE-2889) Tool to look at HLogs -- parse and tail -f

     [ https://issues.apache.org/jira/browse/HBASE-2889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-2889:
-------------------------

    Attachment: 2889.txt

Add to hlog main:

+ Emission of filename, position, and edit count if issue.  We used to do this:

{code}
$ ./bin/hbase org.apache.hadoop.hbase.regionserver.wal.HLog --dump ~/Downloads/10.10.21.18%3A60020.1283907407862  > /dev/null 
java.io.IOException: File is corrupt!
        at org.apache.hadoop.io.SequenceFile$Reader.readRecordLength(SequenceFile.java:1907)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1932)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1837)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1883)
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.next(SequenceFileLogReader.java:121)
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.next(SequenceFileLogReader.java:113)
        at org.apache.hadoop.hbase.regionserver.wal.HLog.dump(HLog.java:1817)
        at org.apache.hadoop.hbase.regionserver.wal.HLog.main(HLog.java:1867)
{code}

... now we do this:

{code}
$ ./bin/hbase org.apache.hadoop.hbase.regionserver.wal.HLog --dump ~/Downloads/10.10.21.18%3A60020.1283907407862  > /dev/nulljava.io.IOException: /Users/Stack/Downloads/10.10.21.18%3A60020.1283907407862, pos=20076465, edit=6928
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.addFileInfoToException(SequenceFileLogReader.java:165)
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.next(SequenceFileLogReader.java:137)
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.next(SequenceFileLogReader.java:122)
        at org.apache.hadoop.hbase.regionserver.wal.HLog.dump(HLog.java:1817)
        at org.apache.hadoop.hbase.regionserver.wal.HLog.main(HLog.java:1867)
Caused by: java.io.IOException: File is corrupt!
        at org.apache.hadoop.io.SequenceFile$Reader.readRecordLength(SequenceFile.java:1907)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1932)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1837)
        at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1883)
        at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader.next(SequenceFileLogReader.java:135)
{code}

+ Made it so if an error, the program returns non-zero exit value.

> Tool to look at HLogs -- parse and tail -f
> ------------------------------------------
>
>                 Key: HBASE-2889
>                 URL: https://issues.apache.org/jira/browse/HBASE-2889
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>            Reporter: stack
>            Assignee: stack
>             Fix For: 0.90.0
>
>         Attachments: 2889.txt
>
>
> We need a tool for looking at wals.  A tail -f would be sweet though it might be ugly having to open each time it wants to dump next lot of edits out wal log.
> From Kannan:
> {code}20:45 <kannan> WALEdit already has a toString().
> 20:46 <kannan> And append/sync support allows you to read concurrently a file that is being written too... (like JDs replication).
> 20:46 <kannan> So it would be good if I could do a bin/hbase hlogprint -f hdfs://...../.logs/<filename> -v -p
> 20:46 <kannan> much like the HFile pretty printer... except the HLog one is effectively a tail -f.
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.