如何集成?Hadoop与Mysql

时间:2014-01-27 08:54:04

标签: java mysql hadoop

我刚刚开始使用hadoop。我做了一些基本的应用,如word coutnt。但现在我需要在Hadoop,HDFS和Mysql数据库之间传输数据。

我尝试了以下代码但没有正确使用。

DbInputWritable.java

public class DBInputWritable implements Writable, DBWritable
{
   private int id;
   private String name;

   public void readFields(DataInput in) throws IOException {   }

   public void readFields(ResultSet rs) throws SQLException
   //Resultset object represents the data returned from a SQL statement
   {
     id = rs.getInt(1);
     name = rs.getString(2);
   }

   public void write(DataOutput out) throws IOException {  }

   public void write(PreparedStatement ps) throws SQLException
   {
     ps.setInt(1, id);
     ps.setString(2, name);
   }

   public int getId()
   {
     return id;
   }

   public String getName()
   {
     return name;
   }
}

DBOutputWritable.java

public class DBOutputWritable implements Writable, DBWritable
{
   private String name;
   private int count;

   public DBOutputWritable(String name, int count)
   {
     this.name = name;
     this.count = count;
   }

   public void readFields(DataInput in) throws IOException {   }

   public void readFields(ResultSet rs) throws SQLException
   {
     name = rs.getString(1);
     count = rs.getInt(2);
   }

   public void write(DataOutput out) throws IOException {    }

   public void write(PreparedStatement ps) throws SQLException
   {
     ps.setString(1, name);
     ps.setInt(2, count);
   }
}

请任何身体帮助。

4 个答案:

答案 0 :(得分:1)

我不知道您的代码究竟出了什么问题,但您尝试过Sqoop吗?

Sqoop非常容易将数据从sql数据库导入到hdfs,反之亦然。在hdfs中获得数据后,您不必实现任何自定义输入。

编辑:您不需要与Hadoop集成,只需使用sqoop从mysql数据库加载数据,一旦在hdfs中有数据,就可以编写映射器和缩减器,在作业配置中设置hdfs上文件的路径。您可以关注多个mapreduce教程,只需将要读取的文件更改为先前使用Sqoop导入的文件。

答案 1 :(得分:1)

也许您可以向我们展示异常的详细信息。 你的Hadoop lib中有mysql jdbc驱动吗? 顺便说一句,sqoop是一个非常好的工具,用于在Hadoop和数据库之间传输数据。如果你的dbdata不是很大,你可以使用它。

答案 2 :(得分:0)

您可以使用HBQL将数据传输到hadoop,您可以在下面给出的链接中找到示例代码示例

http://www.hbql.com/

感谢 Piyush jain

答案 3 :(得分:0)

以下是与我的sql数据库连接hadoop的工作示例。它真的有帮助看看:

http://javatute.com/javatute/faces/post/hadoop/2014/connect-mysql-with-hadoop.xhtml