hadoop 与mysql 数据库相连读出数据 用0.20.2 版本 有些类已经过时 但必须要用 因为新版本对数据库连接支持不够 运行 mysql 创建数据库School,建立 teacher 表,并自行填写值 view plaincopy to clipboardprint? 1. DROP TABLE IF EXISTS `school`.`teacher`; 2. 3. CREATE TABLE `school`.`teacher` ( 4. 5. `id` int(11) default NULL, 6. 7. `name` char(20) default NULL, 8. 9. `age` int(11) default NULL, 10. 11. `departmentID` int(11) default NULL 12. 13. ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 在 eclipse 中运行编译通过 但要加入必须的库 以及 hadoop0.20.2 的 eclipse 的插件 view plaincopy to clipboardprint? 1. import java.io.IOException; 2. 3. import org.apache.hadoop.fs.Path; 4. import org.apache.hadoop.io.LongWritable; 5. import org.apache.hadoop.io.Text; 6. import org.apache.hadoop.mapred.FileOutputFormat; 7. import org.apache.hadoop.mapred.JobClient; 8. import org.apache.hadoop.mapred.JobConf; 9. import org.apache.hadoop.mapred.lib.IdentityReducer; 10. import org.apache.hadoop.mapred.lib.db.DBConfiguration; 11. import org.apache.hadoop.mapred.lib.db.DBInputFormat; 12. 13. public class DBAccess2 { 14. 15. 16. 17. public static void main(String[] args) throws IOException { 18. 19. JobConf conf = new JobConf(DBAccess2.class); 20. 21. conf.setOutputKeyClass(LongWritable.class); 22. 23. conf.setOutputValueClass(Text.class); 24. 25. 26. 27. conf.setInputFormat(DBInputFormat.class); 28. 29. FileOutputFormat.setOutputPath(conf, new Path("hdfs://localhost:9000/dbout")); 30. 31. 32. 33. DBConfiguration.configureDB(conf,"com.mysql.jdbc.Driver", 34. 35. "jdbc:mysql://localhost:3306/school","root","zxcvbnm"); 36. 37. 38. 39. String [] fields = {"id", "name", "age", "departmentID"}; 40. 41. DBInputFormat.setInput(conf, TeacherRecord.class, "teacher", 42. 43. null, "id", fields); 44. 45. 46. 47. conf.setMapperClass(DBAccess...