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

Ted Yu updated HBASE-19166:
---------------------------
    Description: 
For hlog generated by 2.x, log splitting from hbase1 would result in:
{code}
1134720 2018-02-13 10:43:57,590 WARN  [RS_LOG_REPLAY_OPS-ve0530:16020-0] 
regionserver.SplitLogWorker: log splitting of 
WALs/ve0534.halxg.cloudera.com,16020,1518546984742-splitting/ve0534.halxg.cloudera.com%2C16020%2C1518546984742.meta.1518546993545.meta
 failed, returning error
1134721 java.io.IOException: Got unknown writer class: AsyncProtobufLogWriter
1134722   at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:220)
1134723   at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:169)
1134724   at 
org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:66)
1134725   at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:164)
1134726   at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
1134727   at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:267)
1134728   at 
org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:853)
1134729   at 
org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:777)
1134730   at 
org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:298)
1134731   at 
org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:236)
{code}
AsyncProtobufLogWriter didn't change WAL format and hence can use 
ProtobufLogWriter as the persisted class name so that we avoid the above during 
rolling upgrade.

  was:
For hlog generated by 1.x, using WALPlayer from hbase2 would result in:
{code}
2017-11-02 21:22:40,907 INFO  [main] mapreduce.Job: Task Id : 
attempt_1509641483571_0003_m_000000_0, Status : FAILED
Error: java.lang.ClassCastException: 
org.apache.hadoop.hbase.regionserver.wal.WALEdit cannot be cast to 
org.apache.hadoop.hbase.wal.WALEdit
        at 
org.apache.hadoop.hbase.mapreduce.WALPlayer$WALCellMapper.map(WALPlayer.java:143)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793)
{code}
HBASE-16479 relocated WALEdit.

Chatting with Enis, he mentioned adding translation for handling 
hbase.regionserver.wal.WALEdit

This way, WAL from 1.x can be recognized by hbase-2


> Add translation for handling hbase.regionserver.wal.WALEdit
> -----------------------------------------------------------
>
>                 Key: HBASE-19166
>                 URL: https://issues.apache.org/jira/browse/HBASE-19166
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 2.0.0
>
>         Attachments: 19166-async-log-writer.v1.txt, 
> 19166-async-log-writer.v2.txt
>
>
> For hlog generated by 2.x, log splitting from hbase1 would result in:
> {code}
> 1134720 2018-02-13 10:43:57,590 WARN  [RS_LOG_REPLAY_OPS-ve0530:16020-0] 
> regionserver.SplitLogWorker: log splitting of 
> WALs/ve0534.halxg.cloudera.com,16020,1518546984742-splitting/ve0534.halxg.cloudera.com%2C16020%2C1518546984742.meta.1518546993545.meta
>  failed, returning error
> 1134721 java.io.IOException: Got unknown writer class: AsyncProtobufLogWriter
> 1134722   at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:220)
> 1134723   at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:169)
> 1134724   at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:66)
> 1134725   at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:164)
> 1134726   at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> 1134727   at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:267)
> 1134728   at 
> org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:853)
> 1134729   at 
> org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:777)
> 1134730   at 
> org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:298)
> 1134731   at 
> org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:236)
> {code}
> AsyncProtobufLogWriter didn't change WAL format and hence can use 
> ProtobufLogWriter as the persisted class name so that we avoid the above 
> during rolling upgrade.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to