hadoop使用MapReduce想输出结果到mysql,不报错但没有结果输出,方便看下我的MySQLoutputformat(自定义输出实现类)和driver的代码然后告诉我哪里出问题了吗(总感觉程序好像绕开了outputformat没有执行)
1个回答
关注
展开全部
有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv、uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些特性正是 hbase 或者 hive 目前亟待改进的地方。
好了言归正传,简单的说说背景、原理以及需要注意的地方:
1、为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。
2、由于0.20版本对DBInputFormat和DBOutputFormat支持不是很好,该例用了0.19版本来说明这两个类的用法。
至少在我的 0.20
咨询记录 · 回答于2022-05-17
hadoop使用MapReduce想输出结果到mysql,不报错但没有结果输出,方便看下我的MySQLoutputformat(自定义输出实现类)和driver的代码然后告诉我哪里出问题了吗(总感觉程序好像绕开了outputformat没有执行)
有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv、uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些特性正是 hbase 或者 hive 目前亟待改进的地方。好了言归正传,简单的说说背景、原理以及需要注意的地方:1、为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。2、由于0.20版本对DBInputFormat和DBOutputFormat支持不是很好,该例用了0.19版本来说明这两个类的用法。至少在我的 0.20
想把数据导出到MySQL数据库是dboutputformat还是自定义好。我的导出表格是自己设计的话。
自定义稍微会好一点
已赞过
评论
收起
你对这个回答的评价是?