[
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)