HBase addColumn addColumns 兩個函數的deprecated解決方法

HBase addColumn addColumns 兩個函數的deprecated解決方法
 用HBase0.90.4版本,又用ITHBase,ITHBase稱自己支持 HBase0.90版本的,但是有一些error和warning,error的解決方法在前一篇文章二級索引安裝配置裏說過了。而很多的warning都跟addColumn(), addColumns()這兩個函數有關,大體意思就是你最好別用addColumns(byte[][])和addColumn(byte)了,要用addColumn(byte[],byte[])代替.
如何處理,舉例如下
1.addColumn(byte[]):
 byte[] column = ...
 之前:
  indexScan.addColumn(column);
 修改爲:
  byte [][] fq = KeyValue.parseColumn(column);
        if (fq.length > 1 && fq[1] != null && fq[1].length > 0) {
            indexScan.addColumn(fq[0], fq[1]);
         } else {
            indexScan.addFamily(fq[0]);
         }
2.addColumns(byte[][]):
 Scan indexScan = new Scan(); 
 allIndexColumns = new byte[indexColumns.length + 1][]; 
 //todo: change the following one line to several lines after it......
 之前:
 indexScan.addColumns(allIndexColumns);
 
 改爲:
 for (byte[] column : allIndexColumns) {
        byte [][] fq = KeyValue.parseColumn(column);
        if (fq.length > 1 && fq[1] != null && fq[1].length > 0) {
            indexScan.addColumn(fq[0], fq[1]);
         } else {
            indexScan.addFamily(fq[0]);
         }
    }
  主要在幾個函數裏,其中兩個函數爲:
    public Result[] next(final int nbRows) throws IOException {
    public ResultScanner getIndexedScanner(final String indexId, final byte[] indexStartRow, final byte[] indexStopRow,
            final byte[][] indexColumns, final Filter indexFilter, final byte[][] baseColumns)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章