Hbase初始化并根据RowKey获取数据

接前面的文章“

HbaseTemplate配置进阶:利用Spring自动装配加载HbaseTemplate

1、java中的controller类:

@Controller
public class HbaseController {
@Autowired
private HbaseTemplate htemplate;
HbaseInit hbaseInit = new HbaseInit();
/*
 *Hbase封装测试
 **/
@RequestMapping(value = "/hbasetest.json", produces = "application/json; charset=UTF-8")
    public void hbaseTest(HttpServletRequest request, HttpServletResponse response) throws Exception{
        String tableName = "ns_sousuo:tdm_empower_gds_init_d";
        String rowKey = "20160919_000000_ka_000000400_000000000";
        String result = hbaseInit.getValueFromHbase(htemplate,tableName, rowKey);
     System.out.println(result);
    }
}

2、初始化类:

package com.suning.cache.init;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.hadoop.hbase.HbaseTemplate;


import com.suning.cache.GetRow;


public class HbaseInit {
private Logger logger = LoggerFactory.getLogger(HbaseInit.class);
private GetRow getRow = new GetRow();
//初始化Hbase环境变量
static{
System.setProperty("HADOOP_USER_NAME", "sousuo");
}
    public String getValueFromHbase(HbaseTemplate htemplate, String tableName, String rowKey)
    {
        String hbaseRes = "";
        try{
         hbaseRes = htemplate.get(tableName, rowKey, getRow);
        }catch(Exception e){
         logger.error(e.getMessage(), e);
        }
        return hbaseRes;
    }
}


3、

package com.suning.cache;


import java.util.List;


import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.springframework.data.hadoop.hbase.RowMapper;


public class GetRow implements RowMapper{
public String mapRow(Result result, int rowNum) throws Exception {   
     String hbaseRes = "";
        List ceList =   result.listCells();  
             if(ceList!=null&&ceList.size()>0){  
                 for(Cell cell:ceList){  
                  hbaseRes += Bytes.toString(cell.getFamilyArray(),cell.getFamilyOffset(),cell.getFamilyLength())+  
                             "_"+Bytes.toString(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength())
                              +"="+Bytes.toString( cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())+" ";
            }  
        }  
        return hbaseRes;  
    } 
}

接前面的文章“

HbaseTemplate配置进阶:利用Spring自动装配加载HbaseTemplate

1、java中的controller类:

@Controller
public class HbaseController {
@Autowired
private HbaseTemplate htemplate;
HbaseInit hbaseInit = new HbaseInit();
/*
 *Hbase封装测试
 **/
@RequestMapping(value = "/hbasetest.json", produces = "application/json; charset=UTF-8")
    public void hbaseTest(HttpServletRequest request, HttpServletResponse response) throws Exception{
        String tableName = "ns_sousuo:tdm_empower_gds_init_d";
        String rowKey = "20160919_000000_ka_000000400_000000000";
        String result = hbaseInit.getValueFromHbase(htemplate,tableName, rowKey);
     System.out.println(result);
    }
}

2、初始化类:

package com.suning.cache.init;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.hadoop.hbase.HbaseTemplate;


import com.suning.cache.GetRow;


public class HbaseInit {
private Logger logger = LoggerFactory.getLogger(HbaseInit.class);
private GetRow getRow = new GetRow();
//初始化Hbase环境变量
static{
System.setProperty("HADOOP_USER_NAME", "sousuo");
}
    public String getValueFromHbase(HbaseTemplate htemplate, String tableName, String rowKey)
    {
        String hbaseRes = "";
        try{
         hbaseRes = htemplate.get(tableName, rowKey, getRow);
        }catch(Exception e){
         logger.error(e.getMessage(), e);
        }
        return hbaseRes;
    }
}


3、

package com.suning.cache;


import java.util.List;


import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.springframework.data.hadoop.hbase.RowMapper;


public class GetRow implements RowMapper{
public String mapRow(Result result, int rowNum) throws Exception {   
     String hbaseRes = "";
        List ceList =   result.listCells();  
             if(ceList!=null&&ceList.size()>0){  
                 for(Cell cell:ceList){  
                  hbaseRes += Bytes.toString(cell.getFamilyArray(),cell.getFamilyOffset(),cell.getFamilyLength())+  
                             "_"+Bytes.toString(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength())
                              +"="+Bytes.toString( cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())+" ";
            }  
        }  
        return hbaseRes;  
    } 
}

你可能感兴趣的:(Hbase)