在hadoop mapreduce作业中插入连接数据库时出现异常

时间:2015-01-30 11:58:21

标签: java mysql hadoop mapreduce

我有一个mapreduce作业,假设将数据保存到MySQL数据库,但它正在抛出一个跟随的异常,

 INFO mapred.JobClient: Task Id : attempt_201501122044_1310_r_000001_0, Status : FAILED
 java.io.IOException  at org.apache.hadoop.mapreduce.lib.db.DBOutputFormat.getRecordWriter(DBOutputFormat.java:180)
    at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:597)
    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:444)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)

这个mapreduce作业在5个节点的集群上运行,我已经确认通过使用sql连接创建测试简单的主类来形成数据库连接。

我在这一点上非常困难。

1 个答案:

答案 0 :(得分:0)

这是权限问题:请注意UserGroupInformation已标记:

    `at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:164`2)

什么样的安全问题? Stacktrace并不清楚。你的代码在做任何HDFS吗?或者还有哪些会引发安全检查?