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

enhance hbase.util.Bytes.toBytes() with length limit

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 0.20.1
    • None
    • util
    • None

    Description

      The following stack trace is seen in our hadoop log:

      java.lang.IllegalArgumentException: Row > 32767
      at org.apache.hadoop.hbase.KeyValue.createByteArray(KeyValue.java:437)
      at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:405)
      at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:374)
      at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:353)
      at org.apache.hadoop.hbase.client.Put.add(Put.java:137)
      at org.apache.hadoop.hbase.client.Put.add(Put.java:108)
      at org.apache.nutch.scoring.webgraph.ScoreUpdater$ScoreUpdaterReducer.reduce(ScoreUpdater.java:170)
      at org.apache.nutch.scoring.webgraph.ScoreUpdater$ScoreUpdaterReducer.reduce(ScoreUpdater.java:127)
      at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174)
      at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:563)
      at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:408)
      at org.apache.hadoop.mapred.Child.main(Child.java:170)

      Bytes.toBytes(Float.valueOf(score).toString()) may return an array longer than 32767 bytes.

      We should enhance Bytes.toBytes() to include length limit:
      public static byte[] toBytes(String s, int length)

      String.getBytes() doesn't have length limit

      Attachments

        Activity

          People

            Unassigned Unassigned
            ted_yu Ted Yu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: