使用sqoop将HDFS数据导出到RDBMS,map100%reduce0%问题
2016-12-30 17:30
309 查看
time:2016/12/29
场景:将hive中的数据导出到oracle数据库中
遇到的问题:
使用oozie跑job的时候,一直处于running状态。实际上数据量很小,而且语句也不复杂。
查看日志发现mapreduce卡在reduce阶段,如图:
map100% reduce0%!
此时我首先想到的是集群资源问题,因为这是公司测试环境,上面跑的任务太多。于是就放着等。过了很久仍然没有动静(排除跑的过慢问题);
中间重新跑了job,没用(排除偶然卡死问题);
让管理员清理了下系统磁盘空间。因为磁盘使用率已经达到了96%。同时跑了下其他的脚本发现可以跑(排除环境问题);
把job放到了开发环境上跑,发现一下就跑过去了(排除了脚本问题);
此时,想到了数据可能有问题。于是我把测试环境的数据放到开发环境,发现果然不能跑。那么就是数据的问题!
最后想到了我hive中null数据是不是在oracle是主键?连上oracle后看到,果然是这个原因。而且不止主键,还有四个字段也都不能为空。
在模拟hive表中数据的时候,我使用了null as list_in_id,虽然list_in_id在hive中可以任意值,但是在oracle却是主键!这样的数据
根本无法插入到oracle中,所以reduce一直处于0%.
修改list_in_id字段后,数据终于导出到oracle了!
场景:将hive中的数据导出到oracle数据库中
遇到的问题:
使用oozie跑job的时候,一直处于running状态。实际上数据量很小,而且语句也不复杂。
查看日志发现mapreduce卡在reduce阶段,如图:
map100% reduce0%!
此时我首先想到的是集群资源问题,因为这是公司测试环境,上面跑的任务太多。于是就放着等。过了很久仍然没有动静(排除跑的过慢问题);
中间重新跑了job,没用(排除偶然卡死问题);
让管理员清理了下系统磁盘空间。因为磁盘使用率已经达到了96%。同时跑了下其他的脚本发现可以跑(排除环境问题);
把job放到了开发环境上跑,发现一下就跑过去了(排除了脚本问题);
此时,想到了数据可能有问题。于是我把测试环境的数据放到开发环境,发现果然不能跑。那么就是数据的问题!
最后想到了我hive中null数据是不是在oracle是主键?连上oracle后看到,果然是这个原因。而且不止主键,还有四个字段也都不能为空。
在模拟hive表中数据的时候,我使用了null as list_in_id,虽然list_in_id在hive中可以任意值,但是在oracle却是主键!这样的数据
根本无法插入到oracle中,所以reduce一直处于0%.
修改list_in_id字段后,数据终于导出到oracle了!
相关文章推荐
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用sqoop将数据从hdfs中导入mysql时,卡在INFO mapreduce.Job: map 100% reduce 0%的解决办法
- 使用sqoop导入导出mysql、hdfs、hive出现的问题
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 1.5 使用Sqoop从HDFS导出数据到MySQL
- Sqoop-1.4.6 mysql数据导出到HDFS提示;注: java使用或覆盖了已过时的 API。关详细信息, 请使用 -Xlint:deprecation 重新编译。
- 使用Sqoop在HDFS和RDBMS之间导数据
- 使用sqoop做桥梁实现oracle和hdfs之前数据互导(问题和心得)
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用sqoop实现关系型数据库、HDFS、Hive之间数据的导入导出
- 使用sqoop工具进行数据导入导出 sqoop并行导入
- 使用sqoop1导出mysql数据到hbase中
- Sqoop1.4.4使用增量导入模式将MySQL数据库中数据导入到HDFS中
- sqoop1.4.4导出mysql数据到hadoop1.2.1集群出现的问题
- Sqoop1.4.4使用SQL语句形式将MySQL数据库表中数据导入到HDFS中
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 利用sqoop把Mysql中的表数据导出到HDFS下的文本文件里
- 使用sqoop将mysql数据导入到hdfs