当前位置: 网学 > 编程文档 > SQL SERVER > 正文

MapReduce操作HBase错误一例

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/10
上代码不难看懂。

下面介绍一下,用mapreduce怎样操作HBase,主要对HBase中的数据进行读取。

现在有一些大的文件,需要存入HBase中,其思想是先把文件传到HDFS上,利用map阶段读取<key,value>对,可在reduce把这些键值对上传到HBase中。

  1. package test;  
  2. import java.io.IOException;  
  3. import java.util.Map;  
  4. import org.apache.hadoop.conf.Configuration;  
  5. import org.apache.hadoop.hbase.HBaseConfiguration;  
  6. import org.apache.hadoop.hbase.HColumnDescriptor;  
  7. import org.apache.hadoop.hbase.HTableDescriptor;  
  8. import org.apache.hadoop.hbase.client.HBaseAdmin;  
  9. import org.apache.hadoop.hbase.client.HTable;  
  10. import org.apache.hadoop.hbase.client.Put;  
  11. import org.apache.hadoop.hbase.client.Result;  
  12.  
  13. public class Htable {  
  14.  
  15.     /**  
  16.      * @param args  
  17.      */ 
  18.     public static void main(String[] args) throws IOException {  
  19.         // TODO Auto-generated method stub  
  20.         Configuration hbaseConf = HBaseConfiguration.create();  
  21.         HBaseAdmin admin = new HBaseAdmin(hbaseConf);  
  22.         HTableDescriptor htableDescriptor = new HTableDescriptor("table" 
  23.                 .getBytes());  //set the name of table  
  24.         htableDescriptor.addFamily(new HColumnDescriptor("fam1")); //set the name of column clusters  
  25.         admin.createTable(htableDescriptor); //create a table   
  26.         HTable table = new HTable(hbaseConf, "table"); //get instance of table.  
  27.         for (int i = 0; i < 3; i++) {   //for is number of rows  
  28.             Put putRow = new Put(("row" + i).getBytes()); //the ith row  
  29.             putRow.add("fam1".getBytes(), "col1".getBytes(), "vaule1" 
  30.                     .getBytes());  //set the name of column and value.  
  31.             putRow.add("fam1".getBytes(), "col2".getBytes(), "vaule2" 
  32.                     .getBytes());  
  33.             putRow.add("fam1".getBytes(), "col3".getBytes(), "vaule3" 
  34.                     .getBytes());  
  35.             table.put(putRow);  
  36.         }  
  37.         for(Result result: table.getScanner("fam1".getBytes())){//get data of column clusters   
  38.             for(Map.Entry<byte[], byte[]> entry : result.getFamilyMap("fam1".getBytes()).entrySet()){//get collection of result  
  39.                 String column = new String(entry.getKey());  
  40.                 String value = new String(entry.getValue());  
  41.                 System.out.println(column+","+value);  
  42.             }  
  43.         }  
  44.         admin.disableTable("table".getBytes()); //disable the table  
  45.         admin.deleteTable("table".getBytes());  //drop the tbale  
  46.     }  

R

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号