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

MapReduce操作HBase错误一例

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/10
educe类,主要是将键值传到HBase表中

  1. package test;  
  2.  
  3. import java.io.IOException;  
  4. import org.apache.hadoop.hbase.client.Put;  
  5. import org.apache.hadoop.hbase.io.ImmutableBytesWritable;  
  6. import org.apache.hadoop.hbase.mapreduce.TableReducer;  
  7. import org.apache.hadoop.io.Text;  
  8.  
  9. public class ReducerClass extends TableReducer<Text,Text,ImmutableBytesWritable>{  
  10.     public void reduce(Text key,Iterable<Text> values,Context context){  
  11.         String k = key.toString();  
  12.         StringBuffer str=null;  
  13.         for(Text value: values){  
  14.             str.append(value.toString());  
  15.         }  
  16.         String v = new String(str);   
  17.         Put putrow = new Put(k.getBytes());  
  18.         putrow.add("fam1".getBytes(), "name".getBytes(), v.getBytes());       
  19.     }  

由上面可知ReducerClass继承TableReduce,在hadoop里面ReducerClass继承Reducer类。它的原型为:TableReducer<KeyIn,Values,KeyOut>可以看出,HBase里面是读出的Key类型是ImmutableBytesWritable。

Map,Reduce,以及Job的配置分离,比较清晰,mahout也是采用这种构架。

  1. package test;  
  2.  
  3. import org.apache.hadoop.conf.Configuration;  
  4. import org.apache.hadoop.conf.Configured;  
  5. import org.apache.hadoop.fs.Path;  
  6. import org.apache.hadoop.hbase.HBaseConfiguration;  
  7. import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;  
  8. import org.apache.hadoop.io.Text;  
  9. import org.apache.hadoop.mapreduce.Job;  
  10. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;  
  11. import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;  
  12. import org.apache.hadoop.util.Tool;  
  13.  
  14. public class Driver extends Configured implements Tool{  
  15.  
  16.     @Override 
  17.     public static void run(String[] arg0) throws Exception {  
  18.         // TODO Auto-generated method stub  
  19.         Configuration conf = HBaseConfiguration.create();  
  20.         conf.set("hbase.zookeeper.quorum.""localhost");    
  21.           
  22.         Job job = new Job(conf,"Hbase");  
  23.         job.setJarByClass(TxtHbase.class);  
  24.           
  25.         Path in = new Path(arg0[0]);  
  26.           
  27.         job.setInputFormatClass(TextInputFormat.class);  
  28.         FileInputFormat.addInputPath(job, in);  
  29.           
  30.         job.setMapperClass(MapperClass.class);  
  31.         job.setMapOutputKeyClass(Text.class);  
  32.         job.setMapOutputValueClass(Text.class);  
  33.           
  34.         TableMapReduceUtil.initTableReducerJob("table", ReducerClass.class, job);  
  35.           
  36.        job.waitForCompletion(true);  
  37.     }  
  38.       

D

网学推荐

免费论文

原创论文

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