Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-3661

Handle empty qualifier better in shell for increments

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.92.0
    • 0.95.0
    • shell
    • None
    • Reviewed

    Description

      When trying to increment a counter using the examples, which specify no explicit qualifier you get an error:

      hbase(main):014:0> incr 'testtable', 'cnt1', 'colfam1', 1
      
      ERROR: org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to contact region server 10.0.0.57:51640 for region testtable,,1300267113942.cd2e7925140eb414d519621e384fb654., row 'cnt1', but failed after 7 attempts.
      Exceptions:
      java.io.IOException: java.io.IOException: java.lang.NullPointerException
              at org.apache.hadoop.hbase.regionserver.ColumnCount.<init>(ColumnCount.java:47)
              at org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.<init>(ExplicitColumnTracker.java:69)
              at org.apache.hadoop.hbase.regionserver.ScanQueryMatcher.<init>(ScanQueryMatcher.java:93)
              at org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:65)
              at org.apache.hadoop.hbase.regionserver.Store.getScanner(Store.java:1436)
              at org.apache.hadoop.hbase.regionserver.HRegion$RegionScanner.<init>(HRegion.java:2412)
              at org.apache.hadoop.hbase.regionserver.HRegion.instantiateInternalScanner(HRegion.java:1185)
              at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1171)
              at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1155)
              at org.apache.hadoop.hbase.regionserver.HRegion.getLastIncrement(HRegion.java:3087)
              at org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3312)
              at org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2570)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:309)
              at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1060)
      
      Here is some help for this command:
      Increments a cell 'value' at specified table/row/column coordinates.
      To increment a cell value in table 't1' at row 'r1' under column
      'c1' by 1 (can be omitted) or 10 do:
      
        hbase> incr 't1', 'r1', 'c1'
        hbase> incr 't1', 'r1', 'c1', 1
        hbase> incr 't1', 'r1', 'c1', 10
      

      Handle this more gracefully (printing 5 stacktraces is ugly), improve the help to specify what is needed more clearly. Or fix the server side to support this, if this makes sense, and therefore never triggering this issue.

      Adding a qualifier makes it work:

      hbase(main):015:0> incr 'testtable', 'cnt1', 'colfam1:test', 1
      COUNTER VALUE = 1
      
      hbase(main):016:0> incr 'testtable', 'cnt1', 'colfam1:test', 1
      COUNTER VALUE = 2
      

      Attachments

        1. HBASE-3661.patch
          5 kB
          Michael Drzal

        Activity

          People

            mdrzal Michael Drzal
            larsgeorge Lars George
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: