数据在HDFS和关系型数据库之间的迁移,主要有以下两种方式
1、按照数据库要求的文件格式生成文件,然后由数据库提供的导入工具进行导入
2、采用JDBC的方式进行导入
MapReduce默认提供了DBInputFormat和DBOutputFormat,分别用于数据库的读取和数据库的写入
1、需求
下面使用DBOutputFormat,将MapReduce处理后的学生信息导入到mysql中
2、数据集
张明明 45
李成友 78
张辉灿 56
王露 56
陈东明 67
陈果 31
李华明 32
张明东 12
李明国 34
陈道亮 35
陈家勇 78
陈旻昊 13
陈潘 78
陈学澄 18
3、实现
packagecom.buaa;importjava.io.DataInput;importjava.io.DataOutput;importjava.io.IOException;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importorg.apache.commons.lang.StringUtils;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.conf.Configured;importorg.apache.hadoop.filecache.DistributedCache;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.io.Writable;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Reducer;importorg.apache.hadoop.mapreduce.lib.db.DBConfiguration;importorg.apache.hadoop.mapreduce.lib.db.DBOutputFormat;importorg.apache.hadoop.mapreduce.lib.db.DBWritable;importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;importorg.apache.hadoop.util.Tool;importorg.apache.hadoop.util.ToolRunner;/*** @ProjectName DBOutputormatDemo
* @PackageName com.buaa
* @ClassName MysqlDBOutputormatDemo
* @Description TODO
* @Author 刘吉超
* @Date 2016-05-06 09:15:57*/@SuppressWarnings({"unused", "deprecation"})public class Mys