accumulo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Keith Turner <ke...@deenlo.com>
Subject Re: Adding empty string split causes consistency check to failed for merge command
Date Mon, 05 Mar 2018 17:27:11 GMT
I replicated this locally and then did the following surgery to fix it.

Create a table and determine its table id.  The table foo is table id
2.  This tableid is used for rows in metadata table.

  root@uno> createtable foo
  root@uno foo> tables -l
  accumulo.metadata    =>        !0
  accumulo.replication =>      +rep
  accumulo.root        =>        +r
  foo                  =>         2
  trace                =>         1

Add the empty split and another split.

  root@uno foo> addsplits -t foo '' abc

Inpect the metdata table.

  root@uno foo> scan -t accumulo.metadata -b 2;
  2; loc:1000174d2400003 []    localhost:9997
  2; srv:dir []    hdfs://localhost:8020/accumulo/tables/2/t-0000005
  2; srv:lock []    tservers/localhost:9997/zlock-0000000000$1000174d2400003
  2; srv:time []    M0
  2; ~tab:~pr []    \x00
  2;abc loc:1000174d2400003 []    localhost:9997
  2;abc srv:dir []    hdfs://localhost:8020/accumulo/tables/2/t-0000006
  2;abc srv:lock []    tservers/localhost:9997/zlock-0000000000$1000174d2400003
  2;abc srv:time []    M0
  2;abc ~tab:~pr []    \x01
  2< loc:1000174d2400003 []    localhost:9997
  2< srv:dir []    hdfs://localhost:8020/accumulo/tables/2/default_tablet
  2< srv:lock []    tservers/localhost:9997/zlock-0000000000$1000174d2400003
  2< srv:time []    M0
  2< ~tab:~pr []    \x01abc

Insert some data

  root@uno foo> insert a f q v1
  root@uno foo> insert b f q v2

Offline table and grant write permission to metadata.

  root@uno foo> offline -t foo -w
  root@uno foo> grant Table.WRITE -u root -t accumulo.metadata

Delete the tablet with an empty end row

  root@uno foo> deletemany -r 2; -t accumulo.metadata
  Delete { 2; srv:dir [] } ? y
  [DELETED] 2; srv:dir []
  Delete { 2; srv:lock [] } ? y
  [DELETED] 2; srv:lock []
  Delete { 2; srv:time [] } ? y
  [DELETED] 2; srv:time []
  Delete { 2; ~tab:~pr [] } ? y
  [DELETED] 2; ~tab:~pr []

Fix the tablet with end row "abc" to indicate no previous tablet

  root@uno foo> table accumulo.metadata
  root@uno accumulo.metadata> insert 2;abc ~tab ~pr \x00

Bring table online and scan it

  root@uno accumulo.metadata> online foo
  root@uno accumulo.metadata> scan -t foo
  a f:q []    v1
  b f:q []    v2

Remove write permission to metadata table.

  root@uno accumulo.metadata> revoke Table.WRITE -u root -t accumulo.metadata

On Thu, Mar 1, 2018 at 8:46 PM, Dong Zhou <dzhou26@gmail.com> wrote:
> Hi all,
>
> I noticed that adding an empty string to as a split will cause merge command
> failed the consistency check.
>
> 2018-03-01 19:58:46,724 [state.MergeStats] DEBUG: chopped 442 v.chopped 441
> unassigned 442 v.unassigned 441 verify.total 441
> 2018-03-01 19:58:46,724 [state.MergeStats] INFO : Merge consistency check
> failed 1b<<
>
> Also, is there a way to remove an unwanted split from table. Merge is one
> way, but with empty string does not work.
>
> Cheers,
>
> -Dong Zhou

Mime
View raw message