我们这里采用wordcount的案例,我们先用一个mapreduce将单词进行计数,生成单词和总数。
接下来我们会将结果生成HFile导入hbase中。生成Hfile的过程又是一个mapreduce,其实只有map,这个map会将上一步生成的结果文件变成Hfile,变成Hfie之后,最后再掉一个api就可以将Hfile导入表中。
这个map种输出数据的泛型必须是ImmutableBytesWritable,Put。
ImmutableBytesWritable用来传Rowkey,我们的数据中的一行到了Hbase中就要带rowkey行键。
Put就是我们要传递的一行的内容。
所以我们在这个map中所要做的事情就是将数据转换为我们想要的行键和Put就可以啦。其中new Put的时候需要指定行键,put要指定一行的内容还需要addColumn()这里包括,列族,字段,值
我们在提交作业的时候经历了三步:
第一步:提交普通的mapreduce
第二步:提交转换Hfile的mapreduce的reduce,这里与普通的提交作业不同的是,还需要指定hbase的环境。
得到hbase数据库的连接
Configuration conf2 = HbaseConfiguration.create();
conf2.set("hbase.zookeeper.quorum","marshal:2181,marshal01:2181,marshal02:2181,marshal03:2181,marshal04:2181,marshal05:2181");
Connection conn = Connec