mapreduce往hbase插入数据(有map有reduce)
2014-03-10 16:59
288 查看
package com.asp; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.hbase.mapreduce.TableOutputFormat; import org.apache.hadoop.hbase.mapreduce.TableReducer; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; public class Hba { static class Hmap extends Mapper<LongWritable, Text, Text, Text> { public void map(LongWritable key, Text value, Context context) { try { context.write(new Text(key.toString()), new Text(value)); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } static class Hreduce extends TableReducer<Text, Text, NullWritable> { public void reduce(Text key, Iterable<Text> value, Context context) { String[] item = value.iterator().next().toString().split(","); Put put = new Put(item[0].getBytes()); put.add("c1".getBytes(), "name".getBytes(), item[1].getBytes()); put.add("c1".getBytes(), "age".getBytes(), item[2].getBytes()); put.add("c2".getBytes(), "class".getBytes(), item[3].getBytes()); try { context.write(NullWritable.get(), put); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","ugcserver3,ugcserver4,ugcserver5"); conf.set("hbase.zookeeper.property.clientPort", "2181"); Job job = new Job(conf, "hbasetest"); job.setMapperClass(Hmap.class); job.setReducerClass(Hreduce.class); job.setJarByClass(Hba.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TableOutputFormat.class); Path in = new Path("/test/123.txt"); FileInputFormat.addInputPath(job, in); TableMapReduceUtil.initTableReducerJob("test1", Hreduce.class, job); System.exit(job.waitForCompletion(true) ? 0 : 1); } }
相关文章推荐
- mapreduce往Hbase里插入数据(有map无reduce)
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- MapReduce(十二): Map和Reduce阶段数据合并的处理
- 在MapReduce的Map和Reduce过程中使用自定义数据类型
- MapReduce:详解Shuffle过程---map和reduce数据交互的关键
- 用MapReduce 向Hbase 中插入数据
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- 大数据框架MapReduce的map与reduce任务数合理设置
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- 利用mapreduce计算框架向hbase插入数据(python脚本)
- Hadoop MapReduce操作Hbase范例学习(TableMapReduceUtil)
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- 利用mapreduce将数据从hdfs导入到hbase遇到的问题
- 通用MapReduce程序复制HBase表数据
- map容器对象插入数据的4种方式讲解
- Hbase创建表插入查询数据案例
- hbase 下mapreduce 读取hbase中数据
- HBase数据迁移(3)-自己编写MapReduce Job导入数据
- 王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之Hadoop企业级完整训练:Rocky的16堂课(HDFS&MapReduce&HBase&Hive&Zookee