Mapreduce程序在reduce阶段执行后,默认会把结果输出到hdfs文件系统上(使用context.wirte()),如果要把结果写到mysql中,需要重写Writable、DBWritable这两个类中的方法。
以wordCount程序为例,下面讲解如何把word和count输出到mysql中。
1、首先在mysql中创建表test,结构如下test (id bigint(20),name varchar(200),w_count int(4))
2、把mysql驱动jar放到classpath下;
3、创建实体类,对应数据库中的表结构;同时实现接口Writable、DBWritable
package bean;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.mapreduce.lib.db.DBWritable;
public class Word implements Writable, DBWritable{
private Long id;
private String name;
private int wCount;
public Long getId() {
return id;