Hi Keith, Thanks for the remedy steps, I tried the instruction and it worked. Yay.
I was trying to fix the issue using similar steps, but I missed out offline and online the table part, which leads me to not able to run merge command with following error: > 2018-03-05 19:10:06,037 [master.Master] INFO : Asking tserver1:10011[161d36db90563c3] to chop 3;a< > 2018-03-05 19:10:06,038 [state.MergeStats] INFO : Computing next merge state for 3<< which is presently WAITING_FOR_CHOPPED isDelete : false > 2018-03-05 19:10:06,038 [state.MergeStats] INFO : 21 tablets are chopped 3<< > 2018-03-05 19:10:06,038 [state.MergeStats] INFO : Waiting for 21 chopped tablets to be 22 3<< > 2018-03-05 19:10:06,151 [master.Master] INFO : Asking > tserver1:10011[161d36db90563c3] to chop 3;a< > 2018-03-05 19:10:06,151 [state.MergeStats] INFO : Computing next merge state for 3<< which is presently WAITING_FOR_CHOPPED isDelete : false > 2018-03-05 19:10:06,151 [state.MergeStats] INFO : 21 tablets are chopped 3<< > 2018-03-05 19:10:06,151 [state.MergeStats] INFO : Waiting for 21 chopped tablets to be 22 3<< One more question for the supplementary part that the "" split has files. Would it be a good idea to run hdfs command to physically move the file into the next tablet folder, and then insert an entry in metadata for it. Or it does not matter, I can just reuse the folder that was created for "" split. Thanks, -Dong Zhou On Mon, Mar 5, 2018 at 9:34 AM, Keith Turner <ke...@deenlo.com> wrote: > I omitted something in with my previous email. I assumed the the > tablet with an empty row could have no data. However, it can have > data. If the tablet has files, they should not be deleted without > inserting those files into the next tablet. > > root@uno accumulo.metadata> addsplits -t foo '' abc > root@uno foo> insert '' f q v3 > root@uno foo> scan > f:q [] v3 > a f:q [] v1 > b f:q [] v2 > > Now we see the empty end row tablet has a file. This file would need > to be inserted into the next tablet before deleting. > > root@uno foo> flush -t foo > root@uno foo> scan -t accumulo.metadata -c file -r 2; > 2; file:hdfs://localhost:8020/accumulo/tables/2/t-0000015/F0000016.rf > [] 185,1 > > > On Mon, Mar 5, 2018 at 12:27 PM, Keith Turner <ke...@deenlo.com> wrote: > > 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 <dzho...@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 >